So schützen wir eure Antworten
„So mag ich’s“ vergleicht eure Antworten, ohne dass wir oder der Messenger sie zu sehen bekommen. Ihr seht die Karten, bei denen ihr beide Ja oder Vielleicht gewählt habt. Fehlt eine Karte, bei der du selbst Ja oder Vielleicht gewählt hast, kannst du daraus auf ein Nein deines Gegenübers schließen.
Das Verfahren in einfachen Worten
- Dein Browser wählt einen geheimen Zufallsschlüssel. Jede Karte, die du mit Ja oder Vielleicht beantwortest, wird in einen Zahlenwert umgerechnet und mit deinem Schlüssel „verschlossen“. Die Reihenfolge wird gemischt.
- Dein Gegenüber verschließt deine Werte zusätzlich mit seinem eigenen Schlüssel und schickt sie zurück, zusammen mit seinen eigenen, nur mit seinem Schlüssel verschlossenen Werten.
- Dein Browser verschließt die Werte deines Gegenübers mit deinem Schlüssel. Jetzt tragen alle Werte beide Schlösser. Nur gleiche Karten ergeben gleiche Werte, und nur diese erkennt dein Browser wieder. Mit dem letzten Link kann auch dein Gegenüber die gemeinsamen Karten bestimmen.
Fachlich ist das eine Private Set Intersection nach Diffie-Hellman auf der Gruppe ristretto255 (RFC 9496); Karten werden mit hash_to_ristretto255 (RFC 9380) abgebildet, mit einer eigenen Kennung je Abgleich. Wir nutzen die Open-Source-Bibliothek @noble/curves (MIT-Lizenz, Lizenztext), die auf unserem Server liegt und nicht von fremden Servern geladen wird.
Warum unser Server nichts sieht
Die verschlüsselten Werte stehen im Link hinter dem #-Zeichen. Browser schicken diesen Teil eines Links nie an den Server. Unser Server liefert nur die App aus und zählt Seitenaufrufe ohne Cookies und ohne IP-Adresse (Datenschutz).
Was das Verfahren nicht leistet
- Fehlende Karten: Ob ein Treffer aus Ja oder Vielleicht entstand, zeigt das Ergebnis nicht. Wer bei einer Karte selbst Ja oder Vielleicht gewählt hat und sie im Ergebnis vermisst, weiß aber, dass der andere dort Nein gewählt hat. Das gilt schon bei einer einzelnen Karte.
- Anzahl: Jede Seite erfährt, bei wie vielen Karten der andere insgesamt Ja oder Vielleicht gewählt hat. Welche das sind, erfährt sie nur für die gemeinsamen Karten.
- Alles bejahen: Wer bei jeder Karte Ja sagt, sieht alle Ja-Karten des anderen als Treffer. Die angezeigte Anzahl macht das erkennbar. „So mag ich’s“ ist für Paare gedacht, die einander vertrauen.
- Verschiedene Ergebnisse: Wer den Ablauf absichtlich manipuliert, kann dem anderen ein anderes Ergebnis zeigen als sich selbst.
- Euer Gerät: Schlüssel und Ergebnis liegen im Browser-Speicher eures Geräts, bis ihr sie löscht. Wer euer entsperrtes Gerät benutzt, könnte das Ergebnis sehen. Der Knopf „Alle Angaben auf diesem Gerät löschen“ entfernt alles.
- Verlauf: Der Link steht danach eventuell im Verlauf eures Browsers oder Messengers. Er enthält keine lesbaren Antworten.
Fragen zur Technik beantworten wir gern: Venture34@westlabsai.com.