Markazlashtirilmagan veb-saytlarni yaratish uchun platforma ZeroNet 0.7 ning chiqarilishi

Bir yillik rivojlanishdan so'ng markazlashtirilmagan veb-platforma chiqarildi ZeroNet 0.7, BitTorrentning tarqatilgan yetkazib berish texnologiyalari bilan birgalikda BitTorrentning manzillash va tekshirish mexanizmlarini tsenzura, qalbakilashtirish yoki blokirovka qilish mumkin bo'lmagan saytlarni yaratish uchun foydalanishni taklif qiladi. Saytlarning mazmuni tashrif buyuruvchilarning mashinalarida P2P tarmog'ida saqlanadi va egasining raqamli imzosi yordamida tekshiriladi. Adreslash uchun muqobil ildiz DNS serverlari tizimi qo'llaniladi Namekoin. Loyiha Python-da yozilgan va tarqaladi GPLv2 ostida litsenziyalangan.

Saytda joylashtirilgan ma'lumotlar Bitcoin hamyonlarini ulashga o'xshash tarzda tekshiriladi va sayt egasining hisobiga bog'lanadi, bu ham ma'lumotlarning dolzarbligini nazorat qilish va real vaqtda tarkibni yangilash imkonini beradi. IP manzillarini yashirish uchun anonim Tor tarmog'idan foydalanish mumkin, uni qo'llab-quvvatlash ZeroNet-ga o'rnatilgan. Foydalanuvchi o'zi kirgan barcha saytlarni tarqatishda ishtirok etadi. Mahalliy tizimga yuklab olingandan so'ng, fayllar keshlanadi va BitTorrentni eslatuvchi usullardan foydalangan holda joriy mashinadan tarqatish uchun taqdim etiladi.

ZeroNet saytlarini ko'rish uchun zeronet.py skriptini ishga tushiring, shundan so'ng siz "http://127.0.0.1:43110/zeronet_address" URL manzili orqali brauzerda saytlarni ochishingiz mumkin (masalan, "http://127.0.0.1" :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Veb-saytni ochishda dastur yaqin atrofdagi tengdoshlarni topadi va so'ralgan sahifaga (html, CSS, tasvirlar va boshqalar) tegishli fayllarni yuklab oladi.
Saytingizni yaratish uchun “zeronet.py siteCreate” buyrug‘ini bajarish kifoya, shundan so‘ng raqamli imzo yordamida mualliflikni tasdiqlash uchun sayt identifikatori va shaxsiy kalit yaratiladi.

Yaratilgan sayt uchun "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" shaklidagi bo'sh katalog yaratiladi. Ushbu katalog tarkibini o'zgartirgandan so'ng, yangi versiya "zoneet.py siteSign site_identifier" buyrug'i va shaxsiy kalitni kiritish orqali sertifikatlanishi kerak. Yangi tarkib tekshirilgandan so'ng, o'zgartirilgan versiya tengdoshlar uchun mavjud bo'lishi uchun uni "zoneet.py sitePublish site_id" buyrug'i bilan e'lon qilish kerak (o'zgarishlarni e'lon qilish uchun WebSocket API ishlatiladi). Zanjir bo'ylab tengdoshlar raqamli imzo yordamida yangi versiyaning yaxlitligini tekshiradilar, yangi kontentni yuklab oladilar va uni boshqa tengdoshlariga o'tkazadilar.

asosiy imkoniyatlar:

  • Bitta nosozlik nuqtasi yo'q - agar tarqatishda kamida bitta tengdosh bo'lsa, saytga kirish mumkin bo'lib qoladi;
  • Sayt uchun ma'lumotni saqlash joyining yo'qligi - hostingni o'chirish orqali saytni yopish mumkin emas, chunki ma'lumotlar tashrif buyuruvchilarning barcha mashinalarida joylashgan;
  • Oldin ko'rilgan barcha ma'lumotlar keshda saqlanadi va global tarmoqqa ulanmasdan joriy mashinadan oflayn rejimda foydalanish mumkin.
  • Haqiqiy vaqtda tarkibni yangilashni qo'llab-quvvatlash;
  • ".bit" zonasida domenni ro'yxatdan o'tkazish orqali manzillash imkoniyati;
  • Dastlabki sozlashsiz ishlang - shunchaki dasturiy ta'minot bilan arxivni oching va bitta skriptni ishga tushiring;
  • Bir marta bosish bilan veb-saytlarni klonlash imkoniyati;
  • Formatga asoslangan parolsiz autentifikatsiya BIP32: hisob Bitcoin kriptovalyutasi bilan bir xil kriptografik usul bilan himoyalangan;
  • P2P ma'lumotlarini sinxronlashtirish funksiyalariga ega o'rnatilgan SQL serveri;
  • Anonimlik uchun Tordan foydalanish imkoniyati va IPv4 manzillari o'rniga Tor maxfiy xizmatlaridan (.onion) foydalanishni to'liq qo'llab-quvvatlash;
  • TLS shifrlashni qo'llab-quvvatlash;
  • uPnP orqali avtomatik kirish imkoniyati;
  • Saytga turli xil raqamli imzolar bilan bir nechta mualliflarni biriktirish imkoniyati;
  • Ko'p foydalanuvchili konfiguratsiyalarni yaratish uchun plagin mavjudligi (openproxy);
  • Yangiliklar tasmalarini translyatsiya qilishni qo'llab-quvvatlash;
  • Har qanday brauzer va operatsion tizimlarda ishlaydi.

ZeroNet 0.7 da asosiy o'zgarishlar

  • Kod Python 3-3.4 bilan mosligini ta'minlab, Python3.8-ni qo'llab-quvvatlash uchun qayta ishlandi;
  • Himoyalangan ma'lumotlar bazasini sinxronlashtirish rejimi joriy etildi;
  • Mumkin bo'lgan hollarda, tashqi bog'liqliklar foydasiga uchinchi tomon kutubxonalarining asosiy taqsimoti to'xtatildi;
  • Raqamli imzolarni tekshirish uchun kod 5-10 marta tezlashtirilgan (libsecp256k1 kutubxonasi ishlatiladi;
  • Filtrlarni chetlab o'tish uchun allaqachon yaratilgan sertifikatlarning randomizatsiyasi qo'shildi;
  • P2P kodi ZeroNet protokolidan foydalanish uchun yangilandi;
  • Oflayn rejim qo'shildi;
  • Uchinchi tomon plaginlarini o'rnatish va boshqarish uchun UiPluginManager plagini qo'shildi;
  • OpenSSL 1.1 uchun to'liq yordam taqdim etiladi;
  • Tengdoshlarga ulanishda HTTPS orqali oddiy saytlarga qo'ng'iroqlarga o'xshash ulanishlarni amalga oshirish uchun soxta SNI va ALPN yozuvlari qo'llaniladi;

ZeroNet 0.7.0 versiyasi bilan bir kun shakllangan 0.7.1 yangilanishi, bu mijoz tomonida kod bajarilishiga imkon beruvchi xavfli zaiflikni yo'q qiladi. Shablon o'zgaruvchilarini ko'rsatish kodidagi xatolik tufayli ochiq tashqi sayt cheksiz ADMIN/NOSANDBOX huquqlariga ega bo'lgan WebSocket orqali mijoz tizimiga ulanishi mumkin, bu esa konfiguratsiya parametrlarini o'zgartirish va uning kodini foydalanuvchi kompyuterida bajarish imkonini beradi. open_browser parametri bilan manipulyatsiyalar.
Zaiflik 0.7 filialida, shuningdek, qayta ko'rib chiqilgandan boshlab eksperimental tuzilmalarda paydo bo'ladi. 4188 (20 kun oldin kiritilgan o'zgartirish).

Manba: opennet.ru

a Izoh qo'shish