كيف تفعّل TLS المقاوم للكم (X25519MLKEM768) على nginx
آخر تحديث:
متصفح Chrome (منذ الإصدار 131) وFirefox يعرضان تبادل المفاتيح الهجين X25519MLKEM768 في كل اتصال HTTPS. إذا قبله خادمك فمفاتيح الجلسة محمية من أي حاسوب كمومي مستقبلي. وإذا لم يقبله يرجع المتصفح إلى X25519 العادي، ويمكن تسجيل حركة المرور اليوم وفك تشفيرها لاحقاً (احفظ الآن، فُكّ لاحقاً).
1. تحقق من إصدار OpenSSL
يأخذ nginx تشفير TLS من مكتبة OpenSSL التي بُني عليها. دعم ML-KEM وصل في OpenSSL 3.5.
nginx -V 2>&1 | grep -o 'OpenSSL [0-9.]*' openssl version
إذا ظهر 3.0 أو 3.1 أو 3.2 أو 3.3 أو 3.4 فلن يستطيع nginx استخدام ML-KEM مهما كتبت في الإعدادات. Ubuntu 22.04 و24.04 يأتيان بـ OpenSSL 3.0، وDebian 13 (trixie) يأتي بـ 3.5. الحلول: ترقية النظام، أو نسخة nginx مبنية على OpenSSL 3.5، أو وضع وكيل أو CDN يدعم ما بعد الكم أمام الخادم (انظر دليل الخوادم الأخرى).
2. إعداد nginx
مع OpenSSL 3.5 تكون المجموعة X25519MLKEM768 ضمن القائمة الافتراضية، فالإعداد الافتراضي ssl_ecdh_curve auto يعرضها أصلاً. الخطأ الشائع هو قائمة منحنيات صريحة منسوخة من دليل حماية قديم تحذفها دون أن تشعر. اكتب القائمة صراحة وضع المجموعة الهجينة أولاً:
server {
listen 443 ssl;
http2 on;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1;
# ... الشهادات وبقية الإعدادات
}
ابحث أيضاً في الملفات المضمّنة مثل /etc/letsencrypt/options-ssl-nginx.conf عن سطر ssl_ecdh_curve آخر. ثم:
nginx -t && systemctl reload nginx
3. التحقق
باستخدام عميل OpenSSL 3.5:
openssl s_client -connect example.com:443 -groups X25519MLKEM768 </dev/null 2>/dev/null | grep -i group
يجب أن تظهر X25519MLKEM768 كمجموعة متفق عليها. أو شغّل الفحص المجاني: الدرجة A تعني TLS 1.3 مع تبادل مفاتيح هجين مقاوم للكم.
انتبه إلى
- رسالة ClientHello الكبيرة. مفتاح ML-KEM يزيد أول رسالة من المتصفح بنحو 1.2 كيلوبايت، فتمتد غالباً على حزمتي TCP. بعض الجدران النارية وموازنات الحمل القديمة تتوقعها في حزمة واحدة فتقطع الاتصال. الفحص يذكر هذا كنتيجة مستقلة.
- الشهادات مسألة منفصلة. شهادة RSA أو ECDSA قابلة للكسر بخوارزمية Shor، لكن هذا يهم فقط بعد وجود حاسوب كمومي وفقط لانتحال الموقع لحظياً. تبادل المفاتيح هو ما يحمي الحركة المسجلة، فابدأ به.