Liberigo de ZeroNet 0.7, platformo por krei malcentralizitajn retejojn

Post jaro da evoluo, la liberigo de malcentralizita retejo-platformo estis publikigita ZeroNet 0.7, kiu proponas uzi la traktadon kaj konfirmmekanismojn de Bitcoin en kombinaĵo kun la distribuitaj liveraj teknologioj de BitTorrent por krei retejojn kiuj ne povas esti cenzuritaj, falsitaj aŭ blokitaj. La enhavo de retejoj estas konservita en reto P2P sur maŝinoj de vizitantoj kaj estas kontrolita per la cifereca subskribo de la posedanto. Sistemo de alternativaj radikaj DNS-serviloj estas uzata por adresado Namecoin. La projekto estas skribita en Python kaj distribuita de licencita laŭ GPLv2.

La datumoj afiŝitaj en la retejo estas kontrolitaj kaj ligitaj al la konto de la posedanto de la retejo, simile al la ligo de Bitcoin-monujoj, kiu ankaŭ ebligas kontroli la gravecon de informoj kaj ĝisdatigi enhavon en reala tempo. Por kaŝi IP-adresojn, oni povas uzi la anoniman Tor-reton, kies subteno estas konstruita en ZeroNet. La uzanto partoprenas en la distribuado de ĉiuj retejoj, kiujn li aliris. Post kiam elŝutite al la loka sistemo, la dosieroj estas konservitaj kaj disponeblaj por distribuado de la nuna maŝino uzante metodojn rememorigajn pri BitTorrent.

Por vidi ZeroNet-ejojn, simple rulu la zeronet.py-skripton, post kio vi povas malfermi retejojn en la retumilo per la URL "http://127.0.0.1:43110/zeronet_address" (ekzemple, "http://127.0.0.1). :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Malfermante retejon, la programo trovas proksimajn samulojn kaj elŝutas dosierojn asociitajn kun la petita paĝo (html, css, bildoj, ktp.).
Por krei vian retejon, simple rulu la komandon "zeronet.py siteCreate", post kiu reteja identigilo kaj privata ŝlosilo estos generitaj por konfirmi aŭtorecon per cifereca subskribo.

Por la kreita retejo, malplena dosierujo de la formo "data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D" estos kreita. Post ŝanĝi la enhavon de ĉi tiu dosierujo, la nova versio devas esti atestita per la komando "zeronet.py siteSign site_identifier" kaj enirante la privatan ŝlosilon. Post kiam la nova enhavo estas kontrolita, ĝi devas esti anoncita per la komando "zeronet.py sitePublish site_id" por ke la ŝanĝita versio fariĝu havebla al samuloj (la WebSocket API estas uzata por anonci ŝanĝojn). Laŭ la ĉeno, kunuloj kontrolos la integrecon de la nova versio uzante ciferecan subskribon, elŝutos la novan enhavon kaj transdonos ĝin al aliaj samuloj.

Ĉefa ŝancoj:

  • Ne ekzistas ununura punkto de malsukceso - la retejo restas alirebla se estas almenaŭ unu samulo en la distribuo;
  • Manko de referenca stokado por la retejo - la retejo ne povas esti fermita malkonektante gastigadon, ĉar la datumoj troviĝas sur ĉiuj maŝinoj de vizitantoj;
  • Ĉiuj antaŭe viditaj informoj estas en la kaŝmemoro kaj estas alirebla de la nuna maŝino en eksterreta reĝimo, sen aliro al la tutmonda reto.
  • Subtenu ĝisdatigon de realtempa enhavo;
  • Eblo alparoli per domajna registrado en la zono ".bit";
  • Laboru sen antaŭa agordo - simple malpaku la arkivon per la programaro kaj rulu unu skripton;
  • Kapablo kloni retejojn per unu klako;
  • Format-bazita senpasvorta aŭtentigo BIP32: la konto estas protektita per la sama kripta metodo kiel la Bitcoin-kripta monero;
  • Enkonstruita SQL-servilo kun funkcioj de sinkronigado de datumoj P2P;
  • La kapablo uzi Tor por anonimeco kaj plena subteno por uzi Tor kaŝitajn servojn (.onion) anstataŭ IPv4-adresoj;
  • TLS-ĉifrado subteno;
  • Aŭtomata alirebleco per uPnP;
  • Eblo alligi plurajn aŭtorojn kun malsamaj ciferecaj subskriboj al la retejo;
  • Havebleco de kromaĵo por krei pluruzantajn agordojn (openproxy);
  • Subteno por dissendado de novaĵoj;
  • Funkcias en iuj retumiloj kaj operaciumoj.

Gravaj ŝanĝoj en ZeroNet 0.7

  • La kodo estis reverkita por subteni Python3, certigante kongruon kun Python 3.4-3.8;
  • Protektita datumbaza sinkroniga reĝimo estis efektivigita;
  • Kie eble, la ĉefa distribuado de triaj bibliotekoj estis ĉesigita favore al eksteraj dependecoj;
  • La kodo por kontroli ciferecajn subskribojn estis akcelita 5-10 fojojn (la biblioteko libsecp256k1 estas uzata;
  • Aldonita hazardigo de jam generitaj atestiloj por preteriri filtrilojn;
  • La P2P-kodo estis ĝisdatigita por uzi la ZeroNet-protokolon;
  • Aldonita Senkonekta reĝimo;
  • Aldonita aldonaĵo UiPluginManager por instali kaj administri triajn kromaĵojn;
  • Plena subteno por OpenSSL 1.1 estas provizita;
  • Kiam oni koneksas kun kunuloj, imitaj SNI kaj ALPN-rekordoj estas uzataj por fari konektojn pli similajn al vokoj al regulaj retejoj per HTTPS;

La sama tago kiel ZeroNet 0.7.0 eldono formis ĝisdatigo 0.7.1, kiu forigas danĝeran vundeblecon, kiu eble permesas ekzekuton de kodo ĉe la klienta flanko. Pro eraro en la kodo por bildi ŝablonvariablojn, malfermita ekstera retejo povas establi konekton al la klienta sistemo per WebSocket kun senlimaj ADMIN/NOSANDBOX-rajtoj, kio ebligas ŝanĝi agordajn parametrojn kaj ekzekuti sian kodon en la komputilo de la uzanto per manipuladoj kun la parametro open_browser.
La vundebleco aperas en branĉo 0.7, same kiel en eksperimentaj konstruoj ekde la revizio 4188 (ŝanĝo farita antaŭ 20 tagoj).

fonto: opennet.ru

Aldoni komenton