Technologie

  • Aktualisiert

Wire besteht aus einer Kombination von eigenen Komponenten und Komponenten und Diensten von Drittanbietern. Im Kern liefert Wire ein Kommunikationserlebnis von einem Gerät zum anderen.

Wire unterstützt folgende Plattformen:

  • Mobilgeräte: Android und iOS 

  • Desktop: Windows, Linux und macOS Computer mit einer plattformspezifischen nativen Anwendung, basierend auf Electron

  • Im Browser: Firefox, Chrome oder Edge

Die Weitergabe von Nachrichten, Bildern, Dateien und Videos ist dank der Wire-Server möglich, die  die Benutzerkonten und Unterhaltungen kennen, aber keinen Zugriff auf den Inhalt der Kommunikation haben, da diese von Gerät zu Gerät Ende-zu-Ende verschlüsselt ist.

Das Backend von Wire verwendet mehrere Dienste von Drittanbietern, die Inhalte für die Nutzer bereitstellen, zum Beispiel YouTube und Google Maps. Da das Backend als Proxy fungiert, muss das Gerät des Nutzers nicht direkt mit diesen Diensten kommunizieren, so dass der Nutzer bestimmte Informationen vor Dritten verbergen kann, wie IP-Adressen oder registrierte Cookies.

Das Backend verwendet native Push-Dienste, die von Apple und Google bereitgestellt werden, um native Push-Benachrichtigungen an Mobilgeräte zu senden, wenn die App nicht ausgeführt wird. Wenn die App auf einem Gerät ausgeführt wird, werden Push-Benachrichtigungen über eine direkte Verbindung (WebSocket) mit dem Wire-Backend an das Gerät gesendet, ohne dass ein Dritter beteiligt ist.

Die Geräte können anonymisierte Nutzungsstatistiken an einen Drittanbieter für Analysen senden. Der Benutzer hat die Möglichkeit, diese Funktion für zusätzlichen Datenschutz zu deaktivieren. Die Statistiken liefern Wire wertvolle Erkenntnisse über Nutzungshäufigkeiten, die optimiert werden sollten, und über Probleme, die behoben werden sollten.

 

Screenshot_2021-08-20_at_18.12.03.png

 

Quellcode

Wire ist Open Source und der Quellcode ist auf GitHub verfügbar. Der Code, der für den Betrieb des Servers und der Geräte erforderlich ist, sowie die Unit-Tests der einzelnen Komponenten sind vollständig quelloffen. Einige Zusatzleistungen, beispielsweise für das Team-Management und die Abrechnung, sind nicht quelloffen. Zudem ist die Ende-zu-Ende-Testinfrastruktur nicht quelloffen.

 

Backend

Das Backend ist größtenteils in Haskell-Code als Microservices-Architektur entwickelt. Einen Überblick über die Backend-Dienste finden Sie hier. Der Backend-Quellcode und die Dokumentation sind auf GitHub verfügbar.

Integrationen von Drittanbietern werden mit JVM-Technologien, nämlich Java und Kotlin, entwickelt.

Plattformspezifischer Code

Wir unterteilen jeden plattformspezifischen Client in mehrere Komponenten und listen diese Komponenten in jedem Plattform-Repository auf.

Von allen Komponenten sind zwei besonders erwähnenswert:

  • Die Bibliothek für die Ende-zu-Ende-Verschlüsselung ist die höchste Abstraktionsschicht, die auf Proteus aufbaut, und wird nativ von iOS und Android verwendet. Die Web-App (einschließlich Desktop-Apps) implementiert ihre eigene JavaScript-Version von Cryptobox. 

 

War dieser Beitrag hilfreich?

7 von 9 fanden dies hilfreich

Haben Sie Fragen? Anfrage einreichen