Анонсирован проект ZeroBin, представляющий собой открытую реализацию системы для быстрого обмена кодом или сообщениями, похожую по своему назначению на сервис Pastebin, но кардинально отличающуюся подходом к хранению информации. При использовании ZeroBin, благодаря использованию шифрования на стороне клиента, передаваемые пользователем данные не могут быть прочитаны администрацией сервера и остаются доступны только для отправителя и получателя.
Перед отправкой на сервер данные сжимаются и шифруются JavaScript-кодом в браузере отправителя и поступают на сервер уже в зашифрованном виде, при этом ключ шифрования не передаётся и остаётся известным только пользователю. Ключ для доступа к данным оформляется как часть URL (например, http://myserver.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 паролю, реализовать режим удаления сообщения с сервера после первого прочтения.
Из ограничений ZeroBin отмечается неработоспособность при отключении выполнения JavaScript в браузере, а также возможность утечки URL с машин пользователей или их перехвата в результате атак Man-in-the-middle - ключ шифрования не передаётся в HTTP-запросах (браузер не передаёт часть URL после "#"), но атакующий может подменить выдаваемый сервером JavaScript-код и обеспечить отправку ключа шифрования.
Примечательно, что в сети уже начали появляться online-службы на базе ZeroBin. Например, вчера сообществом People's Liberation Front, ассоциируемым с хакерской группой Анонимов, введён в строй сайт www.AnonPaste.tk, работающий на базе ZeroBin и позиционируемый для проведения обсуждений и обмена закрытой информацией внутри группы вместо ранее используемого сервиса Pastebin.
|