Издаването на ZeroNet 0.7, платформа за създаване на децентрализирани сайтове

След година на разработка се появи версия на децентрализирана уеб платформа ZeroNet 0.7, която предлага използване на механизми за адресиране и верификация на Bitcoin в комбинация с технологии за разпределено разпространение BitTorrent за създаване на сайтове, които не могат да бъдат цензурирани, фалшифицирани или блокирани. Съдържанието на сайтовете се съхранява в P2P мрежа на устройства на посетителите и се проверява чрез цифров подпис на собственика. Използва се система за алтернативни коренови DNS сървъри за адресиране Namecoin. Проектът е написан на 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»;
  • Работа без предварителна настройка — достатъчно е да разархивирате архива с софтуера и да стартирате един скрипт;
  • Възможност за клониране на сайтове с едно щракване;
  • Безпаролна авторизация на базата на формата BIP32: акаунтът е защитен със същия криптографски метод, който се използва за криптовалутата 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, а също така и в експериментални сборки, започвайки от ревизия 4188 (промяна направена преди 20 дни).

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster