Drum prüfe, wer sich ewig bindet, …

Flattr this!

Ich will jetzt auch mal so richtig populistisch sein! So machen es Politiker, wenn sie für ihre Sache kämpfen wollen, sie nutzen jede Gelegenheit, ihre Sicht auf die Welt vorzutragen. Warum also nicht auch wir, das Volk? Also: Ich bin dafür, dass ihr WhatsApp sausen lasst und mit wehenden Fahnen zu Signal überlauft. Und außerdem finde ich, dass Karthago … ach nee, das war in einem anderen Leben.

Seitdem dieser Tage über WhatsApp bekannt wurde, dass die Kommunikation angeblich eine Sicherheitslücke aufweist, ist das Interesse an dem Thema mal wieder etwas gestiegen (zumindest wenn ich die Diskussionen im Kollegen- und Freundeskreis als Referenz nehme). Und solange das der Fall ist, sollte man auch weiter darauf herum hacken. Populistisch halt.

Das Problem bei WhatsApp ist nach einer Mitteilung von Moxie Marlinspike (Open Whisper Systems) nicht die Verschlüsselung selbst, sondern mehr die Infrastruktur. Um dies zu erläutern, will ich kurz auf das eingehen, was „Public-Key-Verfahren“ genannt wird.

Dabei reden wir im allgemeinen von Alice und Bob, die verschlüsselt kommunizieren wollen. Mittels eines gemeinsamen Schlüssels könnten sie dies natürlich tun, wenn sie sich z.B. einmal persönlich getroffen hätten. Doch wenn auch Carol dann Alice eine verschlüsselte Nachricht schicken wollte, müsste sie Alice ebenfalls treffen und die beiden einen neuen Schlüssel erstellen und austauschen. Jeder Kommunikationsteilnehmer hätte also so viele Schlüssel zu speichern, wie er Kommunikationspartner hat. Kommt ein neuer Partner dazu, ist wieder ein Schlüssel fällig, und man muss sich zuvor über einen sicheren Kanal (das Thema ist auch nicht gerade einfach) über diesen einig werden.

Public-Key-Verfahren

Bei dem Public-Key-Verfahren ist es etwas einfacher. Jeder erstellt für sich ein Schlüsselpaar, das „privater“ und „öffentlicher Schlüssel“ genannt wird. Der öffentliche Schlüssel („public key“) wird so gespeichert, dass ihn sich jeder beschaffen kann, der Interesse daran hat. Mit Bobs öffentlichem Schlüssel kann ihm jeder eine Nachricht zukommen lassen, die aber nur mit seinem privaten Schlüssel entschlüsselt werden kann.

Damit Alice sicher sein kann, tatsächlich mit Bob zu reden, muss sie sicherstellen können, dass sie auch wirklich den öffentlichen Schlüssel von Bob hat (umgekehrt natürlich auch). Das wird bei diesem Verfahren gern mit Hilfe eines Fingerabdruckes gemacht, den Bob ihr zum Beispiel am Telefon vorlesen kann. Der Fingerabdruck ist so etwas wie eine kryptographische „Quersumme“ des deutlich längeren Schlüssels. Wenn Alice dann Bobs Stimme erkennt, weiß sie, dass es wirklich Bob ist und kann dem Schlüssel vertrauen. Falls sie allerdings (wie es durchaus oft vorkommt) für Stimmen „kein Gehör hat“, kommt diese Methode aus nahe liegenden Gründen nicht in Frage.

Auch bei dem Public-Key-Verfahren kommt pro neuem Kommunikationspartner ein neuer (öffentlicher) Schlüssel hinzu, aber der ist erheblich einfacher zu beschaffen, denn er ist halt „öffentlich“.

Der Mann in der Mitte

Im Falle von WhatsApp kann nun folgendes passieren: Marvin (den alle Beteiligten weder kennen, noch wissen sie überhaupt von seiner Existenz) erstellt einfach ein neues Schlüsselpaar und bezeichnet es so, als wäre es von Bob. Den Public Key dieses neuen Schlüsselpaars schickt er bei nächster Gelegengheit mit dem Hinweis, dies sei der neue Key, an das Smartphone von Alice. Deren WhatsApp wird daraufhin die Nachricht (und vermutlich alle zukünftigen) mit dem neuen Schlüssel verschlüsseln und an Bob schicken. Würde Bob diese Nachrichten wirklich erhalten, würde der Betrug sofort auffallen, denn er hätte nicht den passenden privaten Schlüssel und könnte die Nachricht folglich nicht lesen.

Wenn nun aber Marvin diese verschlüsselte(n) Nachricht(en) abfangen kann (was für den Betreiber der Infrastruktur unterstellt werden darf), dann kann er diese Nachricht(en) lesen. Sodann könnte er sie mit dem unveränderten offiziellen Schlüssel von Bob neu codieren und an Bob weiter senden. Diesen Angriff nennt man „man-in-the-middle attack“. Alice und Bob würden dann denken, alles sei in Ordnung, bis sie erneut ihre gegenseitigen „Public Keys“ überprüfen. Dann würde der Betrug auffallen.

Denkbar wäre allerdings auch, dass das absendende WhatsApp die Nachricht weiterhin für Bob verschlüsselt, aber zusätzlich auch an Marvin, den „man in the middle“. Diese Methode dürfte grundsätzlich in der Software eingebaut sein, da ja verschlüsselte Gruppenchats möglich sind. Dann würde der Angriff möglicherweise auch durch einen Fingerprint-Abgleich nicht auffallen. Erst wenn man die Nachricht im Hinblick auf die möglichen Empfänger untersuchen würde, könnte der Betrug auffallen. Dies müsste die Messenger-Software tun, indem sie z.B. erkennt, ob es sich um einen privaten oder einen Gruppenchat handelt und die Schlüssel dann mit den bekannten Empfängern abgleicht. Dieser Absatz ist allerdings spekulativ. Ich weiß nicht, ob dies überhaupt möglich ist bzw. in den gegenwärtig verfügbaren Messengern gemacht wird.

Fingerabdrücke überprüfen

Sicherheitsnummer in Signal überprüfen
Sicherheitsnummer in Signal überprüfen

Ich will nun am Beispiel von Signal zeigen, wie man den Fingerabdruck (gern auch „Sicherheitsnummer“ genannt) der Gegenstelle überprüfen kann. Threema und WhatsApp bieten ein vergleichbares Verfahren an, wobei Threema nach meiner Kenntnis als einziger durch die farbliche Kennzeichnung den Status der Überprüfung deutlich macht.

Öffne dazu in Signal die Unterhaltung mit dem Gesprächspartner (kein Gruppenchat!), den du überprüfen willst. Klicke auf das Menü, dann auf „Unterhaltungseinstellungen“ und dann auf „Sicherheitsnummer überprüfen“. Es sollte nun so aussehen wie im Bild gezeigt, nur dass natürlich die Nummern andere sind. Wenn diese Darstellung auf beiden Smartphones sichtbar ist, klickt der eine auf den QR-Code und scannt dann den QR-Code des anderen. Wird ein weißer Haken auf grünem Grund angezeigt, ist alles soweit in Ordnung. Dann beendet der eine den Scanner und beide führen das Verfahren umgekehrt nochmal aus. Das war es schon. Die englische Anleitung dazu auf der Website von Open Whisper Systems ist ebenfalls sehr hilfreich.

Da Signal leider keine dauerhafte Speicherung dieses Scanergebnisses kennt, empfehle ich, die individuelle Farbe der Unterhaltung auf Grün zu stellen. Wenn nicht überprüfte Unterhaltungen dann auf Rot stehen und unverschlüsselte SMS auf Grau, kann man leicht erkennen, wie der Status aktuell ist. Nur muss man das im Gegensatz zu Threema manuell machen.

Sicherheitsnummer geändert?

Signal bietet aber noch eine weitere Einstellung an, die ich für sehr wertvoll halte: In dem Menü „Einstellungen“ gibt es den Punkt „Datenschutz“. Dort befindet sich „Sicherheitsnummern zustimmen“ mit der Erläuterung Zustimmung erfordern für neue bzw. geänderte Sicherheitsnummern. Diese Option sollte dann zur Folge haben, dass Signal mir mitteilt, wenn in einer Unterhaltung sich der Schlüssel geändert hat. Sollte eine entsprechende Meldung erfolgen, kann dies natürlich eine ganz harmlose Ursache haben. Es tritt beispielsweise auf, wenn jemand ein neues Smartphone hat. Durch die neue Installation wird für ihn auch ein neues Schlüsselpaar erzeugt, was Signal dann natürlich auffallen sollte.

Es kann aber auch bedeuten, dass sich irgendwo dort draußen ein Marvin für eure Kommunikation interessiert. Ob der  Befehl „Verschlüsselung neu starten“ da hilft, weiß ich nicht. Zumindest führte dies im Test nicht zu einer Meldung über eine geänderte Sicherheitsnummer. Lediglich der Hinweis „… hat die Verschlüsselung neu gestartet“ erscheint. Aber nach ein paar Nachrichten hin und her ging es dann wieder.


Übrigens: Mit SmallInvoice können auch Freiberufler wie ich sehr einfach Rechnungen erstellen, versenden und nachverfolgen. (Affiliate-Link)

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Kommentar verfassen