Wie alles funktioniert.
Die Referenz für BurnPonys bewegliche Teile. Für Schritt-für-Schritt-Anleitungen siehe die Anleitungen; für die exakte Byte-Spezifikation das v1-Protokoll.
Notizen und der Envelope
Eine Notiz umfasst bis zu 50.000 Textzeichen. Auf deinem Gerät werden die Notiz und ihre Auto-Ausblenden-Einstellung in eine kleine JSON-Nutzlast verpackt und dann mit AES-256-GCM verschlüsselt. Hochgeladen wird ein Envelope, der nur eine Formatversion, ein Flag ob eine Passphrase nötig ist, das zufällige Salt, den Nonce und den Chiffretext enthält — unter 512 KiB und ohne Schlüssel unlesbar.
Der Link und der Fragment-Schlüssel
Beim Erstellen einer Notiz entsteht ein Link der Form burnpony.app/n/<22-Zeichen-ID>#<43-Zeichen-Schlüssel>. Der Teil vor dem # identifiziert die Notiz; der Teil danach ist der base64url-kodierte 32-Byte-Fragment-Schlüssel. Browser übertragen Fragmente nie, daher erreicht der Schlüssel den Browser des Empfängers allein über den Link und wird vom Server nie gesehen. Der eigentliche Verschlüsselungsschlüssel wird aus Fragment-Schlüssel und Salt mit HKDF-SHA256 abgeleitet.
Passphrasen
Eine optionale Passphrase fügt einen zweiten Faktor hinzu: Sie wird normalisiert, mit PBKDF2-HMAC-SHA256 über 600.000 Iterationen gestreckt und in die Schlüsselableitung eingefaltet. Der Empfänger wird im Viewer danach gefragt; das Raten geschieht vollständig in seinem Browser und verbraucht keine Aufrufe. Teile die Passphrase über einen anderen Kanal als den Link. Siehe Passphrase hinzufügen.
Aufrufe, Ablauf und Auto-Ausblenden
Jede Notiz trägt ein Aufruf-Kontingent von 1 bis 100 — der letzte erlaubte Aufruf löscht den Chiffretext in derselben Datenbank-Transaktion — und einen Ablauf von 1 Stunde bis 30 Tagen, durchgesetzt durch einen Durchlauf alle fünf Minuten. Welche Grenze zuerst erreicht wird, verbrennt die Notiz. Du kannst auch einen Auto-Ausblenden-Countdown (10 bis 120 Sekunden) setzen, der den enthüllten Text im Viewer wieder verbirgt; diese Einstellung reist verschlüsselt in der Notiz, sodass nicht einmal der Server sie kennt. Siehe Aufrufe und Ablauf wählen.
Lesebestätigungen
Bestätigungen sind standardmäßig aus. Eingeschaltet teilt der Viewer dem Empfänger vor dem Enthüllen der Notiz mit, dass der Absender benachrichtigt wird, die Öffnungszeit wird aufgezeichnet, und dein Handy erhält eine allgemeine Push-Nachricht — „Eine Notiz wurde geöffnet.“ — die nur die Notiz-ID trägt. Bis zu fünf deiner Geräte können sich für die Bestätigungen einer Notiz registrieren. Siehe Lesebestätigungen verwenden.
Der Gesendet-Tab und vorzeitiges Verbrennen
Jede Notiz, die du erstellst, steht in Gesendet mit Live-Status: genutzte Aufrufe, Ablauf, Bestätigungszeiten falls aktiviert. Nur die Notiz-ID, ein Verwaltungs-Token und deine gewählten Einstellungen werden auf deinem Gerät gespeichert — nie der Notiztext. Verbrennen löscht den Chiffretext sofort vom Server; danach verhält sich der Link wie jeder andere tote Link. Siehe eine Notiz vorzeitig verbrennen.
Der Viewer
Die Seite, die Empfänger öffnen, ist eine in sich geschlossene Datei: keine Frameworks, keine Cookies, keine externen Anfragen, eine strikte Content-Security-Policy und eine No-Referrer-Policy, damit der Link nicht weiterleckt. Sie warnt vor dem Enthüllen, dass sich die Notiz selbst zerstört, entschlüsselt mit dem WebCrypto des Browsers und ist in 9 Sprachen lokalisiert. Der Quelltext zeigt das Ganze.
Der Server
Der Relay unter burnpony.app speichert versiegelte Envelopes und minimale Buchführung — IDs, Zeitstempel, Aufrufzähler, Bestätigungs-Flags, ein gehashtes Verwaltungs-Token — und löscht den Chiffretext beim letzten Aufruf, beim Ablauf oder beim vorzeitigen Verbrennen. Verbrannte, abgelaufene und nie existierte Notizen sind von außen nicht zu unterscheiden. Die Erstellung ist mit kurzlebigen gesalzenen IP-Hashes ratenbegrenzt statt mit Adressprotokollen. Volle Details auf der Sicherheitsseite.
Self-Hosting
Die Einstellungen akzeptieren eine eigene Server-URL, und jede Notiz merkt sich, auf welchem Server sie lebt — sodass Notizen, die gegen deinen eigenen Relay erstellt wurden, weiter funktionieren, wenn du zurückwechselst. Der Quellcode des Relay-Servers ist zur Veröffentlichung geplant; bis er erscheint, ist Self-Hosting eine Fähigkeit, die die App unterstützt, und nichts, das du heute aus einem öffentlichen Repo bereitstellen kannst. Die Roadmap verfolgt das ehrlich.
Grenzen auf einen Blick
Notizgröße: 50.000 Zeichen. Envelope-Größe: 512 KiB. Aufrufe: 1–100. Ablauf: 1 Stunde, 8 Stunden, 1 Tag, 3 Tage, 7 Tage oder 30 Tage. Auto-Ausblenden: aus, 10, 30, 60 oder 120 Sekunden. Erstellung: ratenbegrenzt pro Stunde pro (gehashter) Adresse.