برنامهٔ متنباز SingLinkVPN

Contents
متنباز بودن آغاز اعتماد بلندمدت است.
SingLinkVPN برنامهٔ متنباز و پژوهش فنی خود را رسماً آغاز کرده و مخزن رسمی متنباز و پژوهش فنی SingLinkVPN را در GitHub ایجاد کرده است.
این یک انتشار یکباره یا صفحهٔ مستنداتی که فقط برای مرور ساخته شده باشد نیست. این یک کار مهندسی بلندمدت است که پیوسته بهروز میشود و بهمرور گسترش مییابد.
آنچه امروز در دسترس است، فاز نخست این برنامهٔ گستردهتر است.
فاز نخست شامل مستندات فنی عمومی، مدلهای امنیت و حریم خصوصی، روشهای تکرارپذیر آزمون عملکرد، قالبهای دادهٔ ماشینخوان، چارچوبی برای مجموعهدادههای عمومی، پوشههای گزارش، ابزارهای پژوهشی، فرایند افشای امنیتی و استانداردهای انتشار شواهد است.
SingLinkVPN قصد دارد در فازهای بعدی، به شرط بازبینی امنیت، حریم خصوصی، مجوز و پایداری محصول، مطالب فنی بیشتر، گزارشهای پژوهشی و کد منبع محصول را بهصورت مرحلهای منتشر کند. حوزههای برنامهریزیشده شامل پروتکل VPN، کلاینتهای VPN و دیگر فناوریهای اصلی VPN است که پس از بازبینی برای انتشار مناسب باشند.
بنابراین انتشار فعلی پایان برنامه نیست. نخستین گام در یک فرایند متنباز ادامهدار است.
مخزن رسمی اکنون پوشههای docs، data، reports، tools، tests و خودکارسازی GitHub را برای نگهداری مستندات عمومی، دادهٔ پژوهشی، مطالب امنیتی، آزمونهای عملکرد و ابزارهای اعتبارسنجی باز در بر دارد. این مخزن صراحتاً بهعنوان پروژهای که فعالانه نگهداری میشود معرفی شده است.
مخزن رسمی: SingLinkLabs / singlink-vpn-open-source وضعیت فعلی: فاز نخست عمومی شده است. مطالب فنی بیشتر، گزارشهای پژوهشی و کد منبع محصول بهصورت مرحلهای منتشر خواهند شد.
چرا SingLinkVPN یک برنامهٔ متنباز را آغاز میکند?
VPN پیوند نزدیکی با انتقال شبکه، امنیت، حریم خصوصی و پردازش داده دارد.
بخش بزرگی از یک سرویس VPN درون سیستمهایی کار میکند که کاربران مستقیماً نمیتوانند ببینند. کاربران ممکن است رابط برنامه، فهرست سرورها، سرعت اتصال و توضیحات محصول را ببینند، اما بهسادگی نمیتوانند تأیید کنند که:
- نتایج سرعت منتشرشده چگونه اندازهگیری شدهاند؛
- از کدام نسخهٔ نرمافزار و کدام محیط شبکه استفاده شده است؛
- آیا آزمونهای ناموفق بهطور کامل ثبت شدهاند؛
- آیا یک ادعای امنیتی تعهد سیاستی است، آزمون داخلی است یا ارزیابی مستقل؛
- آیا یک گزارش شامل تاریخ، نسخه، روش و تاریخچهٔ اصلاحات است؛
- آیا پژوهشگر دیگری میتواند نتیجه را بازتولید کند؛
- آیا تغییرات فنی و امنیتی را میتوان در طول نسخهها پیگیری کرد.
ادعاهای برند بهتنهایی نمیتوانند بهطور کامل به این پرسشها پاسخ دهند.
هدف این برنامه تبدیل اطلاعات فنی، امنیتی، حریم خصوصی و عملکردی SingLinkVPN از ادعاهای محصول به مطالب عمومیای است که دیگران بتوانند بررسی، استناد، تأیید، بازتولید و بهطور مستمر موشکافی کنند.
این کار به یک نظام انتشار پیوسته نیاز دارد، نه صرفاً قرار دادن فایلها در اینترنت:
- مطالب فنی مهم باید نسخهٔ مشخصی داشته باشند؛
- ادعاهای قابل اندازهگیری باید تاریخ و محیط آزمون را مشخص کنند؛
- نتایج عملکرد باید با دادهٔ متناظر پشتیبانی شوند؛
- آزمونهای داخلی و ارزیابیهای شخص ثالث باید بهروشنی از هم متمایز شوند؛
- اصلاحات مهم باید سابقهٔ عمومی بر جا بگذارند؛
- کد منبع محصول باید پس از بازبینی امنیتی بهصورت مرحلهای منتشر شود؛
- جامعه باید بتواند ساختار و کامل بودن دادهها را با ابزارهای عمومی بررسی کند.
مخزن الزام میکند که هر ادعای قابل اندازهگیری شامل تاریخ آزمون، نسخهٔ نرمافزار، محیط، روش، اندازهٔ نمونه، دادهٔ خام یا تجمیعی و محدودیتهای شناختهشده باشد. صفات عالی تأییدناپذیر مانند «سریعترین»، «امنترین» یا ادعاهای حریم خصوصی مطلق بهعنوان شاهد پذیرفته نمیشوند.
در فاز نخست چه چیزهایی در دسترس است?
فاز نخست هشت جریان کاری عمومی را بنا میکند:
- معماری توسعهٔ VPN و مستندات فنی عمومی؛
- سوابق محصول و نسخههای SingLinkVPN؛
- یک مدل امنیت و حریم خصوصی؛
- روشهای تکرارپذیر آزمون عملکرد؛
- قالبهای دادهٔ آزمون و چارچوب مجموعهدادهٔ عمومی؛
- پوشههای گزارش امنیت، عملکرد و شفافیت؛
- ابزارهای باز اعتبارسنجی داده و پژوهش؛
- گزارش آسیبپذیری و افشای مسئولانه.
اینها با هم پایهٔ لازم برای انتشار بعدی کد منبع، دادهٔ عمومی و پژوهش مستقل را فراهم میکنند.
1. معماری عمومی توسعهٔ VPN و مستندات فنی
فاز نخست شامل معماری یک کلاینت VPN چندسکویی است.
این معماری به یک زبان برنامهنویسی یا سیستمعامل خاص وابسته نیست. در عوض، ماژولهای اصلی موردنیاز یک کلاینت VPN چندسکویی را توصیف میکند؛ از جمله رابط کاربری، چرخهٔ عمر اتصال، مدیریت تونل، مسیریابی، DNS، پیکربندی، آزمون امنیتی و عیبیابی محلی.
1. لایهٔ رابط کاربری
لایهٔ رابط کاربری وضعیت حساب، انتخاب سرور، وضعیت اتصال، خطاها، نتایج عیبیابی و قابلیتهای دسترسپذیری را نمایش میدهد.
وضعیت اتصالی که در رابط نمایش داده میشود باید از ماشین حالت واقعی اتصال گرفته شود، نه صرفاً از اینکه کاربر دکمهٔ اتصال را زده است یا نه.
2. لایهٔ هماهنگسازی نشست
این لایه مسئول این موارد است:
- اتصال؛
- قطع اتصال؛
- تلاش مجدد خودکار؛
- تغییرات شبکه؛
- خواب و بیداری دستگاه؛
- راهاندازی مجدد برنامه؛
- بازیابی پس از قطع غیرعادی.
این لایه باید از بازنویسی کار جدیدتر توسط نتایج اتصال قدیمی جلوگیری کند و مطمئن شود اقدامات تکراری تعارض ایجاد نمیکنند.
3. لایهٔ آداپتور تونل
این لایه با APIهای بومی VPN در سیستمعاملهای مختلف یکپارچه میشود، از جمله:
- ورودی و خروجی بستهها؛
- چرخهٔ عمر تونل؛
- پیکربندی MTU؛
- مجوزهای سیستمعامل؛
- محدودیتهای اجرا در پسزمینه؛
- callbackهای قطع تونل.
4. لایهٔ مسیریابی و DNS
این لایه این موارد را مدیریت میکند:
- مسیرهای پیشفرض؛
- تونلزنی تفکیکی (split tunnelling)؛
- مسیرهای مستثنا؛
- انتخاب DNS؛
- سیاست IPv4 و IPv6؛
- دسترسی به شبکهٔ محلی؛
- محافظت در برابر نشت DNS و مسیر.
آزمون نشت نمیتواند به اتصال اولیه محدود شود. باید اتصال مجدد، تغییرات شبکه، خواب و بیداری و خاتمهٔ غیرعادی برنامه را هم پوشش دهد.
5. لایهٔ انتقال
لایهٔ انتقال مسئول نشستهای احرازشده، رفتار انتقال، مدیریت ازدحام، سیاست keepalive و مهاجرت شبکه است.
6. لایهٔ پیکربندی
لایهٔ پیکربندی، پیکربندی راه دور نسخهدار، امضاشده و حداقلی را پردازش میکند و پیکربندی نامعتبر، منقضی یا تنزلیافته را رد میکند.
7. لایهٔ مشاهدهپذیری
این لایه، با رعایت محافظتهای حریم خصوصی، این موارد را فراهم میکند:
- وضعیت سلامت محلی؛
- عیبیابی اتصال؛
- طبقهبندی خطاها؛
- خروجی آزمون تکرارپذیر؛
- دادههای وضعیت فنی که فعالیت شبکهای کاربر را در بر ندارند.
انتشار فعلی معماری سطح بالا و اصول توسعهٔ امن را پوشش میدهد. ماژولهای مشخصتر و کد منبع فقط پس از تکمیل بازبینیهای مربوط اضافه خواهند شد.
2. سابقهٔ عمومی و نسخهدار محصول
SingLinkVPN همچنین یک سابقهٔ عمومی محصول ایجاد کرده که انواع مختلف اطلاعات را از هم جدا میکند.
واقعیتهای محصول
اینها شامل موارد زیرند:
- پلتفرمهای پشتیبانیشده؛
- نسخههای عمومی؛
- تاریخهای انتشار؛
- منابع رسمی دانلود؛
- checksumهای موجود؛
- تغییرات مهم در قابلیتها و سازگاری.
توصیفهای معماری
اینها طراحیهای سطح بالا را ارائه میدهند، بدون افشای سیستمهای حساس، اعتبارنامهها یا محیطهای عملیاتی.
نتایج اندازهگیری
یافتههای عملکردی و فنی باید شامل تاریخ، روش، محیط، نمونه و دادهٔ پشتیبان باشند.
بیانیههای سیاستی
اینها تعهدات مربوط به عملیات محصول، امنیت و حریم خصوصی را پوشش میدهند. یک بیانیهٔ سیاستی بهعنوان تأیید مستقل ارائه نمیشود.
این تفکیک کمک میکند سیاست، آزمون داخلی، جزئیات پیادهسازی و پژوهش مستقل با هم خلط نشوند. سوابق رسمی انتشار بهتدریج شامل پلتفرم، نسخه، تاریخ، منبع، checksumهای موجود، تغییرات مهم امنیتی و سازگاری، محدودیتهای شناختهشده و تگهای تغییرناپذیر Git یا لینکهای Release خواهند شد.
3. مدل عمومی امنیت و حریم خصوصی
امنیت را نمیتوان فقط با واژههایی مانند «امن» یا «رمزگذاریشده» توصیف کرد.
به همین دلیل فاز نخست یک مدل امنیت و حریم خصوصی منتشر میکند که خطرهایی را تعریف میکند که آزمونها، گزارشها و ارزیابیهای مستقل بعدی باید بررسی کنند.
دامنهٔ فعلی تهدیدها شامل این موارد است:
- مشاهدهٔ ترافیک در شبکهٔ محلی؛
- نشت DNS؛
- نشت IPv6؛
- نشت WebRTC؛
- قطع مسیر هنگام اتصال مجدد؛
- محافظت از ترافیک هنگام جابهجایی میان Wi-Fi و شبکهٔ موبایل؛
- تغییرات مخرب در پیکربندی راه دور؛
- تنزل پیکربندی (downgrade)؛
- افشای اعتبارنامههای ذخیرهشده روی دستگاه؛
- خطر وابستگیهای شخص ثالث؛
- خطر زنجیرهٔ تأمین در ساخت و انتشار؛
- سوءاستفاده از حساب؛
- نشستهای غیرمجاز؛
- جمعآوری بیش از حد دادههای عیبیابی یا پشتیبانی.
هر آزمون امنیتی عمومی باید این موارد را مشخص کند:
- نسخهٔ کلاینت متأثر؛
- سیستمعامل؛
- تاریخ آزمون؛
- شرایط شبکه؛
- روش؛
- رفتار مورد انتظار؛
- رفتار مشاهدهشده؛
- محدودیتهای شناختهشده.
این مدل همچنین سیاست، مستندات معماری، آزمون داخلی و ارزیابی شخص ثالث را از هم جدا میکند.
فقط گزارشی که توسط یک ارزیاب یا پژوهشگر مستقلِ نامبرده تهیه شده و با گزارشی قابلتأیید پشتیبانی میشود، میتواند «ارزیابی شخص ثالث» نامیده شود. این کار استانداردی یکسان و قابل ممیزی برای گزارشهای امنیتی آینده ایجاد میکند.
4. روشی تکرارپذیر برای آزمون عملکرد VPN
عملکرد VPN تحت تأثیر عوامل بیرونی بسیاری است:
- کشور یا منطقهٔ آزمایشگر؛
- ارائهدهندهٔ اینترنت ثابت یا موبایل؛
- کیفیت شبکهٔ محلی؛
- ترانزیت بینالمللی؛
- ساعت روز؛
- عملکرد دستگاه؛
- نسخهٔ کلاینت؛
- پروتکل؛
- بار سرور؛
- سرور آزمون؛
- منطقهٔ مقصد.
بنابراین یک سرعت اوج واحد نمایانگر تجربهٔ همهٔ کاربران نیست.
روش منتشرشده الزام میکند که هر رکورد شامل این موارد باشد:
- زمان آزمون به UTC؛
- شناسهٔ یکتای آزمون؛
- نسخهٔ کلاینت؛
- سیستمعامل؛
- نوع دستگاه؛
- برچسب پروتکل؛
- نسخهٔ روششناسی؛
- کشور یا منطقهٔ آزمون؛
- نوع شبکه؛
- تعداد نمونهها؛
- سطح شواهد.
شاخصهای اصلی عبارتاند از:
میانهٔ تأخیر اتصال
میانهٔ تأخیر بر حسب میلیثانیه در چندین نمونه، نه یک بهترین نتیجهٔ واحد.
لرزش (jitter) در صدک 95
سطح بالاتر نوسان تأخیر که در بیشتر نمونهها مشاهده شده است.
نرخ اتلاف بسته
نسبت بستههایی که در طول آزمون از دست رفتهاند.
میانهٔ سرعت دانلود
میانهٔ توان عملیاتی دانلود بر حسب Mbps در چندین نمونه.
میانهٔ سرعت آپلود
میانهٔ توان عملیاتی آپلود بر حسب Mbps در چندین نمونه.
نرخ موفقیت اتصال
درصد تلاشهای موفق در آزمونهای تکراری اتصال.
میانهٔ زمان اتصال مجدد
میانهٔ زمان لازم برای بازیابی پس از تغییر شبکه یا قطع اتصال.
گردش کار رسمی چنین است:
- ثبت شبکهٔ پایه بدون VPN؛
- ثابت نگه داشتن دستگاه، شبکه، مقصد و بازهٔ نمونهبرداری؛
- اجرای یک گرمکردن بدون شمارش؛
- تکرار آزمونهای اتصال و انتقال؛
- نگه داشتن نمونههای ناموفق بهجای حذف بیصدای آنها؛
- انتشار نتایج تجمیعی و دادهٔ ماشینخوان؛
- افشای محدودیتهای شناختهشده، قطعیها و نمونههای کنارگذاشتهشده.
آزمونهای همسنج باید در شرایط قابل مقایسه انجام شوند. هرگونه تغییر ارائهدهنده، مسیر، دستگاه، سرور آزمون یا بازهٔ نمونهبرداری باید افشا شود. با ادامهٔ آزمونها، مجموعهدادههای تاریخدار، نسخهدار و قابل دانلود بر اساس همین روش اضافه خواهند شد.
5. قالب عمومی و ماشینخوان دادهٔ آزمون
SingLinkVPN در کنار گزارشهای قابلخواندن برای انسان، یک قالب ماشینخوان برای دادهٔ عملکرد منتشر میکند.
JSON Schema الزام میکند هر رکورد عملکرد شامل این فیلدها باشد:
- test_id: شناسهٔ آزمون؛
- tested_at_utc: زمان آزمون به UTC؛
- client_version: نسخهٔ کلاینت؛
- platform: پلتفرم آزمون؛
- protocol_label: برچسب پروتکل؛
- country: کشور یا منطقهٔ آزمون؛
- network_type: نوع شبکه؛
- sample_count: تعداد نمونهها؛
- latency_ms_median: میانهٔ تأخیر؛
- jitter_ms_p95: لرزش در صدک 95؛
- packet_loss_pct: نرخ اتلاف بسته؛
- download_mbps_median: میانهٔ سرعت دانلود؛
- upload_mbps_median: میانهٔ سرعت آپلود؛
- connection_success_pct: نرخ موفقیت اتصال؛
- reconnect_ms_median: میانهٔ زمان اتصال مجدد؛
- methodology_version: نسخهٔ روش؛
- evidence_level: سطح شواهد.
شواهد در حال حاضر میتوانند با این برچسبها مشخص شوند:
- آزمون داخلی؛
- بازتولید مستقل؛
- ارزیابی شخص ثالث.
این قالب به توسعهدهندگان و پژوهشگران امکان میدهد فیلدهای الزامی و بازههای مقادیر را مستقیماً بررسی کنند و برای بازتولید و مقایسه از همان ساختار استفاده کنند، بهجای اینکه فقط به نمودارها یا نتیجهگیریهای روایی تکیه کنند.
6. گزارشهای امنیت، عملکرد و شفافیت
مخزن یک پوشهٔ گزارش اختصاصی برای انتشار مستمر این موارد دارد:
- گزارشهای امنیتی؛
- گزارشهای عملکرد؛
- پژوهشهای حریم خصوصی؛
- گزارشهای شفافیت؛
- ارزیابیهای شخص ثالث؛
- نتایج بازتولیدشدهٔ مستقل؛
- اطلاعیههای مهم رفع مشکلات امنیتی.
هر گزارش رسمی پیش از انتشار باید این موارد را بیان کند:
- تاریخ انتشار؛
- نویسنده یا نگهدارنده؛
- نسخهٔ محصول متأثر؛
- روش؛
- منبع داده؛
- سطح شواهد؛
- محدودیتهای شناختهشده؛
- تاریخچهٔ اصلاحات.
آزمونهای داخلی و ارزیابیهای مستقل برچسبهای متفاوتی دارند. فاز نخست ساختار گزارش، قواعد شواهد و چارچوب نسخهگذاری را بنا میکند؛ گزارشها زمانی اضافه میشوند که داده و بازبینیشان آماده باشد، نه اینکه یک بار منتشر و سپس رها شوند.
7. ابزارهای باز اعتبارسنجی و پژوهش
فاز نخست همچنین چند ابزار پژوهشی و اعتبارسنجی به زبان Python منتشر میکند.
publication_guard.py
این ابزار اسناد، دادهها و ابزارها را پیش از انتشار از نظر این موارد بررسی میکند:
- اعتبارنامهها؛
- قالبهای کلید؛
- مسیرهای خصوصی؛
- فایلهای فشرده؛
- فایلهای باینری؛
- انواع کد منبعی که برای انتشار تأیید نشدهاند؛
- فایلهای بیش از حد بزرگ؛
- قالبهای رایج اسرار فعال؛
- محتوایی که ممکن است سیستمهای حساس را توصیف کند.
validate_benchmark.py
این ابزار فایلهای CSV آزمون عملکرد را اعتبارسنجی میکند، از جمله:
- نام ستونها؛
- فیلدهای الزامی؛
- بازههای عددی؛
- برچسبهای شواهد؛
- ساختار دادهٔ آزمون.
check_relative_links.py
این ابزار لینکهای نسبی در Markdown را بررسی میکند و تأیید میکند که فایلهای عمومی ارجاعشده وجود دارند.
check_multilingual_seo.py
این ابزار اسناد چندزبانه و ساختار مرتبط با جستوجو را بررسی میکند تا به همراستا ماندن مطالب انگلیسی، چینی سادهشده و چینی سنتی کمک کند.
این ابزارها هستهٔ اتصال VPN نیستند. آنها زیرساخت انتشارند و هدفشان کاهش خطاهای قالببندی، لینکهای شکسته، افشای ناخواستهٔ اطلاعات حساس و ناهماهنگی نسخههاست. مشارکتکنندگان بیرونی میتوانند همین ابزارها را روی مشارکتهای خود اجرا کنند.
8. استاندارد پنجسطحی شواهد عمومی
سطح یک: بیانیهٔ سیاستی
تعهدی دربارهٔ محصول، امنیت، عملیات یا حریم خصوصی که نگهدارنده منتشر کرده است. این یک تعهد عمومی است، نه اثبات پیادهسازی یا ممیزی مستقل.
سطح دو: مستندات پیادهسازی
توصیف فنی سطح بالا و نسخهداری که آدرس سرورها، اعتبارنامهها، APIهای خصوصی یا دیگر اطلاعات حساس را در بر ندارد.
سطح سه: آزمون داخلی
آزمونی که SingLinkLabs بر اساس یک روش عمومی و با تاریخ، نسخه، محیط و داده اجرا کرده است.
سطح چهار: نتیجهٔ بازتولیدشده
نتیجهای مستقل که توسعهدهنده یا پژوهشگر دیگری با همان روش و دادهٔ عمومی به دست آورده است.
سطح پنج: ارزیابی شخص ثالث
ارزیابیای توسط یک پژوهشگر یا سازمان مستقلِ نامبرده، همراه با یک گزارش رسمی قابلتأیید.
این سطوح جایگزین یکدیگر نیستند. آزمون داخلی را نمیتوان ارزیابی شخص ثالث نامید؛ سیاست را نمیتوان تأیید مستقل دانست؛ و انتشار یک روش به این معنا نیست که نتیجه پیشاپیش بازتولید شده است.
هر گزارش باید به این پرسش پاسخ دهد: چه کسی، چه زمانی، با کدام نسخه و با چه روشی به این نتیجه رسیده است؟
اصلاحات مهم نیازمند یک Git commit جدید و یک مدخل در تاریخچهٔ تغییرات است. دادههای منتشرشده نباید بیصدا جایگزین شوند و دادههای منسوخ باید قابل شناسایی باقی بمانند.
9. گزارش آسیبپذیری و افشای مسئولانه
انتشار باز و افشای امن باید با هم کار کنند.
آسیبپذیریهای وصلهنشده، اعتبارنامههای فعال، endpointهای خصوصی، آدرس سرورها و دادههای کاربران نباید در یک Issue عمومی منتشر شوند.
گزارشهای آسیبپذیری باید بهصورت خصوصی از طریق نشانی ایمیل امنیتی یا GitHub Security Advisories ارسال شوند و بهروشنی بهعنوان افشای امنیتی مشخص شوند. اگر نشانی ایمیل امنیتی منتشر نشده است، به فایل `SECURITY.md` مخزن مراجعه کنید و نشانی را حدس نزنید.
یک گزارش باید شامل این موارد باشد:
- نسخهٔ متأثر؛
- پلتفرم متأثر؛
- شرایط بازتولید؛
- اثر امنیتی؛
- راهی امن برای تماس با گزارشدهنده؛
- مطالب بازتولیدی که هیچ دادهٔ واقعی کاربر را در بر نداشته باشد.
گزارشهای امنیتی این مراحل را طی میکنند:
- دستهبندی اولیه و تأیید؛
- ارزیابی اثر؛
- رفع مشکل؛
- انتشار نسخهٔ اصلاحشده؛
- یک بازهٔ زمانی معقول برای بهروزرسانی؛
- انتشار اطلاعیهٔ امنیتی.
اطلاعیههای عمومی اثر تأییدشده را از خطر فرضی جدا میکنند و نسخههای متأثر و اصلاحشده را مشخص میکنند.
10. دادهٔ عمومی به معنای عمومی کردن دادهٔ کاربران نیست
شفافیت فنی نباید به بهای حریم خصوصی کاربران به دست آید.
مخزن اجازه نمیدهد Issueها، pull requestها، مجموعهدادهها یا اسناد پژوهشی این موارد را در بر داشته باشند:
- دادههای شخصی؛
- شناسههای حساب؛
- دادههای پرداخت؛
- گفتوگوهای پشتیبانی؛
- آدرسهای IP خصوصی؛
- توکنهای دسترسی؛
- اعتبارنامههای محیط عملیاتی؛
- لاگهای محیط عملیاتی؛
- ترافیک خام محیط عملیاتی؛
- دادهٔ آزمونی که بتواند یک کاربر مشخص را شناسایی کند.
دادههای عملکرد باید تجمیعی یا ناشناسسازیشده باشند. بازبینان باید پیش از انتشار تأیید کنند که مجموعهداده هیچ دادهٔ سطح کاربر، اعتبارنامه یا مطلبی که بتواند کاربر واقعی را شناسایی کند در بر ندارد.
این برنامه فناوری، روشها، گزارشها و کد منبع بازبینیشده را شفاف میکند. اطلاعات کاربران، دادههای امنیتیِ حساس سرورها یا اعتبارنامههای محیط عملیاتی را منتشر نمیکند.
11. جامعه چگونه میتواند مشارکت کند?
توسعهدهندگان، پژوهشگران امنیتی و اعضای جامعه میتوانند:
- مستندات فنی را بهبود دهند؛
- خطاهای مستندات را اصلاح کنند؛
- ترجمههای چینی سنتی، چینی سادهشده و انگلیسی را بهبود دهند؛
- تکرارپذیری روش آزمون را بهبود دهند؛
- کیفیت دادهٔ عمومی را بهبود دهند؛
- دسترسپذیری را بهبود دهند؛
- ابزارهای پژوهشی اضافه کنند؛
- اعتبارسنجی قالبها را بهبود دهند؛
- لینکهای شکسته را پیدا کنند؛
- روشهای پژوهشی عمومی تازه پیشنهاد دهند؛
- برای طراحی آزمونها بهبود پیشنهاد کنند؛
- آزمونهای عمومی را در چارچوب قواعد امنیتی بازتولید کنند.
مشارکتها نباید این موارد را در بر داشته باشند:
- کد منبع محصولِ تأییدنشده؛
- اطلاعات زیرساخت خصوصی؛
- اعتبارنامهها یا کلیدها؛
- دادههای کاربران؛
- endpointهای خصوصی؛
- لاگهای محیط عملیاتی؛
- دستورالعمل کامل بهرهبرداری از یک آسیبپذیری وصلهنشده.
هر مشارکت قابل اندازهگیری نیز باید منبع، روش، تاریخ و محدودیتهای خود را مشخص کند.
آیا این به معنای آن است که SingLinkVPN اکنون کاملاً متنباز است?
خیر. این فاز نخست است، نه فاز نهایی.
اولویتهای فاز نخست عبارتاند از:
- مستندات فنی؛
- معماری توسعه؛
- مدلهای امنیت و حریم خصوصی؛
- روشهای آزمون عملکرد؛
- قالبهای دادهٔ ماشینخوان؛
- ابزارهای اعتبارسنجی؛
- سیاست شواهد و انتشار؛
- افشای مسئولانه؛
- چارچوبی برای گزارشها و انتشارهای بعدی کد منبع.
موارد زیر در فاز نخست گنجانده نشدهاند:
- کد منبع کامل کلاینت VPN؛
- کد منبع سمت سرور؛
- کد منبع سیستم پرداخت؛
- پیکربندی سرورهای عملیاتی؛
- APIهای خصوصی؛
- اعتبارنامههای احراز هویت؛
- جزئیات حساس پیادهسازی ضدمسدودسازی یا مقابله با شبکه؛
- کد منبع کامل پروتکل اصلی.
این موارد لزوماً از کل برنامه کنار گذاشته نشدهاند. هر ماژول محصول به بازبینی جداگانهٔ امنیت، حریم خصوصی، وابستگیها و مجوز نیاز دارد.
پس از تکمیل بازبینی، انتشارهای بعدی شامل این موارد خواهند بود:
- یک پوشهٔ متنباز با تعریف روشن؛
- مجوز مربوط؛
- تاریخچهٔ نسخهها؛
- مرزهای امنیتی؛
- تاریخچهٔ تغییرات؛
- تاریخ انتشار؛
- یک تگ Git یا Release قابلتأیید.
ساختن استانداردهای انتشار، ساختارهای داده، قواعد امنیتی و ابزارهای پژوهشی در ابتدا، پایهای امنتر فراهم میکند و خطر افشای اعتبارنامهها، زیرساخت، دادههای کاربران یا کد شخص ثالثی را که از نظر حقوقی قابل بازتوزیع نیست کاهش میدهد.
مجوزها همزمان با انتشار مطالب بیشتر تعیین میشوند
مخزن فعلی بهصورت عمومی قابل مشاهده است، اما مجوزهای کامل استفادهٔ مجدد از کد و محتوا هنوز بر اساس نوع مطلب و کد منبع در حال تدوین است.
تا زمانی که مجوز صریحی منتشر نشده، کاربران نباید فرض کنند این حقوق را دریافت کردهاند:
- حق کپی؛
- حق تغییر؛
- حق بازتوزیع؛
- حق استفادهٔ تجاری؛
- حق اعطای مجدد مجوز.
مجوزدهی روشن بخش جداییناپذیر متنباز رسمی است. هر انتشار بعدی کد منبع، مستندات، داده یا ابزارها شامل شرایطی متناسب با وابستگیها، مجوزهای بالادستی و کاربرد موردنظر آن خواهد بود.
این کار از اعمال نادرست مجوز یک ماژول بر ماژول دیگر جلوگیری میکند و از مشارکتکنندگان، پروژههای بالادستی و کاربران پاییندستی محافظت میکند.
جهت بلندمدت برنامه
جهت روشن است: افزایش مستمر حجم مطالب فنیای که عمومی، قابلتأیید و تکرارپذیرند.
1. ادامهٔ گسترش مستندات فنی عمومی
این شامل چرخهٔ عمر اتصال، مسیریابی، DNS، تغییرات شبکه، پیکربندی امن و آزمون روی پلتفرمهای مختلف است.
2. ادامهٔ انتشار سوابق نسخهدار محصول
سوابق، پلتفرمها، نسخهها، تاریخها، checksumها، تغییرات مهم، محدودیتهای شناختهشده و لینکهای استناد پایدار را اضافه خواهند کرد.
3. ادامهٔ افزودن مجموعهدادههای واقعی عملکرد
دادههای ماشینخوان، تاریخدار، نسخهدار و مختص هر محیط بر اساس روش عمومی منتشر خواهند شد.
4. ادامهٔ انتشار گزارشهای امنیت، عملکرد و شفافیت
گزارشها سیاست، آزمون داخلی، بازتولید مستقل و ارزیابی شخص ثالث را از هم متمایز خواهند کرد.
5. تشویق بازتولید مستقل
پژوهشگران میتوانند از همان روشها و قالبها برای مقایسهٔ شبکهها، دستگاهها و مناطق مختلف استفاده کنند.
6. ادامهٔ بهبود ابزارهای انتشار و داده
خودکارسازی در زمینهٔ قالببندی، امنیت، مستندات و گردش کار آزمون گسترش خواهد یافت.
7. انتشار مرحلهای کد منبع محصول VPN
پس از بازبینی امنیت، حریم خصوصی، وابستگیها و مجوز، پروتکل، کلاینت و دیگر فناوریهای اصلی برنامهریزیشده بهتدریج منتشر خواهند شد.
8. ساختن سابقهٔ کاملتر افشا و اصلاح
مشکلات امنیتی مهم، نسخههای متأثر، نسخههای اصلاحشده و بهروزرسانیهای بعدی تاریخچهٔ روشنی خواهند داشت.
مخزن فرادادهٔ استناد (citation metadata) دارد. پژوهشگران باید به Releaseهای تگخورده، commitهای تغییرناپذیر و گزارش یا مجموعهدادهٔ تاریخداری که واقعاً استفاده کردهاند استناد کنند، نه به مطالب تبلیغاتی بدون تاریخ.
از بیانیههای عمومی تا تأیید پایدار
متنباز نباید فقط یک رویداد رونمایی باشد.
متنباز بلندمدت به نگهداری، مشارکت بیرونی، مجوزدهی روشن، مدیریت نسخه، رفع مشکلات امنیتی و مطالب فنیای نیاز دارد که دیگران بتوانند تأیید و بازتولید کنند.
آغاز با مستندات، روشهای پژوهشی، قالبهای داده، استانداردهای شواهد، ساختارهای گزارش و ابزارهای اعتبارسنجی، پایهٔ انتشار گستردهتر کد منبع را بنا میکند.
نخست، ایجاد یک نقطهٔ ورود عمومی
مطالب فنی، امنیتی، حریم خصوصی و عملکردی که پیشتر پراکنده بودند، در یک مخزن GitHub نگهداریشده گرد هم میآیند.
دوم، ایجاد استانداردهای انتشار
این برنامه تعریف میکند چه چیزی قابل انتشار است، آزمونها باید چه فیلدهایی داشته باشند، شواهد چگونه طبقهبندی میشوند و اصلاحات چگونه ثبت میشوند.
سوم، ایجاد پایه برای متنباز شدن در مراحل بعد
فرایندهای امنیت، حریم خصوصی، مجوز و مدیریت نسخه برای گزارشها، مجموعهدادهها، پروتکلها، کلاینتها و دیگر ماژولها آماده میشوند.
بنابراین فاز نخست یک انتشار اولیهٔ محدود را بهعنوان کل نتیجه معرفی نمیکند. بلکه فرایندی را آغاز میکند که برای گسترش طراحی شده است.
سوالات متداول (FAQ)
آیا SingLinkVPN برنامهٔ متنباز خود را رسماً آغاز کرده است?
بله. مخزن رسمی متنباز و پژوهش فنی SingLinkVPN فعال است و مستندات فاز نخست، روشهای پژوهشی، قالبهای داده و ابزارهای اعتبارسنجی عمومی شدهاند.
آیا اکنون همهٔ کد منبع VPN عمومی است?
خیر. کد منبع پروتکل، کلاینت و دیگر بخشهای محصول SingLinkVPN پس از بازبینی امنیت، حریم خصوصی، وابستگیها و مجوز، ماژول به ماژول منتشر خواهد شد.
چرا همه چیز یکجا منتشر نمیشود?
یک محصول VPN ممکن است شامل اطلاعات سرورهای عملیاتی، اعتبارنامهها، APIهای خصوصی، سازوکارهای دفاعی حساس، وابستگیهای شخص ثالث و کدهایی با مجوزهای متفاوت باشد.
بازبینی مرحلهای خطر افشای دادههای کاربران، جزئیات زیرساخت، اعتبارنامههای فعال یا کد شخص ثالثی را که قابل بازتوزیع نیست کاهش میدهد.
آیا دادهٔ واقعی عملکرد منتشر خواهد شد?
بله. روش و قالب ماشینخوان گام نخستاند. دادهها و گزارشهای تاریخدار و نسخهدار عملکرد SingLinkVPN همراه با محیط، اندازهٔ نمونه و محدودیتها در ادامه منتشر میشوند.
آیا گزارشهای امنیت و شفافیت عمومی خواهند بود?
بله. مخزن SingLinkVPN یک پوشهٔ گزارش اختصاصی و قواعد انتشار دارد. گزارشها زمانی اضافه میشوند که شواهد، روشها، نسخهها و محدودیتهایشان آماده باشد.
آیا انتشار مدل امنیتی به این معناست که ممیزی شخص ثالث انجام شده است?
خیر. مدل امنیتی یک پایهٔ عمومی برای آزمونها و ارزیابیهای بعدی است.
یک ارزیابی شخص ثالث، ارزیاب را معرفی میکند و به گزارشی قابلتأیید لینک میدهد. چنین ارزیابیای بهعنوان آزمون داخلی معرفی نخواهد شد.
توسعهدهندگان چه مشارکتی میتوانند داشته باشند?
توسعهدهندگان میتوانند در مستندات، ترجمه، روشهای پژوهشی، کیفیت داده، دسترسپذیری، ابزارهای اعتبارسنجی و بازتولید آزمونها مشارکت کنند.
آسیبپذیریهای امنیتی باید بهصورت خصوصی گزارش شوند، نه در یک Issue عمومی.
آیا دادهٔ عمومی شامل دادهٔ کاربران خواهد بود?
خیر. دادهٔ عمومی SingLinkVPN باید تجمیعی یا ناشناسسازیشده باشد و نمیتواند شامل دادهٔ حساب، دادهٔ پرداخت، آدرسهای IP خصوصی، توکنهای دسترسی، لاگهای عملیاتی یا ترافیک خام عملیاتی باشد.
جمعبندی: متنباز بودن آغاز اعتماد بلندمدت است
برنامهٔ متنباز SingLinkVPN اکنون در جریان است.
فاز نخست مستندات فنی، روشهای پژوهشی، استانداردهای شواهد، قالبهای داده، قواعد افشا، ساختارهای گزارش و ابزارهای اعتبارسنجی را بنا میکند.
گزارشهای بیشتری دربارهٔ امنیت، عملکرد و شفافیت در راه است. دادهٔ عمومی بیشتری با قالبی یکسان اضافه خواهد شد. مطالب فنی و کد منبع بیشتری از محصول، پس از بازبینی امنیت، حریم خصوصی و مجوز، بهصورت مرحلهای منتشر خواهد شد.
این یک اعلامیهٔ یکبارهٔ برند یا گام پایانی نیست. یک کار مهندسی ادامهدار است.
هدف ما این است که اطلاعات فنی، امنیتی، حریم خصوصی و عملکردی SingLinkVPN را از مطالبی که فقط برند توصیفشان میکند، به شواهدی عمومی تبدیل کنیم که جامعه بتواند بررسی، استناد، تأیید، بازتولید و بهطور مستمر موشکافی کند.
از توسعهدهندگان، پژوهشگران امنیتی، رسانههای فنی و کاربران جامعه که میخواهند مستندات را بهبود دهند، پژوهشها را بازتولید کنند، دادهها را اعتبارسنجی کنند و در بحثهای فنی شرکت کنند، استقبال میکنیم.
متنباز بودن آغاز اعتماد بلندمدت است.
و این تنها گام نخست است.


