Sicherheit

Was ihr schreibt, können nur ihr zwei lesen. Hier steht, wie das funktioniert, und wo es an Grenzen stößt.

Diese Seite erklärt die Technik in einfacher Sprache. Fachbegriffe stehen in Klammern. Die vollständige Beschreibung ist öffentlich: das Protokoll und das Bedrohungsmodell (beide auf Englisch).

Wer kann was lesen?

InhaltIhrWir als Team hinter der AppApple und Google
Private Frage und NotizNur duNeinNein
Geteilte FrageIhr beideNeinNein
AntwortIhr beide, sobald beide geantwortet habenNeinNein
KommentarIhr beideNeinNein
Push-NachrichtNur ein allgemeiner Hinweis, nie der Text einer FrageNeinNein

So funktioniert die Verschlüsselung

Alles, was du schreibst, wird auf deinem Handy verschlüsselt, bevor es das Handy verlässt (Ende-zu-Ende-Verschlüsselung). Auf unserem Server liegen nur verschlüsselte Pakete. Die Schlüssel dazu gibt es nur auf euren Handys.

  • Dein Schlüssel: Beim Einrichten erzeugt die App einen geheimen Grundschlüssel. Aus ihm leitet sie alle weiteren Schlüssel ab. Er lässt sich als Wiederherstellungs-Code aus zwölf Wörtern aufschreiben (BIP-39).
  • Euer gemeinsamer Schlüssel: Wenn ihr euch verbindet, tauscht ihr öffentliche Schlüssel aus. Am sichersten nebeneinander mit einem Code zum Scannen. Verbindet ihr euch über einen Link, vergleicht ihr zusätzlich einen kurzen Sicherheitscode aus zehn Symbolen. So merkt ihr, wenn sich jemand dazwischengeschaltet hat.
  • Jede Antwort hat ihren eigenen Schlüssel. Die andere Person bekommt nur eine befristete Leihgabe dieses Schlüssels. Das ist wichtig für die Trennung (weiter unten).

Wir setzen auf bewährte Verfahren und gepflegte, viel geprüfte Bibliotheken. Selbst erfunden ist keines davon: XChaCha20-Poly1305 für Inhalte, X25519 und HPKE (RFC 9180) für den Schlüsselaustausch, Ed25519 für Signaturen, HKDF-SHA256 zum Ableiten von Schlüsseln und Argon2id für die PIN der App-Sperre. Der Kern ist in Rust geschrieben.

Antworten erst, wenn beide geantwortet haben

Deine Antwort wird zweimal verschlossen. Den äußeren Schlüssel hinterlegt deine App auf dem Server. Der Server gibt ihn der anderen Person erst, wenn sie selbst eine Antwort hinterlegt hat. Den inneren Schlüssel hat der Server nie. Er allein kann deine Antwort also nicht lesen, und die andere Person kann sie nicht früher lesen, auch nicht mit einer veränderten App.

Ehrlich gesagt: Arbeiten der Server und die andere Person zusammen, könnten sie eine Antwort vorzeitig öffnen. Gegen diesen Fall schützt der Mechanismus nicht.

So funktioniert die Trennung

Trennt sich eine Person, löscht der Server sofort alle Schlüssel-Leihgaben zwischen euch. Beide Apps löschen die Antworten und Kommentare der anderen Person und deren Schlüssel. Die Fragen bleiben bei beiden.

Ist das andere Handy gerade offline, kann es die Inhalte noch so lange lesen, bis seine Leihgabe abläuft, höchstens 7 Tage nach der letzten Verbindung. Die App zeigt dir, ab wann die Inhalte spätestens unlesbar sind.

Ein Jahr lang könnt ihr die Trennung gemeinsam rückgängig machen. Danach löscht der Server alles, was noch zu eurer Verbindung gehört.

Was der Server trotzdem erfährt

Der Server weißDer Server weiß nicht
Konto-Kennungen, öffentliche Schlüssel, Push-Token, Geräte-KennungenNamen, E-Mail-Adressen, Telefonnummern
Welche zwei Konten verbunden sind, ob getrennt und wannWarum
Wann wer ein verschlüsseltes Paket hochgeladen hat und wie groß es ungefähr istOb es eine Frage, Antwort oder Notiz ist, und was darin steht
Ob zu einer geteilten Frage 0, 1 oder 2 Antworten hinterlegt sindDie Frage und die Antworten
Dass und wann eine Push-Nachricht an die andere Person gehtWelche Art von Nachricht
Die IP-Adresse während einer AnfrageSie wird nicht gespeichert

Mehr als das können wir auch auf Anfrage einer Behörde nicht herausgeben.

Welche Dienste beteiligt sind

  • Unser Server steht bei Hetzner Online GmbH in Deutschland. Er speichert nur verschlüsselte Inhalte.
  • Apple und Google stellen Push-Nachrichten zu. Sie sind verschlüsselt und enthalten nie den Text einer Frage oder Antwort.
  • Impulse kommen aus dem Gesprächsspiel „… einfach reden!“. Unser Server holt die Liste ab und reicht sie signiert weiter. Eure Handys fragen dort nie direkt an.

Mehr dazu in der Datenschutzerklärung.

Wo der Schutz endet

  • Screenshots, Fotos und Abschreiben lassen sich nicht verhindern.
  • Wer dein entsperrtes Handy in der Hand hat, sieht, was du siehst. Deshalb ist die App-Sperre von Anfang an an.
  • Eine veränderte App oder ein manipuliertes Handy kann alles behalten, was es je lesen durfte.
  • Verlierst du dein Handy und deinen Wiederherstellungs-Code, sind deine eigenen Inhalte weg. Wir können sie nicht zurückholen.
  • Der Server weiß, wer mit wem verbunden ist und wann ihr aktiv seid (siehe oben).

Nachprüfen

Der gesamte Code ist öffentlich (AGPL-3.0). Vor dem Start prüfen wir die App selbst nach dem Standard OWASP MASVS. Eine Prüfung von außen gab es bisher nicht. Gibt es einen Prüfbericht, verlinken wir ihn hier.

Sicherheitslücke gefunden?

Bitte schreib uns an hello@ourquestiondiary.app, bevor du sie veröffentlichst. Wir antworten so schnell wie möglich und nennen dich auf Wunsch, wenn die Lücke behoben ist. Die Kontaktdaten stehen auch maschinenlesbar in der security.txt.

Später veröffentlichen wir hier einmal im Jahr, ob und wie oft Behörden Daten angefragt haben.