Представлен проект ZeroBin, представляющий собой открытою реализацию системы для быстрого обмена кодом или сообщениями, похожая по своему назначению на сервис Pastebin, но кардинально отличающаяся подходом к хранению информации. При использовании ZeroBin, благодаря использованию шифрования на стороне клиента, передаваемые пользователем данные не могут быть прочитаны администрацией сервера и остаются доступны только для отправителя и получателя.
Перед отправкой на сервер данные сжимаются и шифруются JavaScript-кодом в браузере отправителя и поступают на сервер уже в зашифрованном виде, при этом ключ шифрования не передаётся и остаётся известным только пользователю. Ключ для доступа к данным оформляется как часть URL (например, http://test.com?/paste/?идентификатор#ключ), которые предлагается передать доверительны лицам, которым адресовано сообщение. Не зная сгенерированный на этапе отправки данных URL невозможно получить доступ к информации, даже если имеется физический доступ ко всем данным на сервере. Знающий URL получатель сообщения при обращении к сервису загружает сохранённый зашифрованный блок данных, расшифровка которого производится JavaScript-кодом на стороне его браузера. Для шифрования используются 256-битный блочный шифр AES.
Оценить работу ZeroBin можно воспользовавшись демонстрационным сервисом sebsauvage.net/paste/. Код проекта опубликован под свободной лиценизей zlib/libpng. Собственный сервер ZeroBin может быть развёрнут на любом хостинге с PHP 5.2.6 или более новой версией, СУБД для работы ZeroBin не требуется. Установка максимально упрощена - достаточно просто скопировать скрипт на сервер. Клиентская часть написана на языке JavaScript с использованием библиотек jQuery, js-deflate, js-base64, SJCL (Stanford Javascript Crypto Library). Поддерживается работа во всех современных браузерах, включая Firefox 11, Chrome 18, Internet Explorer 6/7/8/9, Opera 12, Safari 5.1.5, Konqueror 4.7.4, а также в различных мобильных браузерах.
Из расширенных возможностей представленной реализации ZeroBin можно отметить поддержку задания времени жизни данных, встроенные средства для ограничения интенсивности отправки данных и лимитирования из размера (по умолчанию 2 Мб), поддержка обсуждения опубликованных данных. Сообщения в обсуждениях шифруются по аналогии с данными, таким образом на стороне сервера невозможно прочитать комментарии и даже просмотреть ники отправителей. Для наглядной оценки принадлежности сообщения используется VisualHash, генерируемый на основе IP (для одного IP показывается одно и тоже абстрактное изображение). В будущих версиях планируется обеспечить подсветку синтаксиса, добавить возможность защиты сообщений по не фигурирующему в URL паролю, реализовать режим удаления сообщения с сервера после первого прочтения.