Vessum › Blog › Köder-Codes, und warum die meisten nicht funktionieren

Köder-Codes, und warum die meisten nicht funktionieren

Ein zweites Passwort, das eine andere Galerie öffnet, gibt es seit zehn Jahren. Die meisten Umsetzungen scheitern an dem einen Test, der zählt. Hier ist der Test, und wie man ihn anwendet.

"Gib ein zweites Passwort ein und sieh andere Inhalte" ist keine neue Idee. Foto-Tresor-Apps liefern das seit über zehn Jahren, und Dutzende im App Store bieten es heute an.

Die meisten scheitern in genau dem Moment, in dem es je darauf ankäme. Es lohnt sich zu verstehen, warum, denn das Scheitern hat nichts mit der Stärke der Verschlüsselung zu tun. Es hat mit etwas viel Gewöhnlicherem zu tun.

Der Test

Stellen Sie sich vor, die Person, der Sie den Code geben, hat diese App schon benutzt. Sie hat sie auf dem eigenen Telefon, oder sie hat darüber gelesen, oder sie hat sie auf dem Gerät von jemand anderem gesehen.

Sie tippt den Code ein, den Sie ihr gegeben haben. Die App öffnet sich.

Sagt ihr irgendetwas Sichtbares, dass dies der Köder ist?

Das ist der ganze Test. Alles Weitere handelt davon, auf wie viele Arten eine App daran scheitert.

Scheitern eins: der Köder ist ein anderer Bildschirm

Die übliche Umsetzung ist eine Verzweigung in der Oberfläche. Die App speichert zwei Passwörter, vergleicht das Getippte mit beiden und zeigt Galerie A oder Galerie B.

Das hat zwei Probleme.

Beide Passwörter liegen auf dem Gerät. In einer Datenbank, einer Einstellungsdatei oder im Schlüsselbund. Wer den Speicher ausliest, hat beide, und damit das Wissen, dass es zwei gab. Die Verschlüsselung der Fotos hilft nicht, denn die App muss ein übergebenes Passwort prüfen können, und das heißt, sie hat etwas zum Vergleichen behalten.

Die Datenbank sagt, es sind zwei. Eine Spalte is_decoy, eine vault_id mit dem Wert 2, eine Zeilenzahl. Wer den Speicher der App liest, muss gar nichts knacken. Er liest ihn, und jetzt weiß er, dass er weiterfragen soll.

Scheitern zwei: dem Köder sieht man an, dass er einer ist

Das ist feiner und in der Praxis schlimmer.

Viele Apps machen den Köder zu einer abgespeckten Fassung des echten Tresors. Der echte hat Einstellungen, um das zweite Passwort anzulegen und zu verwalten. Der Köder hat sie nicht, denn wozu sollte ein falscher Tresor falsche Tresore anlegen?

Das Ergebnis: Dem Köder fehlt eine Funktion, die der echte hat. Wer die App schon kennt, öffnet sie, schaut in die Einstellungen, sieht einen Abschnitt, der da sein müsste und nicht da ist, und weiß in einer Sekunde genau, was er vor sich hat.

Ab diesem Punkt steht, wer den Code herausgegeben hat, schlechter da, als hätte er die App nie installiert. Er hat nichts geschützt und sichtbar versucht, etwas zu schützen, und das ist eine weit interessantere Tatsache als alles im Tresor.

Scheitern drei: die App kündigt sich selbst an

Ein Symbol mit Vorhängeschloss. Ein Name mit "Vault" oder "Secret" darin. Ein Eintrag, der verspricht, Dinge vor Leuten zu verstecken.

Nichts davon ist eine kryptografische Schwäche. Es ist bloß ein Schild an der Tür. Die App muss nicht gefunden und geknackt werden, wenn man auf sie zeigen und sie verlangen kann.

Was Bestehen verlangt

Drei Eigenschaften, keine davon exotisch.

Nichts gespeichert, womit man vergleichen könnte

Der Code darf nirgends gespeichert sein, in keiner Form, auch nicht als Hash. Er wird getippt, dient dazu, einen Schlüssel abzuleiten, und wird vergessen.

Die Folge ist hart und nicht verhandelbar: ein vergessener Code kann von niemandem wiederhergestellt werden, auch nicht vom Entwickler. Jede App, die Ihnen eine Wiederherstellung anbietet, sagt Ihnen damit, dass sie etwas behalten hat, und was sie behalten hat, kann man ihr abnehmen.

Nichts auf dem Speicher, das die Bereiche zählt

Enthält der Speicher drei verschlüsselte Blöcke, dann weiß ein Prüfer, dass es drei Dinge gibt. Die Lösung ist, dass der Speicher gleich aussieht, ob er einen Bereich enthält, fünf oder keinen.

Der übliche Weg: beim ersten Start alle Fächer anlegen, alle mit Zufallsdaten füllen und jedes echte auf exakt dieselbe Größe auffüllen. Verschlüsselte Daten und Zufallsdaten aus einem guten Generator stammen aus derselben Verteilung. Ohne Schlüssel trennt sie nichts.

Deshalb können solche Apps keine Anzeige "so viel Platz belegst du" haben, die sich verändert. Jede Zahl, die sich bewegt, ist eine Zahl, die etwas verrät.

Jeder Bereich gleich

Das übersehen die meisten Umsetzungen, und darum geht es beim Test oben eigentlich.

Der Köder darf keine geringere Fassung des echten sein. Dieselben Einstellungen, dieselben Abschnitte in derselben Reihenfolge, dieselben Formulierungen, dieselbe Fähigkeit, eigene Bereiche anzulegen, dieselben Fehlermeldungen. Es darf kein Abzeichen geben, das einen als den ursprünglichen markiert, und keine Funktion, die nur der ursprüngliche hat.

Daraus folgt, dass es kein "oben" gibt. Ein Bereich soll die Bereiche auflisten, die er angelegt hat, und niemals den, aus dem er stammt, damit wer einen öffnet nicht sagen kann, ob er beim ersten steht oder drei Ebenen tiefer.

Wie Sie eine App selbst prüfen

Sie müssen niemandes Quelltext lesen. Vier Fragen bringen Sie fast ans Ziel.

Fragen SieEine schlechte Antwort klingt so
Was passiert, wenn ich den Code vergesse?"Kontaktieren Sie den Support" oder "nutzen Sie Ihre Wiederherstellungsadresse"
Hat der Köder dieselben Einstellungen wie der echte Tresor?"Der Köder ist eine vereinfachte Ansicht"
Wo liegen meine Inhalte?"Sicher in der Cloud gesichert"
Was tut Löschen wirklich?"Löscht die Datei endgültig"

Zum letzten Punkt ein Wort. Flash-Speicher überschreibt nicht ehrlich an Ort und Stelle, Bytes zu schrubben ist also Theater. Die stärkere Antwort lautet, dass Löschen den Schlüssel verwirft, was die übrigen Bytes dauerhaft unlesbar macht und verhindert, dass die Anzahl der Dateien auf eine Weise sinkt, die zeigt, dass etwas entfernt wurde.

Wo Vessum steht

Vessum wurde um diesen Test herum gebaut, und daher kommen mehrere Entwurfsentscheidungen, die sonst seltsam wirken.

Jeder Bereich hat dieselben Einstellungen und kann eigene Bereiche anlegen, so tief verschachtelt, wie Sie möchten. Es gibt keinen Hauptbereich und keine Markierung, die einen als den ursprünglichen ausweist. Der Speicher besteht aus vierundzwanzig Fächern fester Größe, beim ersten Start alle mit Zufallsdaten beschrieben und von da an alle voll, sodass ein Fach mit einem Bereich und ein Fach ohne alles gleich viele Bytes hochentropischer Daten sind.

Und es gibt keine Code-Wiederherstellung, weil nichts gespeichert ist, woraus man ihn wiederherstellen könnte.

Eine Grenze nennen wir deutlich: dass Vessum installiert ist, bleibt nicht verborgen und kann es nicht. Wer auf das Telefon schaut, sieht die App und sieht, dass sie verschlüsselte Daten hält. Verborgen bleibt, wie viele Bereiche es gibt und was darin ist.

Wenn Sie selbst versuchen möchten, ein belegtes Fach von einem leeren zu unterscheiden: die Startseite führt die echte Kryptografie in Ihrem Browser aus und lädt Sie ein, die Fächer zu benennen, in denen etwas liegt. Niemand ist besser als der Zufall, und genau das ist der Punkt.

Vessum

Fotos, Dokumente und Notizen hinter mehr als einem Code. Jeder öffnet einen anderen Bereich, und keiner kann beweisen, dass die anderen existieren.

Im App Store laden