Sharing - how does it work

When you click on the create share link button, these are all the steps we take in order to allow you to securely share your message

Random key

generate a 256 bits random key [code]1

Encrypt Message

encrypt your message in the browser using the random key, and push this encrypted content to our service [code]1

PIN

encrypt the key using the selected PIN [code]1

Sharing URL

create a share link combining the following items:

  • document ID: the random code used to identify the shared document is put in the URL path

  • key: the key, encrypted with the PIN, is attached to the URL as a fragment; this will avoid this information to be sent to our service once the URL is redeemed

Redeem

When your peer redeem the URL, the application will initially ask for a PIN; once this is entered the document ID will be used to retreive the payload from our service.

Once the service returns the payload, it will proceed to delete it. [code]1

The key present in the URL fragment is then decrypted with the PIN, and the resulting key used to decrypt the payload in the browser.


  1. The links to the code repository have an hard reference to the very first public release of the code, to make the actual row numbers matching the correct code; the relevant code may move around –line wise– in following commits, but you should always be able to find it. ↩︎ ↩︎ ↩︎ ↩︎