Fragen? Antworten! Siehe auch: Alternativlos
Daher mein Vergleich mit Safe Spaces.
Auf mich wirkt das, als wenn Außenstehende sich bemühen, sich von Aussagen anderer triggern zu lassen, die gar nicht mal an sie gerichtet waren, und die auch nicht als Angriff auf irgendeine Person gemeint waren. Man fühlt sich durch Vorwürfe in seiner Lebensqualität beeinträchtigt, die man sich auch noch selber einbildet, die gar nicht tatsächlich da sind. Niemand hat Moxie beschuldigt, ein NSA-Kollaburateur zu sein!
Aber man muss schwere Krypto-Probleme auch ansprechen dürfen, denn sonst werden sie ja nie gefixt. In diesem Fall ist das Problem eine Sache, über die man verschiedene Meinungen haben kann. Das kommt auf die Perspektive an, wie so häufig.
Man kann auf der einen Seite sagen: Ein Krypto-System mit so einer Schwachstelle wiegt Menschen in falscher Sicherheit und ist daher schlimmer als gar keine Krypto.
Man kann auf der anderen Seite sagen: Wir haben eine Milliarde Menschen zu starker Krypto gekriegt, und dieser Angriff wäre eh ein aktiver Angriff, passives Abhören haben wir erfolgreich verhindert! Sieg!
Welche Perspektive sich durchsetzt, das entscheidet man mit einer Debatte. Aber die Debatte wird jetzt durch lauter Schneeflocken-Argumente gestört. Ja aber wenn ihr so böse zu Moxie seid, dann schreibt er vielleicht gar keine Software mehr für uns! Ihr solltet ihm lieber dankbar sein!
Ich spitze jetzt ein wenig zu, klar. Aber ihr versteht hoffentlich den Punkt, den ich zu machen versuche.
Wenn ihr nicht wisst, wovon ich hier rede, könnt ihr euch mal diese Argumentation hier durchlesen, die sogar so weit geht, "eure Krypto hat eine Schwäche" auf eine Stufe mit Impfgegnern zu stellen. Das schöne bei Krypto-Software ist ja, dass man sie stärker machen kann, ohne dass User mehr Aufwand haben. Den Mehraufwand übernimmt die Software für sie. Daher tendiere ich in diesem Spannungsfeld auch eher zu "wenn es stärkere Krypto gibt, die man an der Stelle ausrollen könnte, und man tut es nicht, dann ist das ein Fehler".
Konkret geht es um ein Detail im Protokoll, die von Anfang an bekannt und dokumentiert ist. Ich paraphrasiere das jetzt wahrscheinlich falsch, aber ich mache es trotzdem mal. Wenn euch die Details wichtig sind, schlagt sie selber nacht :-)
Bei traditionellen Kryptosystemen wie PGP hat man eine Nachricht, verschlüsselt und signiert sie, und schickt sie zu. Signieren und Verschlüsseln sind offline, man braucht dafür keinen Live-Kanal zum Gegenüber oder überhaupt Internet (solange man den public key vom Gegenüber hat). Die Nachricht schickt man dann rüber und fertig.
Neuere Kryptosysteme wie OTR haben aber noch weitergehende Anforderungen als PGP. Wenn ich eine PGP-Nachricht an jemanden schicke, dann beweise ich damit nicht nur demjenigen, dass die Nachricht von mir kam, sondern der kann die dann auch Dritten gegenüber als Beweis benutzen, dass die Nachricht von mir kam. OTR möchte jetzt erreichen, dass ich jemandem etwas so sagen kann, dass der weiß, dass das von mir kam, aber er kann damit nicht Dritten gegenüber beweisen, dass das von mir kam. Das ist protokolltechnisch eine komplexe Geschichte, weil man pro Nachricht einen anderen Schlüssel nehmen muss. Und damit ist auch das Schlüsselaustauschproblem größer als bei PGP. Signal und Whatsapp sehen jetzt vor, dass man im Voraus ein paar Schlüssel sozusagen vor-austauscht, damit man auch offline Nachrichten verschicken kann (jedenfalls solange die Liste der vorausgetauschen Schlüssel noch nicht leer ist). Jeden Schlüssel kann man natürlich nur einmal nehmen.
Das Problem, um das es jetzt geht, ist was passieren soll, wenn diese Liste mal alle ist. Sagen wir mal, das FBI will meine Whatsapp-Nachrichten mitlesen. Dann gehen die zu Whatsapp und sagen denen: sag diesem Client mal, dass seine Liste ungültig ist. Weil der Client gerade offline sein kann, heißt das auch, dass möglicherweise Nachrichten mit neuem Schlüssel nochmal verschlüsselt werden müssen. Ihr könnt schon ahnen, wie man so möglicherweise Abhör-Möglichkeiten schaffen könnte.
Das Problem ist jetzt, dass bei Whatsapp in dem Fall kein Warn-Popup kommt. Die Security-Hardliner (zu denen ich mich an der Stelle auch zähle) sagen jetzt: Dafür gibt es keine Entschuldigung. Macht da nen Warn-Popup hin. Das sollte auch so gut wie nie Fehlalarm geben.
Die anderen sagen: Man kann diese Warnung aber anschalten, und der Whatsapp-Server kann nicht wissen, wer das angeschaltet hat und wer nicht, daher können die das nicht machen, ohne entdeckt zu werden. Das Risiko ist überschaubar.
Kann man finden, aber ich finde das nicht. Erinnert ihr euch an die Stories aus der DDR, wenn die Stasi das Telefon abgehört hat, dass das dann hörbar geknackst hat? Da hätte man ja auch argumentieren können: Nicht so schlimm, die Leute merken das ja, wenn sie drauf achten. Das hat die Stasi nicht abgehalten, und das wird das FBI nicht abhalten, glaube ich. Und das UI ist wohl an der Stelle auch nicht offensichtlich, wo man da was klicken muss, um diese Warnung anzuschalten. Ich weiß es nicht, weil ich kein Whatsapp benutze.
Ich finde aber, dass diese Debatte wichtig ist und geführt werden wollte. Und ihr solltet da auch alle mal drüber nachdenken, wie ihr das seht, und dann eure Krypto-Produkte entsprechend auswählen.
Update: Bei meinen Rust-Kommentaren ist übrigens auch so eine Schneeflocken-Safespace-Ding passiert. Gleich mehrere Leute haben sich aufgeregt, dass ich es wage, Rust als nicht stabil zu bezeichnen (was ich gar nicht getan habe! Ich habe den Branch referenziert, den Rust selber auf ihrer Downloadseite als Stable bezeichnet). Ein Leser hat mich auf einen Reddit-Thread hingewiesen, der sich dazu gebildet hat, und ungefähr die Hälfte der Kommentare handelten nicht von meinen Argumenten sondern von mir als Person. Als ob man sich mit Kritik oder Argumenten nicht beschäftigen müsste, nur weil man die Person nicht mag!? Sowas finde ich immer echt unverständlich. Es geht doch hier um euer Softwareprojekt, wollt ihr nicht, dass das besser wird!?
Update: Ah, die Erklärung habe ich wohl tatsächlich verkackt. Whatsapp und Signal haben die Authentisierung an die Telefonnummer gebunden. Das hat Vorteile (besonders bei der Usability), aber es hat halt auch Nachteile, weil das FBI halt einfacher eine Telefonummer übernehmen kann als die Krypto in der App auf dem Telefon, das ich in der Tasche habe.
Update: Ist sogar noch ein bisschen anders. Selbst wenn man das Popup anschaltet, dann hat Whatsapp trotzdem schon eine Retransmission der Nachricht mit dem neuen Key gemacht. Signal macht das erst, wenn der Nutzer es bestätigt hat.