Kurz gesagt:
Ja, deine Daten interessieren uns nicht. Sie werden standardmäßig auf deinem Gerät verschlüsselt, was bedeutet, dass unsere Server oder Datenbanken sie niemals einsehen oder speichern.
Daten bleiben auf deinem Gerät
Das Kernprinzip von Capitally ist, dass alle deine Daten verschlüsselt und auf deinem Gerät gespeichert werden. Unsere Server speichern lediglich eine Kopie deines Projekts zur Synchronisierung zwischen Geräten – da jedoch nur du Zugriff auf die Verschlüsselungsschlüssel hast, können wir die eigentlichen Daten nicht einsehen. Es ist daher völlig in Ordnung, wenn du diese Anfragen blockierst.
Das Einzige, was wir „sehen", sind die Marktsymbole, mit denen du interagiert hast – also Symbole, nach denen du gesucht oder deren Kurse du abgerufen hast. Diese werden jedoch nicht mit deinem Konto verknüpft.
Projekte werden standardmäßig verschlüsselt
Durch die Verschlüsselung deiner Daten schützen wir sie vor:
- unbefugtem Zugriff auf Daten in unseren Datenbanken – durch Mitarbeiter, Hacker oder Behörden
- unbefugtem Zugriff auf deinem Gerät – jedoch nur, solange du das Profil deines Browsers vor direktem Zugriff schützt und bei der Anmeldung nicht die Option „Anmeldedaten merken" wählst
Wir können deine Daten nicht schützen vor:
- Supply-Chain- oder Man-in-the-Middle-Angriffen, bei denen Angreifer unseren Quellcode ersetzen
- unbefugten Schreib- oder Löschvorgängen in unseren Datenbanken oder auf dem Client-Gerät
- der Erkennung von Projektaktivitäten – Projekt-Metadaten wie Vorgangstyp (Transaktion erstellt, aktualisiert, gelöscht usw.) und Zeitstempel (wann du die Änderung vorgenommen hast, nicht die eigentliche Transaktion) sind nicht verschlüsselt
Verschlüsselungsmethoden
Beim Erstellen eines Projekts hast du die Wahl, es zu verschlüsseln mit:
- Benutzer-Passwort – bei der Anmeldung verwenden wir
PBKDF2, um aus dem eingegebenen Passwort zwei separate Passwörter abzuleiten – mit zwei verschiedenen Salts. Das erste Passwort dient zur Authentifizierung: Auf diese Weise erhält unser Auth-Server (Google Identity Platform) niemals das eingegebene Passwort, sodass das zweite Passwort daraus nicht abgeleitet werden kann. Das zweite Passwort wird verwendet, um (mitAES-GCM) einen Satz privater Schlüssel zu verschlüsseln, der bei der Projektverschlüsselung zum Einsatz kommt. Es gibt die Möglichkeit, den Verschlüsselungsschlüssel sicher im Browser zu speichern, sodass du ihn nicht erneut eingeben musst. - Projekt-Passwort – funktioniert wie oben beschrieben, nur dass du nach einem separaten Projekt-Passwort gefragt wirst, das zur Ableitung des Verschlüsselungsschlüssels verwendet wird.
- Remote Key – nach der Anmeldung ruft die Anwendung einen Verschlüsselungsschlüssel vom Server ab. Dieser Schlüssel wird nicht in der Datenbank gespeichert, sondern aus einer Kombination aus Benutzeranmeldedaten, Salt und unserem eigenen privaten Schlüssel abgeleitet. Der Endpunkt ist von anderen Endpunkten getrennt und als einziger berechtigt, auf den Schlüssel zuzugreifen.
Jeder Projektnutzer (aktuell kann es nur einen geben, das System ist jedoch bereits auf die Einführung einer Projektfreigabe vorbereitet) verfügt über einen Satz privater und öffentlicher Schlüssel (RSA-OAEP). Der private Schlüssel wird mit dem bereits erwähnten Haupt-Verschlüsselungsschlüssel verschlüsselt. Er dient dazu, einen Share Key (ebenfalls AES-GCM) zu entschlüsseln, der wiederum zur Ver- und Entschlüsselung der Projektdaten verwendet wird. Pro Projekt kann es mehrere Share Keys geben (z. B. für jeden Datensatz, der zwischen denselben Nutzern geteilt wird).
Der öffentliche Schlüssel wird verwendet, um dem Nutzer ausgestellte Share Keys zu verschlüsseln und vom Backend generierte Nachrichten zu signieren (z. B. neue Transaktionen von einem Broker) – sodass nur der Nutzer sie lesen kann.
Es ist wichtig zu wissen, dass das eingegebene Passwort weder gespeichert noch übertragen wird. Die Verschlüsselungsschlüssel können gespeichert, aber nicht exportiert werden – das bedeutet, sie können zum Entschlüsseln der Daten verwendet werden, der Schlüssel selbst ist jedoch nicht auslesbar. Die Anwendung hat buchstäblich keinen Zugriff darauf.
Für alle verschlüsselungsbezogenen Aufgaben, einschließlich der Generierung von Zufallszahlen, verwenden wir webcrypto
Ist der Code Open Source und geprüft?
Capitally ist ein Closed-Source-Projekt, aber die Client-App ist in TypeScript geschrieben und die gesamte Datenverarbeitung erfolgt auf dem Client. Die gesamte Netzwerkkommunikation lässt sich zudem problemlos in den Entwicklertools des Browsers nachverfolgen.
Wie bei jeder Software kommt es letztlich auf Vertrauen an. Du musst darauf vertrauen, dass wir (oder ein Hacker) diesen Code nicht heimlich verändern und die Verschlüsselungsschlüssel oder Passwörter stehlen.
Wir nutzen es selbst
Wir haben uns für eine Ende-zu-Ende-Verschlüsselung entschieden, weil wir unsere eigenen Finanzdaten privat halten möchten. Wir tun alles dafür, dass das so bleibt.
Analytics & Fehlerverfolgung
Wir möchten keine Kenntnis von deinen Finanzdaten haben – um die App jedoch verbessern und dich im Problemfall unterstützen zu können, erheben wir einige Nutzungsdaten, sofern du uns dies erlaubst. Konkret erfassen wir derzeit:
- deine Benutzer-ID
- Seiten-URL, die möglicherweise die Asset-ID enthält
- URLs von Netzwerkanfragen (die Markt-Asset-IDs enthalten können)
- Elemente, auf die du klickst (nur deren System-ID)
- System-Logmeldungen (die möglicherweise Markt-Asset-IDs enthalten)
Wenn du uns nicht erlaubst, dich zu identifizieren, speichern wir keine der oben genannten IDs. In diesem Fall protokollieren wir nur Fehler und einige minimale Informationen zur Funktionsnutzung – vollständig anonym, ohne IDs oder detaillierte Logs.
Was wir niemals erfassen:
- Größe oder Wert deiner Investments
- Namen, Notizen oder andere Texte, die du selbst erstellst
- benutzerdefinierte Kursquellen