How does 0bin work?

A random key is generated and used to encrypt the paste, thanks to the sjcl JavaScript library.

The encrypted content is then sent to the server, which returns the address of the newly created paste.

The JavaScript code redirects to this address, but it adds the encryption key in the URL hash (#).

When somebody wants to read the paste, they will usually click on a link with this URL. If the hash containing the key is a part of it, 0bin's JavaScript will use it to decrypt the content sent by the server.

The browser never sends the hash to the server, so the latter does not receives the key at any time.

But JavaScript encryption is not secure!

No, it isn't.

The goal of 0bin is not to protect the user and their data (including, obviously, their secrets).

Instead, it aims to protect the host from being sued for the content users pasted on the pastebin. The idea is that you cannot require somebody to moderate something they cannot read - as such, the host is granted plausible deniability.

Remember that as an user, you should use 0bin in the same way as unencrypted and insecure pastebins - that is, with caution. The only difference with those is that if you decide to host a 0bin server, the encryption feature hopefully be used as a defense. This is not proven, though! :-)

What if the server changes the JavaScript code? And what happens in the case of a MITM attack?

Read above.

0bin is not built, and does not aim, to protect user data - but rather the host. If any user data is compromised, 0bin still provides the host with plausible deniability (as they ignore the content of the pastes).

It would make no sense if the host was to compromise the encryption process to read the data; in that case, they wouldn't have installed 0bin in the first place, as 0bin is here to protect them.

However, if you want to ensure your data is not read in anyway, you should not use 0bin. Use OTR for chatting, GnuPG for encrypted & verified data sharing, with EnigMail for emails.

It would be unlikely for those softwares to fail you. Errors will nearly always come from your side - you ought to have a perfect operations security if you do not want your data to be leaked. Remember to use your common sense.

How did the idea of 0bin emerge?

0bin is based on sebsauvage's work. The project sprang as a reaction to the implementation of a moderation system on Pastebin, due to the significant amount of illegal content pasted on it, or that it linked to.

How can I get 0bin?

0bin is an open-source project, and the code is hosted on GitHub. You can either download a tarball or clone the repository.