SicherheitKryptografiePasswörter

OneTimeSecret vs PrivateNote: Why Where You Encrypt Matters

OneTimeSecret encrypts on its servers. PrivateNote encrypts before the secret leaves your device.

Aktualisiert 23. September 20266 Min. LesezeitPrivateNote.ai

Both products deliver a temporary secret link, but their trust models are fundamentally different. OneTimeSecret performs encryption on its servers, which means the service receives the secret in plaintext and must be trusted to handle it securely before encryption. If a passphrase is used, that passphrase is also submitted to the service as part of the server-side protection mechanism. PrivateNote encrypts the secret locally before it leaves the sender’s device. The service receives ciphertext rather than the plaintext secret, and an optional passphrase protects the client-side encryption key locally, adding protection if the link itself is exposed.

Wichtigste Punkte

  • Beide verschlüsseln temporäre Links. Der Unterschied ist, wo die Verschlüsselung stattfindet.
  • OneTimeSecret verschlüsselt auf dem Server, daher erreichen Geheimnis und Passphrase den Dienst bei der Erstellung und erneut bei der Abholung.
  • PrivateNote verschlüsselt zuerst auf dem Gerät. Der Schlüssel bleibt clientseitig; eine Passphrase umhüllt ihn lokal, wenn der Link offengelegt wird.
  • Das verschiebt die Vertrauensgrenze: Der Server von PrivateNote braucht keinen Klartext. Eine gestohlene Datenbank enthält die Schlüssel nicht; ein kompromittierter Browser während der Nutzung ist ein anderes Risiko.

OneTimeSecret und PrivateNote lösen dasselbe praktische Problem: ein Passwort, einen API-Schlüssel, einen Recovery-Code oder eine vertrauliche Notiz über einen temporären Link zu übermitteln, statt Klartext in E-Mail oder Chat zu hinterlassen. Der Empfänger öffnet den Link, und die gespeicherte Nutzlast kann nach dem Lesen oder bei Erreichen der Ablaufzeit verschwinden.

Beide Produkte verschlüsseln die Nutzlast. Der entscheidende Unterschied liegt darin, wo die Verschlüsselung stattfindet.

OneTimeSecret beschreibt seine Architektur als serverseitige Verschlüsselung. Der Klartext erreicht OneTimeSecret, bevor er verschlüsselt wird. PrivateNote verschlüsselt zuerst lokal, sodass der Dienst Chiffretext statt der Klartext-Nutzlast erhält. Dieser Unterschied bestimmt die kryptografische Vertrauensgrenze.



OneTimeSecret: serverseitige Verschlüsselung

Im gewöhnlichen OneTimeSecret-Ablauf übermittelt der Absender das Geheimnis über TLS. Die Anwendung empfängt den Klartext, verschlüsselt ihn auf dem Server und speichert die verschlüsselte Nutzlast.

Das bietet einen sinnvollen Schutz für gespeicherte Daten. Allein der Besitz verschlüsselter Speicherung offenbart den Inhalt nicht zwingend, wenn dem Angreifer das zur Entschlüsselung nötige Material fehlt.

Der architektonische Kompromiss entsteht vor dem Speichern. TLS schützt das Geheimnis auf dem Weg zwischen Browser und OneTimeSecret, aber die Anwendung muss den Klartext verarbeiten, um ihn zu verschlüsseln. Der Anwendungsserver liegt daher innerhalb der kryptografischen Vertrauensgrenze.

Ein bösartiger oder kompromittierter Anwendungsprozess könnte in diesem Moment auf das Geheimnis zugreifen, bevor es für die Speicherung verschlüsselt wird. Clientseitige Verschlüsselung entfernt genau diese Abhängigkeit, indem das Geheimnis verschlüsselt wird, bevor es den Dienst erreicht.


Die Passphrase von OneTimeSecret ändert die Verschlüsselungsgrenze nicht

Die Dokumentation von OneTimeSecret beschreibt eine optionale Passphrase. Wird eine Passphrase verwendet, verschlüsselt OneTimeSecret laut eigener Aussage das Geheimnis auf seinen Servern mit der vom Absender gelieferten Passphrase. Die Passphrase selbst wird nicht gespeichert; stattdessen behält OneTimeSecret einen bcrypt-Hash zur Überprüfung der Passphrase beim Abruf. Laut Dokumentation kann dieser Hash das Geheimnis selbst nicht entschlüsseln, und das gespeicherte, passphrase-geschützte Geheimnis lässt sich ohne die Original-Passphrase nicht entschlüsseln.

Der Abruf nutzt dieselbe serverseitige Grenze. Der Empfänger übermittelt die Passphrase über TLS an OneTimeSecret. Der Dienst prüft sie und führt die Entschlüsselung auf dem Server durch, bevor der Klartext zurückgegeben wird.

Das bedeutet: Der Anwendungsprozess hat Zugriff auf Geheimnis und Passphrase, wenn die Verschlüsselung stattfindet, und verarbeitet beim Abruf erneut die Passphrase und den resultierenden Klartext. Ein bösartiger oder kompromittierter Anwendungsprozess an einem dieser Punkte könnte diese Informationen potenziell erfassen. Das ist eine Folge davon, wo Verschlüsselung und Entschlüsselung ausgeführt werden — kein Vorwurf, dass OneTimeSecret diese Werte speichert oder missbraucht.

Die öffentliche Dokumentation von OneTimeSecret legt für sich genommen nicht jedes Detail der internen Schlüsselhierarchie fest — etwa, wie genau serverseitiges Schlüsselmaterial, Schlüssel pro Geheimnis, Schlüsselableitung und die gelieferte Passphrase kombiniert werden. Für diesen Vergleich muss man über diese Implementierungsdetails nicht spekulieren. Die relevante dokumentierte Eigenschaft ist, dass Verschlüsselung und Entschlüsselung auf der Seite des Dienstes stattfinden.

OneTimeSecret

Geheimnis + Passphrase

Server

Chiffretext

Das Geheimnis, das Sie senden möchten, und die Passphrase, wenn Sie eine setzen, gelangen beide über TLS zum Server. Die Verschlüsselung läuft auf diesem Server. Was in der Speicherung bleibt, ist Chiffretext.

Self-Hosting kann dieses Serververtrauen vertretbar machen

OneTimeSecret ist Open Source. Eine Organisation kann eine eigene Instanz innerhalb eines Unternehmens-Sicherheitsperimeters betreiben, statt Geheimnisse an den öffentlichen Dienst zu senden.

In diesem Deployment bedeutet Vertrauen in den Anwendungsserver Vertrauen in Infrastruktur, die die Organisation bereits betreibt. Der Klartext erreicht diesen Server weiterhin, weil die Verschlüsselung weiterhin dort stattfindet. Die Partei auf der anderen Seite der Grenze sind die eigenen Hosts, Betreiber und Backups der Organisation. Für ein Team, das diese Systeme bereits als Teil des Pfads akzeptiert, den ein Geheimnis nimmt, kann serverseitige Verschlüsselung eine vernünftige Wahl sein. Sie verringert den Abstand zwischen den serverseitigen und clientseitigen Bedrohungsmodellen, weil der Betreiber kein externer Dienst mehr ist.


PrivateNote verschlüsselt vor dem Upload

Eine Standard-PrivateNote wird vor dem Upload verschlüsselt. Der Browser des Absenders — oder ein lokaler CLI-, Chrome-Erweiterung-, Editor-Erweiterung- oder MCP-Prozess — erzeugt einen zufälligen Schlüssel und verschlüsselt die Nutzlast mit AES-256-GCM. Hochgeladen wird nur Chiffretext. TLS transportiert diesen Chiffretext vom Browser zum Cloudflare-Worker von PrivateNote. Der Entschlüsselungsschlüssel liegt im URL-Fragment, dem Teil nach #, zum Beispiel https://privatenote.ai/note/abc123#…. Das Fragment wird clientseitig verarbeitet und ist nicht in der HTTPS-Anfrage enthalten (RFC 3986, §3.5; URL Standard). Der Worker empfängt eine Notiz-ID und gibt Chiffretext über dieselbe TLS-Verbindung zurück. Der Browser behält das Fragment und entschlüsselt lokal.



Die verbleibende Vertrauensannahme beim Web-Client

Clientseitige Verschlüsselung im Browser ist keine vertrauenslose Webanwendung. Die Kryptografie kann lokal laufen, während das JavaScript, das sie implementiert, von der Website ausgeliefert wird. Der Browser vertraut dem Code, den er für diese Sitzung erhält.

Wer dieses JavaScript ändern kann — über die Anwendung, ein CDN oder die Deployment-Pipeline — könnte den Client verändern und in einer künftigen Browser-Sitzung Schlüssel erfassen. Das ist ein anderer Fehler als der Diebstahl einer Datenbank. Eine Speicher-Kompromittierung legt Chiffretext offen. Bösartige Code-Auslieferung greift den Endpunkt an, während der Schlüssel tatsächlich vorhanden ist.

Ein späterer Datenbank-Dump kann keine clientseitigen Schlüssel erzeugen, die dort nie gespeichert waren. Ein aktiv kompromittierter Client kann Geheimnisse angreifen, die in dieser Sitzung verarbeitet werden. Dieselbe Annahme steht im Bedrohungsmodell von PrivateNote: Der ausgelieferte Anwendungscode wurde nicht böswillig verändert, und die Geräte von Absender und Empfänger sind im Moment von Verschlüsselung und Entschlüsselung vertrauenswürdig.

Installierte Software verringert die Abhängigkeit von einer frisch heruntergeladenen Seite. Eine CLI, eine Editor-Erweiterung oder eine native App führt Code aus, den Sie installiert haben. Diese Clients hängen weiterhin vom Betriebssystem, von Signierung, Abhängigkeiten und dem Update-Kanal ab. Die Entwickler-Tools nutzen dieselbe Trennung wie der Browser: lokal verschlüsseln, Chiffretext hochladen, den Schlüssel im Fragment belassen.


Lebensdauer und Vertraulichkeit

Ein Einmal-Link beantwortet zwei getrennte Fragen. Wie lange soll die verschlüsselte Nutzlast existieren? Und wer kann sie entschlüsseln, solange sie existiert? Zerstörung nach Abruf oder Ablauf verkürzt das Fenster. Sie entscheidet nicht, wer sie in diesem Fenster lesen könnte. Lebensdauer und Vertraulichkeit stützen einander. Das eine ersetzt das andere nicht.

Die Unterscheidung wird am schärfsten, wenn die Nutzlast Autorität ist: API-Schlüssel, Datenbank-Zugangsdaten, Cloud-Tokens, Recovery-Codes, Infrastruktur-Passwörter. Ein Secret-Sharing-Dienst existiert, weil der Absender weniger Systemen diese Information anvertrauen will. Wenn der Vermittler nur ein undurchsichtiges verschlüsseltes Objekt tragen, Ablauf erzwingen und löschen muss, kann der Server diese Arbeit leisten, ohne das Geheimnis oder den Schlüssel zu erhalten, der es öffnet.


Wo die Grenze liegt

„Verschlüsselt“ sagt nicht, wo die Vertrauensgrenze liegt. Der brauchbare Maßstab ist eine minimale Vertrauensgrenze: das Prinzip der geringsten Rechte angewandt darauf, wer Klartext sehen muss. In der modernen kryptografischen Technik geht es nicht nur darum, dem Verhalten eines Servers zu vertrauen, sondern die mathematische Notwendigkeit von Vertrauen von vornherein zu verringern.

OneTimeSecret beschreibt ein serverseitig verschlüsseltes System. Mit Passphrase-Schutz sagt es, dass das gespeicherte Geheimnis anschließend ohne die Passphrase nicht entschlüsselt werden kann und dass eine Server-Kompromittierung das Geheimnis sicher ließe, solange diese Passphrase unbekannt bleibt. Eine schwache Passphrase kann per Brute-Force angegriffen werden. Ist sie schwach, kann die Kompromittierung das Geheimnis trotzdem wiederherstellbar lassen. Klartext und Passphrase erreichen OneTimeSecret bei der Erstellung, weil die Verschlüsselung auf dessen Servern stattfindet, und die Passphrase wird beim Abruf zurückgeschickt, damit diese Server entschlüsseln können.

PrivateNote trifft eine andere architektonische Wahl. Die Nutzlast wird verschlüsselt, bevor sie den Dienst erreicht, und der Standard-Nutzlastschlüssel bleibt clientseitig. Eine Passphrase, wenn Sie eine setzen, schützt diesen clientseitigen Schlüssel zusätzlich lokal, wenn der Kanal, der den Link trägt, kompromittiert wird. Sie wird nicht an PrivateNote gesendet.

OneTimeSecret verschlüsselt Ihr Geheimnis. Der Client, der den PrivateNote-Dienst nutzt, verschlüsselt es, bevor der Dienst es erhält. Diese Unterscheidung hängt nicht davon ab, einen der Anbieter als böswillig anzunehmen. Sie reduziert die Frage auf Architektur: Wie viele Systeme brauchen Zugriff auf Klartext, damit der Dienst funktioniert?


Häufige Fragen

Speichert OneTimeSecret das Geheimnis im Klartext?

Ihre Dokumentation sagt nein. Sie verschlüsseln auf ihren Servern. Mit einer Passphrase speichern sie laut eigener Aussage das verschlüsselte Geheimnis und einen bcrypt-Hash der Passphrase, nicht die Passphrase, und der Hash kann das Geheimnis nicht entschlüsseln.

Wenn ich bei OneTimeSecret eine Passphrase setze, ist das Geheimnis vor ihren Servern verborgen?

Nicht während der Erstellung und nicht beim Abruf. OneTimeSecret sagt, dass Geheimnis und Passphrase dem Server übergeben werden, damit der Server die Verschlüsselung ausführen kann. Wenn der Empfänger den Link öffnet, sendet er die Passphrase über TLS zurück, und die Entschlüsselung läuft auf den Servern von OneTimeSecret, bevor der Klartext zurückgegeben wird. Nach der Verschlüsselung verwirft OneTimeSecret laut eigener Aussage die Klartext-Passphrase, behält nur einen bcrypt-Hash und kann das gespeicherte Geheimnis ohne die Original-Passphrase nicht entschlüsseln.

Was schützt eine PrivateNote-Passphrase?

Den clientseitigen Schlüssel, wenn der Kanal, der den Link trägt, kompromittiert ist. Die Notiz selbst ist auf Ihrem Gerät bereits mit AES-256-GCM verschlüsselt. Argon2id leitet lokal einen Wrapping-Schlüssel aus der Passphrase ab, und dieser Wrapping-Schlüssel verschlüsselt den Notizschlüssel. Der Link hält dann einen eingewickelten Schlüssel. PrivateNote empfängt Chiffretext und ein Salt. Es empfängt weder die Passphrase noch den Rohschlüssel. Eine Standard-Notiz ist auch ohne Passphrase vor dem Upload verschlüsselt. Senden Sie die Passphrase über einen separaten Kanal vom Link.

Kann clientseitige Verschlüsselung vor einem kompromittierten PrivateNote-Server schützen?

Bei einer Kompromittierung gespeicherter Daten oder der API: ja, insofern als clientseitige Verschlüsselung ungelesene Nutzlasten isoliert, weil der Server den Standard-Nutzlastschlüssel nicht hat. Ein späterer Datenbank-Dump kann keine Schlüssel erzeugen, die dort nie gespeichert waren. Bei bösartiger Client-Code-Auslieferung: nein. Ein Angreifer, der das an eine künftige Browser-Sitzung ausgelieferte JavaScript ändern kann, könnte versuchen, den Schlüssel zu erfassen, während er vorhanden ist. Installierte Clients verringern diese Abhängigkeit von einer frisch heruntergeladenen Seite.


Primärquellen

Architekturinformationen zu OneTimeSecret wurden am 23. September 2026 gegen die öffentliche Dokumentation geprüft. Produktimplementierungen und Dokumentation können sich ändern.

Verschlüsseln, bevor das Geheimnis das Gerät verlässt

Schreiben Sie die Notiz im Browser. Der Client verschlüsselt sie lokal, legt den Schlüssel in den Link und kann diesen Schlüssel mit einer Passphrase schützen, die der Server nie empfängt.

PrivateNote on LaunchNest