انتشار ZeroNet 0.7، بستری برای ایجاد وب سایت های غیرمتمرکز

پس از یک سال توسعه، انتشار یک پلتفرم وب غیرمتمرکز منتشر شد ZeroNet 0.7، که پیشنهاد می کند از مکانیسم های آدرس دهی و تأیید بیت کوین در ترکیب با فناوری های تحویل توزیع شده BitTorrent برای ایجاد سایت هایی استفاده شود که قابل سانسور، جعل یا مسدود شدن نباشند. محتوای سایت‌ها در یک شبکه P2P در ماشین‌های بازدیدکنندگان ذخیره می‌شود و با استفاده از امضای دیجیتال مالک تأیید می‌شود. یک سیستم از سرورهای DNS ریشه جایگزین برای آدرس دهی استفاده می شود Namecoin. این پروژه به زبان پایتون و نوشته شده است توزیع شده توسط تحت مجوز GPLv2.

داده های ارسال شده در سایت تایید شده و به حساب صاحب سایت لینک می شود، مشابه لینک کیف پول بیت کوین، که همچنین امکان کنترل ارتباط اطلاعات و به روز رسانی محتوا را در زمان واقعی فراهم می کند. برای مخفی کردن آدرس های IP، می توان از شبکه Tor ناشناس استفاده کرد که پشتیبانی از آن در ZeroNet تعبیه شده است. کاربر در توزیع تمام سایت هایی که به آنها دسترسی داشته است شرکت می کند. پس از دانلود در سیستم محلی، فایل‌ها در حافظه پنهان ذخیره می‌شوند و با استفاده از روش‌هایی که یادآور بیت تورنت هستند، برای اشتراک‌گذاری از دستگاه فعلی در دسترس قرار می‌گیرند.

برای مشاهده سایت های 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" اعلام شود تا نسخه تغییر یافته در دسترس همتایان قرار گیرد (WebSocket API برای اعلام تغییرات استفاده می شود). در طول زنجیره، همتایان یکپارچگی نسخه جدید را با استفاده از امضای دیجیتال بررسی می‌کنند، محتوای جدید را دانلود کرده و به سایر همتایان منتقل می‌کنند.

اصلی فرصت:

  • هیچ نقطه شکست واحدی وجود ندارد - اگر حداقل یک همتا در توزیع وجود داشته باشد، سایت در دسترس باقی می ماند.
  • عدم ذخیره مرجع برای سایت - سایت را نمی توان با قطع اتصال میزبانی بسته کرد، زیرا داده ها در تمام ماشین های بازدیدکنندگان قرار دارند.
  • تمام اطلاعات مشاهده شده قبلی در حافظه پنهان است و از دستگاه فعلی در حالت آفلاین و بدون دسترسی به شبکه جهانی قابل دسترسی است.
  • پشتیبانی از به روز رسانی محتوای بلادرنگ؛
  • امکان آدرس دهی از طریق ثبت دامنه در منطقه “bit”.
  • بدون تنظیمات اولیه کار کنید - فقط بایگانی را با نرم افزار باز کنید و یک اسکریپت را اجرا کنید.
  • امکان شبیه سازی وب سایت ها با یک کلیک.
  • احراز هویت بدون رمز عبور مبتنی بر قالب BIP32: حساب با همان روش رمزنگاری ارز دیجیتال بیت کوین محافظت می شود.
  • سرور داخلی 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

اضافه کردن نظر