12/05/2026
ناس كتير فاهمة HTTPS بشكل سطحي جدا
اه ده HTTP بس عليه 🔒 هو دا ال بيقفل الدنيا🦆
بس اي بيحصل فعلا وراء الكواليس؟
:
أنت لما تفتح موقع بـ HTTP عادي
أي بيانات بتتبعت بينك وبين السيرفر
بتكون plain text
يعني لو حد في النص على نفس الشبكة:
Wi-Fi
Proxy
ISP
Router
يقدر يشوف كل حاجة:
passwords
cookies
tokens
أي data.. اة
عشان كده ظهر HTTPS
وهو ببساطة:
HTTP + TLS/SSL
يعني نفس بروتوكول HTTP
لكن فوقه طبقة أمان مسؤولة عن:
Encryption + Authentication
طيب أول ما تدخل على موقع HTTPS إيه اللي بيحصل؟
قبل أي data حقيقية تتبعت
يحصل مرحلة اسمها:
TLS Handshake
ودي أهم جزء في العملية كلها
الـ browser يبعث:
Client Hello message
ودي بيكون فيها معلومات زي:
- TLS versions اللي بيدعمها
- encryption algorithms المدعومة
- random bytes
- معلومات تانية عن الاتصال
السيرفر يرد بـ:
Server Hello message
ويختار:
- الـ TLS version
- encryption algorithm
- cipher suite
اللي الاتنين يقدروا يشتغلوا بيها
وبعدها السيرفر يبعت:
SSL Certificate
ناس كتير فاكرة إن الـ SSL certificate مجرد ملف والسلام .. بس الملف ده مهم جدا
غالبا بيحتوي على:
- Domain name
- Public Key
- معلومات عن الشركة أو الموقع
- تاريخ الصلاحية
- Digital Signature من جهة موثوقة اسمها:
Certificate Authority (CA)
المتصفح وقتها يتحقق
هل الشهادة سليمة؟
هل منتهية؟
هل الـ domain مطابق؟
هل الجهة الموقعة موثوقة؟
لو كله تمام.. يكمل الاتصال
وهنا بقى ندخل على أهم نقطة
HTTPS بيستخدم نوعين encryption مع بعض:
1- Asymmetric Encryption
2- Symmetric Encryption
الـ Asymmetric Encryption
بيعتمد على مفتاحين:
Public Key
Private Key
أي حاجة تتشفر بالـ Public Key
مينفعش يفكها غير الـ Private Key
فالـ browser ياخد الـ Public Key من الـ certificate
ويستخدمه عشان يبعت secret امن للسيرفر
السيرفر فقط يقدر يفكه
لأنه الوحيد اللي عنده الـ Private Key
طيب إيه هو الـ secret ده؟
غالبا بيكون:
Session Key
وده المفتاح اللي هيستخدموه بعد كده في:
Symmetric Encryption
طيب ليه منستخدمش الـ asymmetric طول الوقت؟
لأنه أمن جدا.. بس بطيء
أما الـ Symmetric Encryption
فبيعتمد على:
Key واحد مشترك
نفس المفتاح للتشفير وفك التشفير
وده أسرع بكتير جدا
فعليا HTTPS بيعمل الآتي:
Asymmetric Encryption
لتأمين البداية وتبادل المفتاح
وبعدها:
Symmetric Encryption
لكل البيانات أثناء الاتصال
وده من أذكى الحاجات في التصميم
أمان عالي
+
أداء سريع
وبعد ما الـ handshake يخلص
كل الـ HTTP data:
headers
cookies
body
tokens
تتبعت بشكل مشفر
وده بيحقق 3 حاجات مهمة جدا:
1- Confidentiality
محدش يقدر يقرأ البيانات
2- Integrity
محدش يغير البيانات في الطريق
3- Authentication
أنت فعلا متصل بالموقع الحقيقي
وعشان كده المتصفح يطلع:
🔒
بس المهم جدا جدا جدا
HTTPS لا يعني إن التطبيق secure بالكامل
لأن HTTPS بيحمي:
البيانات أثناء النقل
مش:
منطق التطبيق نفسه
يعني لو عندك:
SQL Injection
XSS
ضعف Authorization
Passwords متخزنة غلط
فالـ HTTPS مش هيحل ده