كيف يعمل HTTPS و TLS حقًا: نظرة عميقة

Security2026-11-08TryQuickToolBox

تكتب عنوان URL، تضغط Enter، وترى القفل. لكن ماذا يحدث فعليًا بين متصفحك والخادم لجعل هذا الاتصال آمنًا؟ يعتبر العديد من المطورين HTTPS صندوقًا أسود—حتى يحدث خطأ ما، مثل خطأ في الشهادة أو مشكلة في الأداء. تكشف هذه المقالة الستار عن HTTPS و TLS، وتشرح المصافحة والتشفير والتحقق من الشهادات بمصطلحات عملية.

ما هو HTTPS حقًا

HTTPS هو ببساطة HTTP فوق TLS (أمان طبقة النقل). يوفر TLS ثلاث ضمانات:

تطور TLS من SSL (طبقة المقابس الآمنة). الإصدارات الحديثة (TLS 1.2 و 1.3) هي ما يجب استخدامه؛ SSL مهمل.

مصافحة TLS: خطوة بخطوة

قبل تدفق أي بيانات HTTP، يقوم العميل والخادم بإجراء مصافحة للاتفاق على مفاتيح التشفير. إليك ما يحدث في مصافحة TLS 1.3 النموذجية (مبسطة):

  1. Client Hello: يرسل المتصفح قائمة بمجموعات التشفير المدعومة، وقيمة عشوائية، وحصته الرئيسية لتبادل المفاتيح.
  2. Server Hello: يختار الخادم مجموعة تشفير، ويرسل قيمته العشوائية وحصته الرئيسية، ويقدم شهادته.
  3. اشتقاق المفتاح: يحسب كلا الجانبين نفس السر المشترك باستخدام تبادل مفاتيح Diffie-Hellman. من هذا، يستنتجان مفاتيح الجلسة للتشفير المتماثل.
  4. Finished: يرسل الطرفان رمز مصادقة الرسالة (MAC) للتحقق من سلامة المصافحة. يمكن الآن تدفق بيانات التطبيق المشفرة.

قلل TLS 1.3 المصافحة إلى رحلة ذهاب وعودة واحدة (1-RTT) وحتى يدعم 0-RTT للجلسات المستأنفة، مما يحسن زمن الوصول.

تبادل المفاتيح: Diffie-Hellman

سحر TLS الحديث هو أن العميل والخادم يمكنهما الاتفاق على سر مشترك دون إرساله أبدًا. يسمح Diffie-Hellman (وتحديدًا ECDHE للمنحنى الإهليلجي) بذلك. حتى لو سجل المهاجم المصافحة بأكملها، لا يمكنه استنتاج مفتاح الجلسة—تسمى هذه الخاصية السرية الأمامية.

التشفير المتماثل: AES أو ChaCha20

بمجرد إنشاء السر المشترك، يتحول TLS إلى التشفير المتماثل (مثل AES-GCM أو ChaCha20-Poly1305) لأنه أسرع بكثير من التشفير غير المتماثل. تُستخدم مفاتيح الجلسة لتشفير جميع بيانات التطبيق.

التحقق من الشهادة: ثق ولكن تحقق

شهادة الخادم مركزية للمصادقة. تحتوي على المفتاح العام للخادم وموقعة من قبل جهة إصدار الشهادات (CA). إليك كيف يتحقق المتصفح منها:

إذا فشل أي فحص، تحصل على تحذير—مثل "اتصالك ليس خاصًا."

أخطاء تكوين TLS الشائعة

حتى مع تمكين HTTPS، يمكن للأخطاء أن تضعف الأمان:

استخدم أدوات مثل اختبار SSL من SSL Labs للتحقق من تكوينك.

مثال عملي: تمكين HTTPS مع Nginx

إليك تكوين Nginx بسيط لخادم HTTPS آمن:

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers off;

    add_header Strict-Transport-Security "max-age=63072000" always;

    location / {
        root /var/www/html;
        index index.html;
    }
}

يستخدم هذا التكوين شهادات Let's Encrypt، ويمكّن فقط TLS 1.2 و 1.3، ويضبط HSTS.

الأسئلة الشائعة

ما الفرق بين TLS و SSL؟

TLS هو خليفة SSL. إصدارات SSL (2.0، 3.0) مهملة بسبب عيوب أمنية. عندما يقول الناس "شهادة SSL"، فإنهم عادة يقصدون شهادة TLS.

هل HTTPS يجعل موقعي بطيئًا؟

يضيف TLS الحديث (1.3) أقل زمن وصول—غالبًا بضعة أجزاء من الثانية فقط. مع استئناف الجلسة و HTTP/2، يمكن أن يكون HTTPS بنفس سرعة HTTP أو أسرع.

كيف أحصل على شهادة TLS مجانية؟

يوفر Let's Encrypt شهادات مجانية وآلية. يمكن لأدوات مثل Certbot الحصول عليها وتجديدها لك.

الخلاصة

HTTPS و TLS ليسا سحرًا—فهما بروتوكولات مصممة جيدًا تجمع بين التشفير بالمفتاح العام للمصادقة والتشفير المتماثل للسرعة. فهم المصافحة والتحقق من الشهادة يساعدك في تصحيح الأخطاء وتكوين خوادمك بشكل آمن. استخدم دائمًا TLS 1.2 أو 1.3، وحافظ على تحديث الشهادات، وقم بتمكين HSTS.

لتحليل سجلات الخادم لاكتشاف أخطاء TLS أو مشكلات الأداء، جرب محلل سجلات Nginx.