سؤال

ما هي سلسلة الخطوات اللازمة للتحقق بشكل آمن من شهادة SSL؟ما أفهمه (محدود للغاية) هو أنه عندما تزور موقع https، يرسل الخادم شهادة إلى العميل (المتصفح) ويحصل المتصفح على معلومات مصدر الشهادة من تلك الشهادة، ثم يستخدمها للاتصال بمصدر الشهادة، ويقارن بطريقة ما شهادات الصلاحية.

  • كيف يتم ذلك بالضبط؟
  • ماذا عن العملية التي تجعلها محصنة ضد هجمات الرجل في الوسط؟
  • ما الذي يمنع بعض الأشخاص العشوائيين من إعداد خدمة التحقق الخاصة بهم لاستخدامها في هجمات الوسيط، بحيث "يبدو" كل شيء آمنًا؟
هل كانت مفيدة؟

المحلول

وهنا شرح مبسط للغاية:

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

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

  3. تحتوي الشهادة على اسم المجال و/أو عنوان IP الخاص بخادم الويب.يؤكد متصفح الويب الخاص بك مع المرجع المصدق أن العنوان المدرج في الشهادة هو العنوان الذي لديه اتصال مفتوح به.

  4. يقوم متصفح الويب الخاص بك بإنشاء مفتاح متماثل مشترك سيتم استخدامه لتشفير حركة مرور HTTP على هذا الاتصال؛وهذا أكثر كفاءة من استخدام تشفير المفتاح العام/الخاص لكل شيء.يقوم متصفحك بتشفير المفتاح المتماثل بالمفتاح العام لخادم الويب ثم يرسله مرة أخرى، وبالتالي يضمن أن خادم الويب فقط يمكنه فك تشفيره، حيث أن خادم الويب فقط هو الذي لديه مفتاحه الخاص.

لاحظ أن المرجع المصدق (CA) ضروري لمنع هجمات الرجل في الوسط.ومع ذلك، فحتى الشهادة غير الموقعة ستمنع أي شخص من الاستماع بشكل سلبي إلى حركة المرور المشفرة الخاصة بك، حيث لا توجد لديه طريقة للوصول إلى مفتاحك المتماثل المشترك.

نصائح أخرى

تجدر الإشارة إلى أنه بالإضافة إلى شراء شهادة (كما هو مذكور أعلاه)، يمكنك أيضًا إنشاء شهادة خاصة بك مجانًا؛ويشار إلى ذلك باسم "الشهادة الموقعة ذاتيًا".الفرق بين الشهادة الموقعة ذاتيًا والشهادة التي تم شراؤها بسيط:تم توقيع النسخة التي تم شراؤها من قبل مرجع مصدق يعرفه متصفحك بالفعل.بمعنى آخر، يمكن للمتصفح الخاص بك التحقق بسهولة من صحة الشهادة المشتراة.

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

إذا قمت بتوزيع شهادة موقعة ذاتيًا بشكل آمن (أو شهادة CA، كما اقترح بوبنس) وقمت بتثبيتها في المتصفحات التي ستستخدم موقعك, ، إنه آمن تمامًا مثل المنتج الذي تم شراؤه وليس عرضة لهجمات الوسيط وتزوير الشهادات.من الواضح أن هذا يعني أن ذلك ممكن فقط إذا كان عدد قليل فقط من الأشخاص يحتاجون إلى الوصول الآمن إلى موقعك (على سبيل المثال، التطبيقات الداخلية، والمدونات الشخصية، وما إلى ذلك).

من أجل زيادة الوعي وتشجيع زملائي من المدونين الصغار مثلي على حماية أنفسهم، قمت بكتابة برنامج تعليمي للمبتدئين يشرح بمزيد من التفصيل المفاهيم الكامنة وراء الشهادات وكيفية إنشاء واستخدام شهادة موقعة ذاتيًا بأمان (كاملة مع نماذج التعليمات البرمجية ولقطات الشاشة).

انت قلت ذلك

يحصل المتصفح على معلومات مصدر الشهادة من تلك الشهادة ، ثم يستخدم ذلك للاتصال بالمصدر ، ويقارن بطريقة أو بأخرى شهادات الصلاحية.

لا يتوجب على العميل مراجعة المصدر وذلك لأمرين:

  1. تحتوي جميع المتصفحات على قائمة مثبتة مسبقًا بجميع المفاتيح العامة للمراجع المصدقة الرئيسية
  2. تم توقيع الشهادة، وهذا التوقيع بحد ذاته دليل كافٍ على أن الشهادة صالحة لأن العميل يمكنه التأكد بنفسه، ودون الاتصال بخادم المصدر، من أن تلك الشهادة صحيحة.هذا هو جمال التشفير غير المتماثل.

لاحظ أن 2.لا يمكن القيام به بدون 1.

وهذا أفضل وأوضح في هذا مخطط كبير لقد صنعت منذ بعض الوقت

(انتقل إلى "ما هو التوقيع؟" في الأسفل)

blob

يمتلك العميل مخزنًا مُسبقًا للمفاتيح العامة لسلطات شهادات SSL.يجب أن تكون هناك سلسلة ثقة بدءًا من شهادة الخادم وحتى السلطات الوسيطة حتى إحدى الشهادات "الجذرية" المزعومة حتى يتم الوثوق بالخادم.

يمكنك فحص و/أو تغيير قائمة السلطات الموثوقة.غالبًا ما تفعل ذلك لإضافة شهادة لسلطة محلية تعرف أنك تثق بها - مثل الشركة التي تعمل بها أو المدرسة التي تلتحق بها أو غيرها.

يمكن أن تختلف القائمة المصنفة مسبقًا اعتمادًا على العميل الذي تستخدمه.يضمن بائعو شهادات SSL الكبار أن شهادات الجذر الخاصة بهم موجودة في جميع المتصفحات الرئيسية ($$$).

تعد هجمات القرد في الوسط "مستحيلة" ما لم يكن لدى المهاجم المفتاح الخاص لشهادة جذر موثوقة.وبما أن الشهادات المقابلة منتشرة على نطاق واسع، فإن الكشف عن مثل هذا المفتاح الخاص سيكون له آثار خطيرة على أمن التجارة الإلكترونية بشكل عام.ولهذا السبب، فإن هذه المفاتيح الخاصة تخضع لحراسة مشددة للغاية.

إذا كنت مهتمًا أكثر بالتقنية، فمن المحتمل أن يكون هذا الموقع هو ما تريده: http://www.zytrax.com/tech/survival/ssl.html

تحذير:حفرة الارنب تتعمق :).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top