След година разработки, выпускът на децентрализирана уеб-платформа , която предлага да използва механизми за адресиране и верификация на Bitcoin съчетани с технологии за разпределено разпространение BitTorrent за създаване на сайтове, които не могат да бъдат цензурирани, подменяни или блокирани. Съдържанието на сайтовете се съхранява в P2P мрежа на машините на посетителите и се проверява чрез цифров подпис на собственика. За адресиране се използва системата за алтернативни коренови DNS сървъри . Проектът е написан на Python и под лицензия GPLv2.
Данните, публикувани на сайта, са верифицирани и свързани с профила на собственика на сайта, подобно на свързването на Bitcoin портфейли, което също позволява да се контролира актуалността на информацията и да се обновява съдържанието в реално време. За скриване на IP адресите може да се използва анонимна мрежа Tor, чиято поддръжка е вградена в ZeroNet. Потребителят участва в разпространението на всички сайтове, към които е имал достъп. След изтегляне на локалната система, файловете се запазват в кеша и стават достъпни за разпространение от текущата машина, използвайки методи, наподобяващи BitTorrent.
За да преглеждате сайтове ZeroNet, е достатъчно да стартирате скрипта zeronet.py, след което в браузъра можете да отворите сайтовете чрез URL „http://127.0.0.1:43110/адрес_zeronet“ (например „http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D“). При отваряне на сайту програмата намира най-близките peer-ове и изтегля свързаните с поисканата страница файлове (html, css, изображения и т.н.).
За да създадете свой сайт, е достатъчно да стартирате командата „zeronet.py siteCreate“, след което ще бъде генериран идентификатор на сайта и частен ключ за потвърждение на авторството чрез цифров подпис.
За създадения сайт ще бъде създадена празна директория от вида „data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D“. След промяна на съдържанието на тази директория, е необходимо удостоверяване на новата версия чрез командата „zeronet.py siteSign идентификатор_сайта“ и въвеждането на частния ключ. След като новото съдържание бъде удостоверено, е необходимо да се анонсира с командата „zeronet.py sitePublish идентификатор_сайта“, за да стане променената версия достъпна за peer-овете (за анонс на промените се използва API WebSocket). По веригата peer-ите проверяват целостта на новата версия чрез цифровия подпис, изтеглят новото съдържание и го прехвърлят на други peer-ове.
Основни :
- Липсата на единна точка на отказ — сайтът остава достъпен, ако в разпространението има поне един peer;
- Липсата на еталонно хранилище на сайта — сайтът не може да бъде затворен, като се изключи хостинга, тъй като данните са разположени на всички машини на посетителите;
- Цялата предишно прегледана информация е налична в кеша и е достъпна от текущата машина в офлайн режим, без да излиза в глобалната мрежа.
- Поддръжка на актуализиране на съдържанието в реално време;
- Възможност за адресиране чрез регистрация на домейн в зоната „.bit“;
- Работа без предварителна настройка — достатъчно е да разархивирате архива с софтуера и да стартирате един скрипт;
- Възможност за клониране на сайтове с едно кликване;
- Безпаролна авторизация на базата на формата : акаунтът е защитен със същия криптографски метод, който използва криптовалутата Bitcoin;
- Вграден SQL сървър с функции за P2P синхронизация на данни;
- Възможност за използване на Tor за анонимност и пълна поддръжка на използването на скрити услуги в Tor (.onion) вместо IPv4 адреси;
- Поддръжка на TLS криптиране;
- Автоматична наличност чрез uPnP;
- Възможност за добавяне на няколко автори към сайта, всеки със собствени цифрови подписи;
- Наличие на плъгин за създаване на многопотребителски конфигурации (openproxy);
- Поддръжка на предаване на новинарски емисии;
- Работа в каквито и да е браузъри и операционни системи.
Основни промени в ZeroNet 0.7
- Кодът е преработен за поддръжка на Python3, осигурена е съвместимост с Python 3.4-3.8;
- Реализиран е защитен режим за синхронизация на БД;
- По възможност е прекратено предоставянето на основния комплект от външни библиотеки в полза на външни зависимости;
- Ускорен е кодът за верификация на цифрови подписи с 5-10 пъти (използвана е библиотека libsecp256k1;
- Добавена е рандомизация на вече генерираните сертификати за заобикалянето на филтрите;
- Актуализиран P2P кодът, който е преобразуван да използва протокола на ZeroNet;
- Добавен е режим на работа в офлайн;
- Добавен е плъгин UiPluginManager за инсталиране и управление на странични плъгини;
- Осигурена е пълна поддръжка на OpenSSL 1.1;
- При свързване с peer-и се използват фиктивни записи SNI и ALPN, за да направят връзките по-подобни на заявките към обикновени сайтове по HTTPS;
В същия ден, в който е издаден ZeroNet 0.7.0 Актуализация 0.7.1, която поправя опасна уязвимост, която потенциално позволява изпълнение на код от страна на клиента. Поради грешка в кода за визуализация на шаблонни променливи, открит уебсайт може да установи връзка с клиентската система чрез WebSocket с неограничени права ADMIN/NOSANDBOX, което дава възможност за промяна на конфигурационните параметри и изпълнение на собствен код на компютъра на потребителя чрез манипулация на параметъра open_browser.
Уязвимостта се проявява в версия 0.7, както и в експерименталните сборки, започващи от ревизия (променено преди 20 дни).
Източник: opennet.ru
