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

След година на разработка беше пусната версията на децентрализирана уеб платформа ZeroNet 0.7, който предлага използването на механизмите за адресиране и проверка на Bitcoin в комбинация с технологиите за разпределена доставка на BitTorrent за създаване на сайтове, които не могат да бъдат цензурирани, фалшифицирани или блокирани. Съдържанието на сайтовете се съхранява в P2P мрежа на машините на посетителите и се проверява с цифровия подпис на собственика. За адресиране се използва система от алтернативни главни DNS сървъри Namecoin. Проектът е написан на Python и разпространява се от лицензиран под GPLv2.

Данните, публикувани на сайта, се проверяват и се свързват с акаунта на собственика на сайта, подобно на свързването на биткойн портфейли, което също дава възможност да се контролира уместността на информацията и да се актуализира съдържанието в реално време. За скриване на IP адреси може да се използва анонимната мрежа Tor, поддръжката за която е вградена в ZeroNet. Потребителят участва в разпространението на всички посетени от него сайтове. Веднъж изтеглени в локалната система, файловете се кешират и се предоставят за споделяне от текущата машина, като се използват методи, напомнящи на BitTorrent.

За да видите ZeroNet сайтове, просто стартирайте скрипта zeronet.py, след което можете да отваряте сайтове в браузъра чрез URL „http://127.0.0.1:43110/zeronet_address“ (например „http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”). При отваряне на уебсайт програмата намира близки партньори и изтегля файлове, свързани с исканата страница (html, css, изображения и др.).
За да създадете своя сайт, просто изпълнете командата „zeronet.py siteCreate“, след което ще бъдат генерирани идентификатор на сайта и частен ключ за потвърждаване на авторството с помощта на цифров подпис.

За създадения сайт ще бъде създадена празна директория с формата “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D”. След промяна на съдържанието на тази директория, новата версия трябва да бъде сертифицирана с помощта на командата “zeronet.py siteSign site_identifier” и въвеждане на частния ключ. След като новото съдържание бъде потвърдено, то трябва да бъде обявено с командата „zeronet.py sitePublish site_id“, така че променената версия да стане достъпна за партньори (приложният програмен интерфейс (API) на WebSocket се използва за обявяване на промените). По веригата партньорите ще проверят целостта на новата версия с помощта на цифров подпис, ще изтеглят новото съдържание и ще го прехвърлят на други партньори.

Основната възможности:

  • Няма единична точка на отказ - сайтът остава достъпен, ако има поне един партньор в разпространението;
  • Липса на референтно хранилище за сайта - сайтът не може да бъде затворен чрез изключване на хостинга, тъй като данните се намират на всички машини на посетителите;
  • Цялата прегледана преди това информация е в кеша и е достъпна от текущата машина в офлайн режим, без достъп до глобалната мрежа.
  • Поддържа актуализация на съдържанието в реално време;
  • Възможност за адресиране чрез регистрация на домейн в зоната “.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;
  • Когато се свързвате с партньори, фиктивните SNI и ALPN записи се използват, за да направят връзките по-подобни на повиквания към обикновени сайтове през HTTPS;

Същият ден като версията на ZeroNet 0.7.0 образувани актуализация 0.7.1, която елиминира опасна уязвимост, която потенциално позволява изпълнение на код от страна на клиента. Поради грешка в кода за рендиране на шаблонни променливи, отворен външен сайт може да установи връзка с клиентската система чрез WebSocket с неограничени права на ADMIN/NOSANDBOX, което прави възможно промяната на конфигурационните параметри и постигане на изпълнение на неговия код на потребителя компютър чрез манипулации с параметъра open_browser.
Уязвимостта се появява в клон 0.7, както и в експериментални компилации, започващи от ревизията 4188 (промяната е направена преди 20 дни).

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

Добавяне на нов коментар