Sicherheitsmaßnahmen
Verschlüsselung von Nachrichten
Der Begriff Nachrichtenübermittlung bezieht sich auf den Austausch von Textnachrichten und Inhalten wie Audionachrichten und Bildern. Alle Nachrichten unterliegen einer Ende-zu-Ende-Verschlüsselung, um Ihnen ein hohes Maß an Datenschutz und Sicherheit zu bieten. Die Ende-zu-Ende-Verschlüsselung findet zwischen zwei Geräten statt. Proteus ist das wichtigste kryptografische Protokoll. Es ist eine unabhängige Implementierung des Axolotl / Double Ratchet-Protokolls, das wiederum vom Off-the-Record-Protokoll abgeleitet ist und ein anderes Ratchet verwendet. Außerdem nutzt Wire das Konzept der Prekeys, um das Protokoll in einer asynchronen Umgebung zu verwenden. Zwei Parteien müssen nicht gleichzeitig online sein, um eine verschlüsselte Unterhaltung zu beginnen.
Proteus verwendet die folgenden kryptographischen Primitive (bereitgestellt von libsodium):
- ChaCha20 Stromchiffre
- HMAC-SHA256 als MAC
- Diffie-Hellman-Schlüsselaustausch mit elliptischer Kurve (Curve25519) und Schlüsselableitung mit HKDF
Verschlüsselung von Anrufen
Anrufmedien werden zwischen Endpunkten in einer SRTP-verschlüsselten Mediensitzung ausgetauscht. Um die Sitzung zu initiieren, werden der SRTP-Verschlüsselungsalgorithmus, die Schlüssel und die Parameter über einen DTLS-Handshake ausgehandelt. Die Authentizität der Clients wird ebenfalls während des Handshakes überprüft, indem die erwarteten Fingerabdrücke über die bestehende authentifizierte Proteus-Sitzung gesendet werden.
Telefonkonferenzen nutzen bestehende WebRTC-Mechanismen, um Peer-Verbindungen zwischen Geräten und dem Selective Forwarding TURN-Server (SFT) herzustellen. Bei diesen Verbindungen werden alle Daten auf die gleiche Weise verschlüsselt wie bei 1:1-Anrufen. Darüber hinaus verwenden die Geräte Encoded Transforms / Insertable Streams, um den Inhalt der Medienpakete Ende-zu-Ende zu verschlüsseln.
Transport-Verschlüsselung
Clients interagieren mit Backend-Servern über HTTPS-Verbindungen, die TLSv1.2. und TLSv1.3. unterstützen. Wire verwendet nur Cipher Suites, die Forward Secrecy (PFS) unterstützen. Der Server gibt die bevorzugte Reihenfolge der Verschlüsselungssuiten an und teilt allen Clients HTTP Strict Transport Security (HSTS) mit.
Lokale Datensicherung
Wire speichert Ihren Gesprächsverlauf, wie z. B. Textnachrichten, Bilder und andere Inhalte, lokal auf Ihrem Gerät. Je nach Plattform gibt es unterschiedliche Schutzmechanismen:
iOS
Lokale Daten werden mit Core Data und in Dateien gespeichert (beide mit NSFileProtectionCompleteUntilFirstUserAuthentication geschützt). Gesprächsinhalte, kryptografisches Schlüsselmaterial und andere sensible Daten werden nicht mit iCloud- oder iTunes-Backups synchronisiert. Sie können nur über die Wire-App auf lokale Daten zugreifen. Dank der iOS-Sandbox ist sie für andere Apps unzugänglich.
Android
Lokale Daten werden in einer verschlüsselten SQLite-Datenbank und in Dateien gespeichert. Gesprächsinhalte, kryptografisches Schlüsselmaterial oder andere sensible Daten werden nicht mit Android Backup Service synchronisiert. Sie können nur über die Wire-App auf lokale Daten zugreifen. Dank der Android-Berechtigungen ist der Zugriff für andere Apps nicht möglich. Die App speichert manchmal Daten im Cache (z. B. heruntergeladene Bilder). Diese Dateien sind nicht verschlüsselt.
Desktop
Lokale Daten werden mit IndexedDB gespeichert. Die Daten werden im Ordner des Benutzers gespeichert. Cookies, die vom Electron-Wrapper verarbeitet werden, werden mit Kryptografieschlüsseln auf Betriebssystemebene verschlüsselt. Wir empfehlen dringend die Verwendung einer Festplattenverschlüsselung wie FileVault unter macOS oder Bitlocker unter Windows.