محتويات الدورة

الشبكات / المتوسط: العمر والثقة وبروتوكولات التطبيق / الدرس 11

فهم تحقق هوية TLS وتفاوض البروتوكول

افصل النقل المشفر وهوية الشهادة والثقة واختيار الاسم وتخويل التطبيق بنموذج الاتصال الآمن.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح حماية TLS وما خارجها.
  • تمييز تحقق اسم الخدمة من اختيار العنوان.
  • إدراك SNI وALPN وسلوك المصافحة حسب النسخة.

التشفير والهوية مطلبان منفصلان

يوفر TLS اتصالاً محمياً بمعاملات ومصادقة حسب النمط، ولا يكفي تشفير للطرف الخطأ. يحتاج الويب سلسلة ثقة واسم خدمة وسياق صلاحية ودعماً. يبقى تخويل التطبيق أعلى وقد يرفض المستخدم رغم توثيق الخادم. حدد الخاصية قبل الثقة ولا تتجاوز التحقق لتجميل النجاح.

يقود اسم الخدمة المطلوب فحص الهوية

يوفر اسم URL عادة الهوية المرجعية ولا يستبدله IP المحلول في تطابق الشهادة. قد يحتاج الحرفي هوية IP مناسبة لا DNS. للقناع والمعرف قواعد لا بحث جزء. يفحص المثال أسماء دقيقة للتوضيح لا شهادة كاملة أو PKIX أو القناع.

python فصل الاسم المطلوب من العنوان المختار غير متصل
requested_name = 'report.example'
certificate_dns_names = {'report.example', 'archive.example'}
print('exact_name_present=' + str(requested_name in certificate_dns_names))
print('address_is_not_reference_name=' + str('192.0.2.20' != requested_name))
الناتج المتوقع
exact_name_present=True
address_is_not_reference_name=True

المجموعات بيانات شهادة مصطنعة لا موقعة ويثبت الخرج العضوية فقط لا الثقة أو الصلاحية أو الإلغاء أو التشفير.

تغير النسخة والنمط المصافحة

تختلف 1.3 جذرياً بالمصافحة والمفاتيح، وتضيف العودة والبيانات المبكرة خصائص منها إعادة التشغيل المحتمل فلا تعوض التبادل الكامل عموماً. افصل خطأ الشهادة والنسخة والتفاوض والتطبيق. لا توص بقائمة عامة أو قديم من صورة؛ راجع الدعم والمتطلبات واحفظ المرحلة.

يختار SNI وALPN شيئين مختلفين

يساعد SNI الطرف المشترك في اختيار إعداد الخدمة، ويتفاوض ALPN على التطبيق مثل HTTP/2. لا يستبدلان الشهادة أو المستخدم. تعتمد خصوصية البيانات الوصفية على الآليات فلا تعمم إخفاء الاسم. قد ينهي الوسيط TLS ويفتح خلفياً بحد ثقة آخر؛ حدد النهاية قبل تفسير شهادة جهة أخرى.

python نمذجة سياسة ALPN معلنة واحدة
client_offers = ['h2', 'http/1.1']
server_preference = ['h2', 'http/1.1']
selected = next((protocol for protocol in server_preference if protocol in client_offers), None)
print('synthetic_alpn=' + str(selected))
الناتج المتوقع
synthetic_alpn=h2

هذا تقاطع قوائم تعليمي لا تنفيذ مصافحة ويختار h2 وفق التفضيل دون اتصال.

حفظ الوقت والاسم والسلسلة وسياق النهاية

قد يشبه المنتهي خطأ ساعة العميل وتختلف علاجات الوسيط الناقص والمصدر والاسم والسياسة. احفظ الهوية والعائلة والتفاوض والبيانات والوقت والطوبولوجيا بسجلات مصرح بها ولا تنشر مفتاحاً أو رمزاً أو حمولة. لا نجري مصافحة أو جلب شهادة أو مسحاً؛ ندعم فحصاً دقيقاً دون إضعاف الثقة.

الأخطاء الشائعة وإصلاحها

اعتبار التشفير إثبات الخادم المقصود

لماذا يحدث؟
أُهمل تحقق الهوية.
كيف تصلحه؟
افحص الاسم والسلسلة.
كيف تتجنب تكراره؟
اشترط كل المراحل بالقبول.

استبدال IP للاسم تلقائياً

لماذا يحدث؟
اختلط اختيار المسار بالهوية.
كيف تصلحه؟
استخدم قواعد هوية التطبيق.
كيف تتجنب تكراره؟
احفظ الاسم مستقلاً عن العنوان.

تعطيل التحقق لإخفاء خطأ الشهادة

لماذا يحدث؟
عومل فشل الثقة إزعاجاً.
كيف تصلحه؟
صحح السبب المثبت.
كيف تتجنب تكراره؟
أبق التحقق ضمن النموذج.

اختبر فهمك

1. تسمي الشهادة report.example ويطلب العميل billing.example بنفس IP. هل يكفي الاشتراك؟

اعرض الحل المشروح

لا يثبت العنوان الهوية؛ يجب تطابق المعرفات والقواعد مع مرجع العميل بغض النظر عن الجهاز أو IP.

2. لماذا يعيد طلب ناجح TLS خطأ تخويل؟

اعرض الحل المشروح

يحمي TLS ويوثق طرفه وفق النمط وتبقى اعتمادات وأدوار وصلاحيات التطبيق. شخّص رده لا تبديل DNS أو تعطيل التحقق.

أهم ما تعلمته

  • افصل العنوان والاسم والثقة والتخويل.
  • سجل البروتوكول والنهاية دون تجاوز التحقق.

المراجع الرسمية