انتشار Node-to-Node CoPy (NNCP)، مجموعه ای از ابزارهای کمکی برای انتقال امن فایل ها، ایمیل ها و دستورات برای اجرا در حالت ذخیره و ارسال. پشتیبانی از عملیات در سیستم عامل های سازگار با POSIX. برنامه های کاربردی در Go نوشته شده و تحت مجوز GPLv3 توزیع می شوند.
این ابزارها بر کمک به ایجاد شبکههای کوچک دوست به دوست (دهها گره) با مسیریابی ثابت برای انتقال امن فایلها، درخواستهای فایل، ایمیل و درخواستهای فرمان متمرکز شدهاند. همه بستههای ارسالی رمزگذاری شدهاند (پایان به انتها) و صریحاً با استفاده از کلیدهای عمومی شناخته شده دوستان تأیید میشوند. رمزگذاری پیاز (مانند Tor) برای همه بسته های میانی استفاده می شود. هر گره می تواند هم به عنوان مشتری و هم به عنوان سرور عمل کند و از هر دو مدل رفتار فشار و نظرسنجی استفاده کند.
تفاوت بین راه حل های NNCP و UUCP و FTN (شبکه فناوری FidoNet)، علاوه بر رمزگذاری و احراز هویت فوق الذکر، پشتیبانی خارج از جعبه از شبکه های فلاپینت و رایانه هایی است که به صورت فیزیکی ایزوله شده (با شکاف هوا) از محلی ناامن و ناامن هستند. شبکه های عمومی 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