ProHoster > Блог > интернет новини > Издаване на ZeroNet 0.7, платформа за създаване на децентрализирани уебсайтове
Издаване на 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 дни).