More about encrypted links
Secret links are encrypted in the browser, not on the server. The service can see neither the key phrase nor the address a secret link leads to โ even if it wanted to.
What happens when you publish
- You enter the link address and the key phrase.
- The browser derives two independent values from the phrase: a lookup identifier (an irreversible hash) and an encryption key.
- The browser encrypts the address with that key.
- Only the identifier, the encrypted address and the data needed for decryption (a random salt and initialization vector) are sent to the server. The phrase itself and the original address are never sent.
What happens when someone retrieves it
- The recipient enters the phrase in their browser.
- The browser computes the same identifier and asks the server for the encrypted link with that identifier.
- The browser receives the encrypted address and decrypts it locally using the phrase.
- The phrase is passed to the redirect page in the URL fragment (after
#). This part of the URL is never sent to the server and doesn't appear in its logs.
If the phrase is wrong, decryption fails โ there is nothing for the service to show.
How to find a secret link
On the home page choose the "Secret" type, or start your input with the secret: prefix, for example secret:red elephant. The prefix is not part of the phrase โ it only switches the search to secret mode.
Good to know
- The phrase must match exactly. Letter case and extra spaces are ignored, but typos are not tolerated: an encryption key can't be "roughly right".
- The phrase works like a password. Anyone who knows it can get the link. A simple phrase can be guessed, so pick something less obvious.
- Secret links are always anonymous: they don't appear in the account dashboard and can't be extended. Their lifetime is 1 to 24 hours, like any other link.
- Encryption requires a modern browser with Web Crypto support and a secure connection (HTTPS).
Technical details
- The key and the identifier are derived from the phrase with PBKDF2-HMAC-SHA256, 600,000 iterations.
- The address is encrypted with AES-256-GCM, which protects against both reading and tampering.
- Each link gets its own random salt and initialization vector.
Back to: About.