زیرساخت‌های بنیادین امنیت ارتباطات اینترنتی در آستانه تحولی ساختاری قرار دارند. نهادهای نظارتی و سیستم‌های شنود سازمانی به‌طور پیوسته ترافیک رمزنگاری‌شده را در فیبرهای نوری ترانزیت ذخیره می‌کنند تا پس از ورود رایانه‌های کوانتومی مقیاس‌پذیر (CRQC) آن‌ها را رمزگشایی نمایند. در این مدل تهدید که «اکنون ذخیره کن، بعداً رمزگشایی کن» (HNDL) نامیده می‌شود، هرگونه تبادل کلید مبتنی بر منحنی‌های بیضوی کلاسیک (ECDH) در آینده آسیب‌پذیر خواهد بود.

در شرایطی که روش‌های نامتقارن پساکوانتومی نظیر الگوریتم‌های مبتنی بر مشبکه (مانند ML-KEM-768) حجم بسته‌های تبادلی را به‌شدت افزایش داده و باعث تقسیم بسته‌ها در شبکه می‌شوند، پروتکل مدرن WireGuard راهکاری بسیار چابک در هسته خود تعبیه کرده است: حالت کلید پیش‌اشتراکی متقارن (Preshared Key یا PSK). با ترکیب یک کلید متقارن ۲۵۶ بیتی در ماشین حالت Noise_IK، پروتکل WireGuard بدون تحمیل سربار ترافیکی، حفاظتی نفوذناپذیر در برابر سامانه‌های کوانتومی ایجاد می‌کند.

مدل تهدید ذخیره اکنون و رمزگشایی در آینده

خطر اصلی در عصر پردازش کوانتومی، لزوماً حمله آنی به دستگاه‌ها نیست؛ بلکه رمزگشایی عطف‌به‌ماسبق داده‌های ذخیره‌شده است. هر ترافیک متقارنی که کلید نشست آن صرفاً از طریق ضرب اسکالر روی Curve25519 به دست آمده باشد، توسط الگوریتم شر (Shor's Algorithm) قابل بازیابی خواهد بود.

در فرایند دست‌تکانی استاندارد WireGuard با الگوی Noise_IK، دو طرف چهار عمل ضرب اسکالر انجام می‌دهند:

$$es = \text{X25519}(e_{init}, s_{resp})$$ $$ss = \text{X25519}(s_{init}, s_{resp})$$ $$ee = \text{X25519}(e_{resp}, e_{init})$$ $$se = \text{X25519}(s_{init}, e_{resp})$$

یک رایانه کوانتومی پایدار قادر است مسئله لگاریتم گسسته روی منحنی Curve25519 را در زمان چندجمله‌ای حل کند و کلیدهای اصلی تبادل داده را بازسازی نماید.

پروتکل WireGuard با بهره‌گیری از رمزنگاری متقارن این خطر را خنثی می‌سازد. طبق الگوریتم گروور (Grover's Algorithm)، پردازش کوانتومی روی کلیدهای متقارن فقط شتاب درجه دوم ایجاد می‌کند و شکاف تصاعدی ندارد. از این رو، یک کلید متقارن ۲۵۶ بیتی حاشیه امنیتی ۱۲۸ بیتی پسا‌کوانتومی به همراه دارد. جستجوی فراگیر در فضایی با $2^{128}$ حالت از نظر مبانی ترمودینامیکی در دنیای فیزیکی غیرممکن است و ارتباط را حتی در مقابل رایانه‌های کوانتومی پیشرفته پایدار نگه می‌دارد.

چالش‌های عملی الگوریتم‌های مبتنی بر مشبکه در شبکه‌های بسته

تلاش برای وارد کردن الگوریتم‌های پساکوانتومی مبتنی بر مشبکه (Lattice KEM) نظیر ML-KEM-768 در سطح بسته‌های UDP با گلوگاه‌های اجرایی همراه است. در این استانداردها، اندازه کلید عمومی به ۱۱۸۴ بایت و اندازه متن رمز به ۱۰۸۸ بایت می‌رسد.

مقایسه مشخصات فنی میان ML-KEM-768 و مدل PSK در WireGuard:

ویژگی فنی سازوکار ML-KEM-768 مدل WireGuard Noise_IKpsk2
اندازه کلید عمومی ارسالی ۱۱۸۴ بایت ۳۲ بایت (Curve25519)
سربار داده‌های دست‌تکانی ۱۰۸۸ بایت صفر بایت (اشتراک از پیش)
خطر قطعه‌قطعه شدن بسته‌ها بسیار بالا (فراتر از MTU 1280) وجود ندارد (بسته اولیه ۱۴۸ بایت)
هزینه پردازشی سیستم ضرب ماتریس‌های چندجمله‌ای هش متقارن بسیار سریع BLAKE2s
سطح مقاومت کوانتومی سختی محاسباتی ساختار مشبکه ۱۲۸ بیت طبق کران گروور

در ارتباطات سلولی تلفن همراه و شبکه‌های عمومی، مقدار Path MTU اغلب به ۱۲۸۰ یا ۱۳۵۰ بایت محدود می‌شود. اندازه حجیم بسته‌های دست‌تکانی نوین باعث تکه‌تکه شدن بسته‌ها در لایه اینترنت (IP Fragmentation) می‌شود. مسیریاب‌های میانی و تجهیزات CGNAT معمولاً بسته‌های تکه‌تکه‌شده UDP را حذف می‌کنند که به قطعی پی‌درپی می‌انجامد.

در سوی دیگر، WireGuard سبک‌بال باقی می‌ماند. بسته اولیه فقط ۱۴۸ بایت و بسته پاسخ تنها ۹۲ بایت است و فعال‌سازی PSK هیچ بایت اضافی به طول بسته در شبکه اضافه نمی‌کند.

ماشین حالت رمزنگاری در پروتکل Noise_IKpsk2

پروتکل WireGuard بر ساختار رسمی Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s منطبق است. در این چارچوب، عبارت IK به معنای آگاهی پیشین فرستنده از کلید عمومی ثابت گیرنده و رمزگذاری کلید ثابت فرستنده در اولین پیام است. پسوند psk2 نیز بیانگر ادغام کلید متقارن در دومین گام پیام دوم است.

جریان دست‌تکانی به شرح زیر انجام می‌شود:

فرستنده (Initiator)                                 گیرنده (Responder)
        |                                                     |
        |  پیام نخست: e, es, s, ss                            |
        |---------------------------------------------------->|
        |                                                     |
        |  پیام دوم: e, ee, se, psk                           |
        |<----------------------------------------------------|
        |                                                     |
        |  استخراج کلیدهای داده نشست (T_send, T_recv)         |
        |<===================================================>|

پروتکل مقدار کلید زنجیره‌ای $ck_0$ و خلاصه هش $h_0$ را مقداردهی اولیه می‌کند. سپس در پیام دوم، گیرنده مقادیر ee و se را حساب کرده و نشانه psk را به چرخه تزریق می‌نماید.

تزریق آنتروپی متقارن از طریق تابع MixKey

هسته مقاومت پساکوانتومی WireGuard در تابع تبدیل MixKey قرار دارد. هنگام رسیدن به نشانه psk، ماشین حالت این عملیات را اجرا می‌کند:

$$\text{MixKey}(psk) \implies (ck_{i+1}, \kappa) = \text{HKDF-BLAKE2s}(ck_i, psk)$$

در این رابطه، $ck_i$ وضعیت زنجیره کلید ناشی از ضرب‌های قبلی است و $psk$ همان رمز متقارن ۲۵۶ بیتی با آنتروپی بالا می‌باشد.

خروجی‌های تابع HKDF دو مقدار کلیدی هستند:

  1. کلید زنجیره‌ای به‌روزرسانی‌شده $ck_{i+1}$ که آنتروپی کوانتومی PSK را کاملاً در خود جذب کرده است.
  2. کلید موقت $\kappa$ جهت احراز اصالت بسته داده پیام دوم.

در پایان، دو گره با فراخوانی تابع Split() کلیدهای نهایی نشست را ایجاد می‌کنند:

$$(T_{send}, T_{recv}) = \text{HKDF-BLAKE2s}(ck_{final}, \epsilon)$$

از آنجا که $ck_{final}$ مستقیماً از $ck_{i+1}$ و متعاقباً از $psk$ مشتق شده است، مهاجم بدون داشتن کلید متقارن نمی‌تواند کلیدهای نشست را بازسازی کند. حتی با شکستن کامل Curve25519 توسط رایانه‌های کوانتومی، مسیر ریاضی استخراج کلید به سد یک‌طرفه تابع هش برخورد می‌کند.

استقرار و پیکربندی عملی در WireGuard

پشتیبانی از کلید پیش‌اشتراکی در ماژول هسته لینوکس تعبیه شده و بدون نیاز به بسته‌های جانبی قابل استفاده است.

تولید کلید متقارن ۲۵۶ بیتی استاندارد:

# ایجاد کلید متقارن با آنتروپی بالا
wg genpsk > /etc/wireguard/peer_psk.key
chmod 600 /etc/wireguard/peer_psk.key

درج پارامتر PresharedKey در بخش [Peer] در تنظیمات هر دو طرف:

# پیکربندی سرور در /etc/wireguard/wg0.conf
[Interface]
PrivateKey = aaaaaaaa...
Address = 10.100.0.1/24
ListenPort = 51820

[Peer]
PublicKey = bbbbbbbb...
PresharedKey = cccccccccccccccccccccccccccccccccccccccc=
Endpoint = 198.51.100.2:51820
AllowedIPs = 10.100.0.2/32
PersistentKeepalive = 25
# پیکربندی کلاینت در /etc/wireguard/wg0.conf
[Interface]
PrivateKey = bbbbbbbb...
Address = 10.100.0.2/24
ListenPort = 51820

[Peer]
PublicKey = aaaaaaaa...
PresharedKey = cccccccccccccccccccccccccccccccccccccccc=
Endpoint = 203.0.113.1:51820
AllowedIPs = 10.100.0.1/32
PersistentKeepalive = 25

وضعیت ارتباط با دستور wg show wg0 قابل تایید است: preshared key: (hidden)

در صورت عدم تطابق کلید، برچسب اصالت‌سنجی پیام دوم معتبر نخواهد بود و هسته شبکه بدون ارسال خطایی بسته را نادیده می‌گیرد تا امکان سوءاستفاده از زمان پاسخ سلب شود.

چرخش خودکار کلیدهای محرمانه در RiceGuard

اگرچه کلیدهای متقارن امنیت داده‌ها را در برابر سامانه‌های کوانتومی تضمین می‌کنند، نگهداری کلیدهای ثابت طولانی‌مدت در ابعاد گسترده می‌تواند خطراتی در زمان سرقت فیزیکی دستگاه داشته باشد.

شبکه‌های تجاری پیشرفته برای حل این مشکل از سیستم خودکار چرخش خارج‌ازباند کلید بهره می‌برند:

  • توزیع امن خارج‌ازباند: تبادل منظم کلیدهای جدید از طریق کانال‌های کنترلی کوتاه‌مدت mTLS.
  • زمان‌بندی انقضا: چرخش کلیدها به‌طور منظم (مثلاً هر ۲۴ ساعت) یا پس از سقف معین حجم انتقال.
  • جابه‌جایی پیوسته: پشتیبانی هم‌زمان از کلید قبلی و جدید در پنجره زمانی تغییر برای جلوگیری از قطع اتصال.

سرویس VPNRice در پروتکل اختصاصی RiceGuard این شیوه معماری را به‌کار گرفته است. تلفیق سرعت بالای هسته WireGuard با چرخش خودکار و پویای کلیدهای متقارن خارج‌ازباند، پایداری و امنیت پساکوانتومی بی‌نقصی را بدون افت پهنای باند برای کاربران فراهم می‌سازد.

دریافت VPNRice.