انتشار Node-to-Node CoPy (NNCP)، مجموعه ای از ابزارهای کمکی برای انتقال امن فایل ها، ایمیل ها و دستورات برای اجرا در حالت ذخیره و ارسال. پشتیبانی از عملیات در سیستم عامل های سازگار با POSIX. برنامه های کاربردی در Go نوشته شده و تحت مجوز GPLv3 توزیع می شوند.
این ابزارها برای کمک به ساخت شبکههای کوچک دوست به دوست نظیر به نظیر (دهها گره) با مسیریابی استاتیک برای انتقال فایلها، درخواستهای فایل، ایمیل و درخواستهای اجرای دستور به صورت امن و بدون نیاز به دستور قبلی طراحی شدهاند. تمام بستههای منتقل شده به صورت سرتاسری رمزگذاری شده و با استفاده از کلیدهای عمومی شناخته شده گرهها، به صراحت احراز هویت میشوند. رمزگذاری پیازی (مانند Tor) برای تمام بستههای میانی اعمال میشود. هر گره میتواند به عنوان یک کلاینت یا یک میزبان عمل کند. سرور و از هر دو مدل رفتار فشاری و نظرسنجی استفاده کنید.
NNCP علاوه بر رمزگذاری و احراز هویت فوقالذکر، با ارائه پشتیبانی آماده برای شبکههای فلاپی و رایانههای ایزوله فیزیکی (air-gapped) از شبکههای محلی و عمومی ناامن، با راهحلهای UUCP و FTN (FidoNet Technology Network) متفاوت است. NNCP همچنین دارای ادغام آسان (مانند UUCP) با سرویسهای ایمیل فعلی است. سرورهامانند Postfix و Exim.
زمینه های احتمالی کاربرد NNCP شامل سازماندهی ارسال/دریافت نامه به دستگاه های بدون اتصال دائمی به اینترنت، انتقال فایل ها در شرایط اتصال شبکه ناپایدار، انتقال ایمن مقادیر بسیار زیاد داده در رسانه های فیزیکی، ایجاد شبکه های انتقال داده ایزوله محافظت شده از حملات MitM، دور زدن سانسور و نظارت شبکه. از آنجایی که کلید رمزگشایی فقط در دست گیرنده است، صرف نظر از اینکه بسته از طریق شبکه یا از طریق رسانه فیزیکی تحویل داده می شود، شخص ثالث نمی تواند محتویات را بخواند، حتی اگر بسته رهگیری شود. به نوبه خود، احراز هویت امضای دیجیتال اجازه ایجاد یک پیام ساختگی را تحت پوشش فرستنده دیگر نمی دهد.
از جمله نوآوری های NNCP 8.8.0 نسبت به اخبار قبلی (نسخه 5.0.0):
- به جای هش BLAKE2b، به اصطلاح MTH: Merkle Tree-based Hashing که از هش BLAKE3 استفاده می کند، برای بررسی یکپارچگی فایل ها استفاده می شود. این به شما امکان می دهد یکپارچگی قسمت رمزگذاری شده بسته را درست در حین بارگیری محاسبه کنید، بدون اینکه نیازی به خواندن آن در آینده داشته باشید. این همچنین امکان موازی سازی نامحدود بررسی های یکپارچگی را فراهم می کند.
- قالب بسته رمزگذاری شده جدید زمانی که اندازه داده ها از قبل ناشناخته باشد کاملاً جریان ساز است. سیگنال تکمیل انتقال، با اندازه احراز هویت شده، مستقیماً به داخل جریان رمزگذاری شده می رود. پیش از این، برای اطلاع از اندازه داده های منتقل شده، لازم بود آن را در یک فایل موقت ذخیره کنید. بنابراین دستور "nncp-exec" گزینه "-use-tmp" را از دست داده است زیرا کاملا غیر ضروری است.
- توابع BLAKE2b KDF و XOF با BLAKE3 جایگزین شده اند تا تعداد رمزنگاری های اولیه استفاده شده کاهش یابد و کد ساده شود.
- اکنون می توان گره های دیگر را در شبکه محلی از طریق چند پخش به آدرس "ff02::4e4e:4350" شناسایی کرد.
- گروههای چندپخشی ظاهر شدهاند (مشابه کنفرانسهای پژواک FidoNet یا گروههای خبری Usenet)، که به یک بسته اجازه میدهد تا دادهها را به چندین عضو گروه ارسال کند، جایی که هر یک بسته را به بقیه امضاکنندگان ارسال میکند. خواندن یک بسته چندپخشی به دانش جفت کلید نیاز دارد (شما باید به صراحت عضو گروه باشید)، اما رله کردن را می توان توسط هر گره ای انجام داد.
- اکنون پشتیبانی برای تأیید صریح دریافت بسته وجود دارد. ممکن است فرستنده بسته را پس از ارسال حذف نکند و منتظر بماند تا بسته ACK ویژه ای از گیرنده دریافت کند.
- پشتیبانی داخلی از شبکه همپوشانی Yggdrasil: دیمونهای آنلاین میتوانند بهعنوان شرکتکنندگان مستقل شبکه کامل عمل کنند، بدون استفاده از پیادهسازیهای شخص ثالث و بدون کار کردن کامل با پشته IP در یک رابط شبکه مجازی.
- به جای رشتههای ساختیافته (RFC 3339)، گزارش از ورودیهای فایل مجدد استفاده میکند که میتواند با ابزارهای GNU Recutils استفاده شود.
- به صورت اختیاری، سرصفحه های بسته رمزگذاری شده را می توان در فایل های جداگانه در زیر شاخه "hdr/" ذخیره کرد، که به طور قابل توجهی سرعت عملیات بازیابی لیست بسته ها را در سیستم های فایل با اندازه بلوک های بزرگ، مانند ZFS، افزایش می دهد. قبلاً، بازیابی هدر بسته به طور پیشفرض نیازمند خواندن یک بلوک 128 کیلوبایتی از دیسک بود.
- بررسی فایلهای جدید میتواند به صورت اختیاری از kqueue و inotify زیر سیستمهای هسته استفاده کند و تماسهای سیستمی کمتری ایجاد کند.
- برنامه های کاربردی فایل های باز کمتری را نگه می دارند و کمتر آنها را می بندند و دوباره باز می کنند. با تعداد زیاد بستهها، قبلاً میتوانستید با محدودیت حداکثر تعداد فایلهای باز مواجه شوید.
- بسیاری از تیم ها شروع به نشان دادن پیشرفت و سرعت عملیاتی مانند دانلود/آپلود، کپی و پردازش (پرتاب) بسته ها کردند.
- دستور "nncp-file" نه تنها میتواند فایلهای منفرد، بلکه دایرکتوریها را نیز ارسال کند و یک آرشیو pax با محتویات آنها در پرواز ایجاد کند.
- ابزارهای آنلاین به صورت اختیاری میتوانند بلافاصله پس از دانلود موفقیتآمیز بسته، بدون اجرای دیمون «nncp-toss»، پرتاب بسته را فراخوانی کنند.
- تماس آنلاین با یک شرکتکننده دیگر میتواند به صورت اختیاری نه تنها زمانی که یک تایمر راهاندازی میشود، بلکه همچنین زمانی که یک بسته خروجی در دایرکتوری اسپول ظاهر میشود، رخ دهد.
- عملکرد تحت NetBSD و OpenBSD OS، علاوه بر FreeBSD و GNU/Linux که قبلاً پشتیبانی شده بود را تضمین می کند.
- "nncp-daemon" به طور کامل با رابط UCSPI-TCP سازگار است. همراه با قابلیت ورود به یک توصیفگر فایل مشخص (به عنوان مثال با تنظیم "NNCPLOG=FD:4")، اجرای آن تحت ابزارهای شبیه ابزار daemontools کاملاً دوستانه است.
- مونتاژ پروژه به طور کامل به سیستم redo منتقل شده است.
منبع: opennet.ru
