Wie erstelle ich eine wirklich sichere Messaging-App ähnlich wie Signal?
Veröffentlicht: 2021-10-05Der Datenschutz und die Sicherheit der Online-Kommunikation sind heutzutage heiße Themen, und das aus gutem Grund. Da wir wissen, wie man eine verschlüsselte App erstellt , möchten wir in diesem Artikel unsere Erfahrungen teilen und Tipps geben. Wir sprechen über den aktuellen Stand der Branche, Verschlüsselungsmethoden und mögliche Risiken. Für einen Kostenvoranschlag scrollen Sie zum Ende des Artikels.
Was ist passiert?
Anfang 2021 hat WhatsApp, die beliebteste Messenger-App der Welt, seine neuen Nutzungsbedingungen eingeführt. Sie sorgten, teilweise aufgrund von Verwirrung, für großen Aufruhr. Danach schlug Tesla-CEO Elon Musk, ein bekannter Kritiker von Facebook (WhatsApp gehört zu Facebook), seinen 42,5 Millionen Twitter-Followern vor, zu Signal zu wechseln, einem bisher nicht sehr bekannten Messenger.
Signal verwenden
— Elon Musk (@elonmusk) 7. Januar 2021
Im Zuge dieses Tweets verzeichnete Signal – dessen Verschlüsselungssystem übrigens WhatsApp selbst verwendet – einen Anstieg der Nutzer. Dieser Anstieg war so groß, dass die Server Schwierigkeiten hatten, damit umzugehen. Die Entwickler von Signal haben es geschafft, mit der Situation umzugehen, aber es zeigte sich, dass die Nachfrage nach sicheren Messaging-Systemen steigt. Jetzt möchte jeder wissen, wie man eine Anwendung wie Signal erstellt. Was uns zu diesem Artikel bringt.
Was bedeutet es, einen sicheren Instant Messenger zu haben?
Die meisten Instant Messaging-Apps verwenden heute eine Ende-zu-Ende-Verschlüsselung. Was ist es? Hier ist ein Diagramm einer Chat-Anwendungsarchitektur als Beispiel:
Einfach ausgedrückt besteht ein typischer Messenger aus drei miteinander verbundenen Hauptteilen:
Das Gerät des Absenders
Ein Server
Das Gerät des Empfängers
Eine Nachricht wird von einem Absender über einen Server an einen Empfänger gesendet. Ohne Verschlüsselung wird diese Nachricht als Klartext übertragen und kann somit von jedermann mit Zugriff jederzeit gelesen werden. Bei der Verschlüsselung wird die Nachricht für die Übertragung von Klartext in Chiffretext umgewandelt – verschlüsselt mit einem Schlüssel – und dann auf dem Gerät des Empfängers mit einem gekoppelten Schlüssel zurücktransformiert (entschlüsselt) .
Ende-zu-Ende-Verschlüsselung bedeutet, dass die Verschlüsselungsschlüssel an den Enden, dh auf den Geräten der Benutzer, statt auf dem Server gespeichert werden. Dadurch kann niemand außer dem Sender und Empfänger die Nachrichten lesen . Nicht einmal der Dienstanbieter, dem der Server gehört, hat darauf Zugriff. Um diese Nachrichten zu hacken, muss ein Hacker auf die Geräte der Benutzer zugreifen, da das Hacken des Servers des Dienstanbieters wenig nützt.
Die Schwachstelle der Ende-zu-Ende-Verschlüsselung ist ihre Anfälligkeit für einen sogenannten Man-in-the-Middle (MITM)-Angriff . Erfahrene MITM-Hacker können den auf einem Server gespeicherten öffentlichen Schlüssel hacken und das System so konfigurieren, dass der Hacker als rechtmäßiger Empfänger erkannt wird, sodass der Hacker ein Gespräch belauschen und sogar anstelle des beabsichtigten Empfängers daran teilnehmen kann.
Um MITM-Angriffe zu bekämpfen , haben die Signal-Entwickler die Ende-zu-Ende-Verschlüsselung ihres Protokolls mit einem Double-Ratchet-Algorithmus weiter verbessert. Dieser Algorithmus erstellt zusätzlich zu den öffentlichen und privaten Schlüsseln, die bei der Installation der App erstellt werden, Sitzungsschlüssel. Sitzungsschlüssel werden für jede gesendete Nachricht erstellt und sie zerstören sich selbst, wenn die Sitzung abgeschlossen ist (dh wenn die Nachricht empfangen wird), was es einem Hacker unmöglich macht , alle Nachrichten zu entschlüsseln, wenn es ihm gelingt, den Schlüssel für eine Sitzung zu erhalten.
WhatsApp verwendet eine Ende-zu-Ende-Verschlüsselung für alle seine Nachrichten. Tatsächlich verwendet es das eigene Verschlüsselungsprotokoll von Signal. Also, was ist jetzt das Problem damit?
Verschiedene Ansätze zur Ende-zu-Ende-Verschlüsselung
Es ist wahr, dass WhatsApp den Inhalt Ihrer Nachrichten nicht ausspionieren und Ihre In-App-Anrufe nicht mithören kann. Die von WhatsApp verwendete Version des Verschlüsselungsprotokolls von Signal verschlüsselt jedoch nur den Inhalt von Nachrichten . Das bedeutet, dass WhatsApp – und damit auch Facebook und jeder, mit dem sie die Informationen teilen möchten – sehen kann, mit wem Sie wann und von wo sprechen. Diese Metadaten können sehr persönliche Informationen über alle Teilnehmer eines Gesprächs preisgeben.
Gleichzeitig verwendet die Signal-App ein aktualisiertes Protokoll, das auch Metadaten kodiert, und niemand – nicht einmal die Besitzer der App – kann sie ohne direkten Zugriff auf die Geräte der Benutzer entschlüsseln .
Außerdem werden gemäß der Datenschutzrichtlinie von Signal fast keine Metadaten dauerhaft auf ihren Servern gespeichert – nur so lange, wie es dauert, bis eine Nachricht empfangen wird. Dann wird alles außer dem Datum der letzten Anmeldung des Benutzers gelöscht.
Die einzige andere Messenger-App, die dies tut, ist Telegram. In Telegram wird die Ende-zu-Ende-Verschlüsselung jedoch nur im geheimen Modus und nicht standardmäßig auf alle Chats angewendet . Allgemeine Nachrichten sind bei Telegram nicht gut verschlüsselt. Zumindest weigert sich Telegram, solche Informationen an Dritte weiterzugeben, seien es Regierungen oder Werbetreibende.
Heutzutage ist die Sicherheit von Messaging-Apps ein großes Thema – die Unfähigkeit oder der Wille eines Messengers, Benutzerinformationen mit Regierungen zu teilen, wird oft mit Einschränkungen und Verboten konfrontiert. Telegram zum Beispiel wurde in Russland, der Heimat seines Schöpfers, verboten; die Vereinigten Arabischen Emirate haben alle nichtstaatlichen VoIP-Dienste verboten. Als Reaktion darauf verlangen die Menschen überall sicherere Kommunikationsmittel, und der Markt für sichere mobile Messaging-Apps wächst .
Wie macht man einen sicheren Messenger?
Die meisten Leute verwenden mindestens einen Messenger, wahrscheinlich mehrere, und die grundlegenden Funktionen einer Messenger-App werden Sie kaum überraschen. Deshalb werden wir uns in diesem Abschnitt kurz fassen. Hier ist eine Tabelle mit Funktionen für eine sichere Chat-Lösung :
Merkmale | Beschreibung |
---|---|
Onboarding | Stellen Sie Ihre App kurz vor; je kürzer desto besser, aber verständlich machen. |
Registrieren Einloggen | Ein Messenger-Konto ist normalerweise an eine Telefonnummer gebunden. |
Benutzerprofil | Ein Profil speichert die persönlichen Informationen eines Benutzers und Links zu wichtigen Funktionen wie Kontakten, Einstellungen und FAQs. |
Einstellungen | Erlauben Sie Benutzern, den Messenger nach Belieben anzupassen. |
Benachrichtigungen | In einer Messenger-App ist ein zuverlässiges System für sofortige Benachrichtigungen unerlässlich. |
Textchats | Eine moderne Messaging-App ist erforderlich, um sowohl Einzelchats als auch Gruppenchats zu unterstützen. |
Datei Übertragung | Benutzer müssen in der Lage sein, Textnachrichten auszutauschen sowie Bilder und Dokumente zu teilen. |
Sprachchats/Anrufe | Eine VoIP-Funktion ist heute genauso wichtig wie SMS. Hochwertiger Sound erfordert auch bei langsamen Internetgeschwindigkeiten eine stabile Verbindung. |
Selbstzerstörende Nachrichten | Selbst mit dem Signal-Protokoll kann jemand, der das Telefon eines Benutzers in die Hände bekommt, alle vorherigen Nachrichten sehen, es sei denn, der Benutzer hat sie gelöscht. Sie können eine Option für Benutzer hinzufügen, um einen Timer zum Vernichten von Nachrichten und/oder Mediendateien einzustellen. |
Synchronisieren | Die meisten Leute haben mehr als ein Gerät mit installierten Kommunikations-Apps. Damit Benutzer problemlos zwischen Geräten wechseln können, müssen Sie eine Synchronisierungsfunktion bereitstellen. |
Zweistufige Authentifizierung | Um die Daten der Benutzer im Falle eines Gerätediebstahls besser zu schützen, bieten Sie eine zweistufige Authentifizierung über Fingerabdruck, Passwort, PIN-Code oder Bestätigungscode oder Link an. |
Wenn Sie eine Peer-to-Peer-Messaging-App erstellen möchten, die sich von der Masse abhebt, sollten Sie diese Funktionen in Betracht ziehen:
Aufkleber und GIFs. Jeder andere Messenger integriert heute den beliebten GIF-Dienst Giphy in seine Oberfläche, um Emoticons zu ergänzen. Sticker wurden populär, als Telegram anfing, sie kostenlos anzubieten (im Gegensatz zu Viber zum Beispiel, wo nur einige Sticker kostenlos sind).
Geheime/private Chats. Unabhängig davon, ob Sie die Metadaten Ihrer Benutzer verschlüsseln oder nicht, in der stürmischen Realität von heute kann es zum Verkaufsargument Ihrer App werden, verschwindende oder abschließbare Chats zu haben. Telegram bietet beispielsweise geheime Chats, die automatisch verschwinden, wenn Sie sich auf Ihrem Gerät von Telegram abmelden. Diese Chats werden nicht auf den Cloud-Servern von Telegram gespeichert und können daher auch dann nicht gesichert oder synchronisiert werden, wenn Sie auf mehr als einem Gerät angemeldet sind.
Video-Chat. Im Jahr 2020, da eine überwältigende Anzahl von Menschen aufgrund der Pandemie gezwungen ist, aus der Ferne zu arbeiten, haben Videokonferenz-Tools einen enormen Anstieg der Popularität erfahren. Und viele haben den Mangel an Videoanrufen – Einzel- und Gruppenanrufe – in bestehenden beliebten Messengern beklagt. Es ist keineswegs ein Muss, aber es wird mit Sicherheit bei den Benutzern beliebt sein.
So sichern Sie eine Messaging-App
Im Backend passiert die Magie in Messengern. Back-End-Spezialisten sind für die Sicherheit und Zuverlässigkeit Ihrer Chat-App verantwortlich, da sie wissen, wie Nachrichten verschlüsselt werden.
Es gibt mehrere Möglichkeiten , eine Ende-zu-Ende-Verschlüsselung zu implementieren und eine Kommunikations-App sicher zu machen . Normalerweise werden verschlüsselte Nachrichten auf den Servern eines Messengers gespeichert – Cloud-Server sind sicherer und werden daher für diesen Zweck empfohlen – und Entschlüsselungsschlüssel sind nur von den Geräten der Benutzer verfügbar, um eine Datenpanne zu vermeiden, falls die Server gehackt werden.
Es ist auch möglich, auf das Speichern von Nachrichten auf Ihren Servern vollständig zu verzichten und diese auf den Geräten der Benutzer zu speichern. Das bedeutet jedoch, dass Ihre Benutzer ihren Nachrichtenverlauf nicht wiederherstellen können, falls die Geräte, auf denen sie angemeldet sind, verloren gehen oder sie die App löschen. Das Synchronisieren von Nachrichten zwischen Geräten ist ebenfalls nicht möglich.
Um eine sichere Messaging-App wie Signal zu erstellen, können Sie die verschlüsselte Messaging-API von Signal selbst verwenden . Das Open-Source- Verschlüsselungsprotokoll von Signal ist das beliebteste unter Entwicklern, die Messenger erstellen, da es ständig von Experten überprüft und geprüft wird. Zum Zeitpunkt des Schreibens verwenden die folgenden Messenger das Protokoll von Signal, um den Inhalt ihrer Nachrichten zu verschlüsseln:
- Facebook Messenger (nur geheime Chats)
- Skype (nur private Konversationen)
- Google-Nachrichten für Android (SMS)
Telegram verwendet einen eigenen 256-Bit-symmetrischen AES-Verschlüsselungsalgorithmus namens MTProto für geheime Chats. Dieser Algorithmus ist jedoch Closed-Source, wofür Telegram weithin kritisiert wurde.
Kosten für die Erstellung einer sicheren Messaging-App
Die Kosten für die Erstellung einer App hängen stark von der für die Entwicklung benötigten Zeit ab . Was die Anzahl der Funktionen angeht, scheinen Messenger nicht allzu komplex zu sein; Die Erstellung des Back-Ends für eine gut verschlüsselte Messaging-App kann jedoch etwa 520 Stunden dauern .
Die üblichen Programmiersprachenoptionen für ein Messenger-Backend sind Elixir oder Erlang – Ruby on Rails ist keine gute Wahl für große Datenmengen in Form von Textnachrichten, Medien und Audio-/Videoanrufen. WhatsApp verwendet Erlang, während Elixir von Discord angestellt wird.
Bei Mind Studios haben wir eine Messenger-App mit einem Elixir-basierten Backend entwickelt. Elixir selbst basiert jedoch auf Erlang mit etwas Ruby, so dass ein erfahrener Elixir-Entwickler auch Code in Erlang schreiben kann.
Hier ist unsere Einschätzung der Zeit, die für die Entwicklung einer sicheren Messaging-Anwendung erforderlich ist :
Geschäftsanalyse und Erstellung einer Spezifikation — 96+ Stunden
UI/UX-Design — 168+ Stunden
Clientseitige mobile iOS-App – über 450 Stunden für einen MVP mit den wichtigsten Funktionen
Backend-Entwicklung — 520+ Stunden
iOS-App-Tests — ~ 240 Stunden
Die Android-Entwicklung dauert etwas weniger Zeit als die iOS-Entwicklung, aber das Testen dauert aufgrund der größeren Gerätevielfalt länger.
Mit dieser groben Zeitschätzung beginnen die Kosten für die Erstellung einer wirklich sicheren Chat-Anwendung bei 51.590 US-Dollar und werden mit zusätzlichen Funktionen erhöht .
Abschluss
Sichere Messenger sind außerordentlich wichtig, und die Nachfrage nach ihnen ist heute hoch und wird morgen noch höher sein. Aber auch die Konkurrenz. Nicht jedes Unternehmen kann verschlüsselte Messaging-Apps erstellen. Um eine sichere Instant Messaging-App wie Signal zu entwickeln, benötigen Sie Entwickler, die in dieser Nische erfahren sind .
Auch beim Design müssen Sie mit den Branchenführern Schritt halten. Die Signal-App ist einfach und nicht für ihre Intuitivität bekannt, aber sie überzeugt Benutzer, die sich mehr um ihre Privatsphäre als um Schnickschnack kümmern. WhatsApp und Telegram hingegen sehen schick aus und sind außergewöhnlich intuitiv und sicher (auch wenn ihre Sicherheit möglicherweise nicht auf dem gleichen Niveau wie Signal ist, ist sie dennoch beeindruckend). Um in dieser Nische zu glänzen, muss Ihre benutzerdefinierte App sowohl sicher als auch benutzerfreundlich sein . Die Abwägung dieser Anforderungen ist keine Kleinigkeit. Aber mit dem richtigen Team ist es möglich.