في الوحدة السابقة،
رأينا حول مصادقة المستخدم في الكثير من التفاصيل.
لقد رأينا كيف يرسل المستخدم بيانات الاعتماد الخاصة به إلى خادمه من جانب العميل
إما في رأس
رسالة الطلب أو نص رسالة الطلب ثم بعد ذلك،
عندما يتم مصادقتها،
سيتضمن عميله إما ملف تعريف الارتباط أو
الرمز المميز في رأس رسالة الطلب التي تنتقل من العميل إلى الخادم.
أنا متأكد من أن البعض منكم كان يتخبط حول
حقيقة أننا كنا نتواصل في قناة غير آمنة،
وهذا يعني أن أي شخص يجلس في الوسط يمكنه
الاستماع إلى رسائله التي تسير بين العميل
والخادم سيكون قادرا بسهولة على التقاط
بيانات الاعتماد ومن ثم انتحال شخصية العميل الحقيقي.
وبطبيعة الحال، في هذه المرحلة،
كان تركيزهم أكثر على ترتيب
اتصال العميل والخادم مع مصادقة العميل على جانب الخادم.
ولكن في أي وقت تحتاج إلى استخدام مصادقة المستخدم
، أولا، في شكل، على سبيل المثال،
توفير بيانات الاعتماد لمصادقة نفسك وبعد ذلك،
مصادقة نفسك من خلال تضمين إما ملف تعريف الارتباط أو
الرمز المميز في رأس رسالة الطلب،
يجب أن تقوم بذلك عبر قناة آمنة.
يجب ألا تتصل أبدًا عبر قناة غير آمنة،
مما يعني أنه يجب عدم استخدام HTTP ثم
تضمين بيانات الاعتماد هذه في رأس رسائل الطلب أو نصها.
بدلاً من ذلك، يجب أن تستخدم إصدارًا آمنًا من بروتوكول HTTP أو HTTPS.
دعونا نتحدث بإيجاز عن HTTPS في هذه المحاضرة.
على طول الطريق، سأعطيك مقدمة لمدة خمس دقائق للتشفير والأمن.
من الواضح أن التشفير والأمن هو موضوع كبير جدا في حد ذاته.
سأعرض عليك فقط الأساسيات العارية التي تحتاج إلى
فهمها لمعرفة كيفية عمل HTTPS بالفعل.
مع هذه الخلفية، دعونا المضي قدما لفهم حول التشفير ثم إلى
بروتوكول HTTPS وكيف يمكنك تكوين خادم لاستخدام
بروتوكول HTTPS ثم العميل للاتصال بالخادم باستخدام بروتوكول HTTPS،
وبالتالي، يمكن أن يكون الاتصال بين العميل والخادم بطريقة آمنة
عن طريق تشفير البيانات التي يتم إرسالها بين العميل وجانب الخادم.
عندما تغامر في مجال التشفير والأمن،
سوف تسمع في كثير من الأحيان الناس يتحدثون عن تشفير المفتاح المتماثل.
الآن، ماذا يتضمن التشفير؟
إذا كنت بحاجة إلى إرسال رسالة عبر قناة إلى مستخدم آخر،
فأنت تريد أن تكون
قادرًا على تشفير الرسالة بحيث يتمكن المتلقي فقط من
فك تشفير الرسالة والحصول
على المعلومات التي تحاول إرسالها إلى المتلقي.
لذلك كل من المرسل والمتلقي يجب أن نفهم على إنشاء بين اثنين
منهم كيفية عملية التشفير هذه وكيف سيتم فك التشفير للعمل.
لكي يعمل هذا،
يعمل أي تشفير وفك تشفير على أساس تبادل المفاتيح السرية.
لذلك في تشفير المفتاح المتماثل،
سيشارك كل من المرسل والمتلقي مفتاحًا سريًا بين الموقعين،
وهذا المفتاح السري معروف فقط للمرسل وإلى جانب المتلقي.
لذلك عندما يحتاج المرسل إلى إرسال الرسالة،
سيقوم المرسل بتشفير هذه الرسالة باستخدام خوارزمية التشفير،
والتي تستخدم المفتاح السري كإدخال آخر لهذه الخوارزمية.
وبمجرد تمرير هذه الرسالة من خلال خوارزمية التشفير هذه
، سيتم إنشاء رسالة مشفرة.
الآن، سيتم إرسال هذه الرسالة المشفرة إلى القناة عبر جانب جهاز الاستقبال.
إذا كان لديك مستخدم ضار تابع لجهة خارجية
يجلس بين والاستماع والتقاط هذه الرسالة المشفرة،
فسيواجهون صعوبة في فك تشفير
هذه الرسالة لأنه لفك تشفير رسالة مشفرة،
لا تزال بحاجة إلى المفتاح السري.
الآن، على جانب المتلقي،
عندما يتم تلقي الرسالة المشفرة،
ثم سيتم تطبيق المتلقي وخوارزمية فك التشفير،
والتي تأخذ أيضا كإدخال،
نفس المفتاح السري الذي تم استخدامه على جانب المرسل لتشفير الرسالة.
لذلك عند فك التشفير، سيتم استرداد الرسالة الأصلية
ويمكن معالجتها على جانب المتلقي.
الآن، إذا أراد طرف ثالث ضار فك تشفير هذه الرسالة المشفرة،
فسيواجهون معركة شاقة لأن
عملية التشفير باستخدام المفتاح السري ستحول الرسالة ويمكن،
بدورها، تشفير الرسالة.
دون امتلاك المفتاح السري،
سيكون بجانب المستحيل فك تشفير الرسالة المشفرة.
حسنا، هذا هو تمتد الحصول على بعيدا قليلا.
سيكون من الصعب بشكل غير عادي فك تشفير الرسالة المشفرة.
إذا كنت تستخدم تقنيات القوة الغاشمة، ثم في
نهاية المطاف، سوف ينتهي بك الأمر فك تشفير الرسالة المشفرة.
لكنه سيستغرق وقتا طويلا ويتطلب الكثير من القوة الحسابية.
لن يكون من المفيد الجهد
للمستخدم الخبيث طرف ثالث لمحاولة فك تشفير الرسالة المشفرة.
لذلك أنت تجعل من الصعب حقا لشخص ما
لفك تشفير الرسالة إذا لم يكن يملك المفتاح السري.
الآن، بما أن المفتاح السري معروف فقط للمرسل والمتلقي،
يمكن للطرفين النهائيين، المرسل والمتلقي، التواصل مع ضمان
أنه في الرسالة المشفرة من
جانب المرسل لا يمكن فك تشفيرها إلا من جانب المتلقي.
إذن هذه هي الطريقة التي يعمل بها تشفير المفتاح المتماثل.
حقيقة أن لديك نفس المفتاح السري الذي يتم مشاركته بين
المرسل والمتلقي يعني أن
تضمين عملية فك التشفير استخدم نفس المفتاح السري،
وبالتالي، تشفير المفتاح المتماثل.
وبطبيعة الحال، مع تشفير المفتاح المتماثل،
واحدة من القضايا هي أن كل من المرسل
والمتلقي يحتاج إلى الوصول إلى نفس المفتاح السري.
الآن، إذا كان المرسل والمتلقي يتواصلان عبر قناة غير آمنة،
سيكون من الصعب على كلا الجانبين التوصل إلى تفاهم
حول المفتاح السري نفسه دون الكشف عنه للآخرين.
إذن هذا هو المكان الذي تكون فيه خوارزمية أخرى تسمى تشفير المفتاح العام مفيدة للغاية.
كيف يعمل تشفير المفتاح العمومي؟
الآن، في تشفير المفتاح العام،
الفكرة هي أن لديك مفتاحين مختلفين.
لديك مفتاح عام ومفتاح خاص
الآن، يمكن توزيع المفتاح العمومي على نطاق واسع على أي شخص تريده.
لذلك عندما يريد شخص ما إرسال رسالة إليك،
سيستخدم مفتاحك العام لتشفير الرسالة.
حتى إذا كان المرسل هنا يريد إرسال الرسالة إلى المتلقي،
ثم المرسل سوف تستخدم المفتاح العام قبالة المتلقي
لتشفير الرسالة على جانب المرسل باستخدام خوارزمية التشفير.
الآن، بمجرد إرسال الرسالة المشفرة
عبر القناة غير الآمنة إلى جانب المتلقي،
سيستخدم المتلقي المفتاح الخاص
الذي يعرفه المتلقي فقط من أجل فك تشفيره.
الآن، لكي يعمل تشفير المفتاح العمومي كما رأينا،
يمكن توزيع المفتاح العمومي على نطاق واسع دون أي قلق.
ولكن بما أن المفتاح الخاص معروف فقط إلى جانب المتلقي،
فإن المتلقي فقط سوف تكون قادرة على فك
تشفير الرسالة، ومرة أخرى، فإن المتسلل طرف الثالث الذي يلتقط هذه الرسالة المشفرة يجد أنه من الصعب للغاية فك تشفير الرسالة.
الآن، بالطبع في تشفير المفتاح العمومي، المفتاح
العام والخاص هما مفتاحان مختلفان.
الآن، ثم سؤالك التالي الواضح هو لماذا
لا تستخدم ببساطة تشفير المفتاح العام للتشفير.
المشكلة هي أن استخدام
تشفير المفتاح العمومي للتشفير وفك التشفير عملية مكلفة،
ولهذا السبب لا نستخدم تشفير المفتاح العمومي لاتصالاتهم بالكامل.
بدلاً من ذلك، سيتم استخدام تشفير المفتاح العمومي
بشكل أساسي للمرسل والمتلقي
للاتفاق على المفتاح السري المشترك الذي سيستخدمه الاثنان.
سنرى لاحقًا كيف
يمكن استخدام تشفير المفتاح العمومي لإنشاء المفتاح السري المشترك
بين المرسل والمتلقي ومن ثم
استخدام تشفير المفتاح المتماثل لمزيد من الاتصال.
أحد البروتوكولات التي تستخدم هذا الأسلوب هو
طبقة مآخذ التوصيل الآمنة وكذلك بروتوكولات أمان طبقة النقل
وSSL وTLS باختصار.
مرات عديدة عندما تقرأ الوثائق،
قد تسمع عن SSL و TLS.
تتيح بروتوكولات التشفير هذه الاتصال الآمن
بين المرسل والمتلقي عبر شبكة غير آمنة مثل الإنترنت.
سيقوم المرسل والمتلقي بالاتصال عبر هذا الإنترنت باستخدام رسائل مشفرة،
والتي يمكن فقط للمرسل والمتلقي فك تشفيرها.
وهذا النهج، إما SSL أو TLS،
يستخدم مزيج من التشفير بالمفتاح العام جنبا إلى جنب مع تشفير المفتاح المتماثل.
عمليتهم الدقيقة للقيام بذلك،
وسوف أشرح في الشريحة التالية.
بالإضافة إلى ذلك، باستخدام SSL أو TLS،
نحاول الحفاظ على شيئين مختلفين.
نحن، أولا، نحاول الحفاظ على خصوصية
الاتصال بين المرسل والمتلقي بحيث
لا يمكن لأي طرف ثالث خبيث استخراج الرسالة من الرسالة المشفرة.
ثانيا، نحن نحاول أيضا الحفاظ على النزاهة،
وهذا يعني أنه عندما يرسل المرسل رسالة،
والمتلقي سوف تكون قادرة على التأكد من أن الرسالة لم يتم التلاعب بها.
لذلك كل من الأمن والحفاظ على النزاهة مهم جدا في هذه الحالة.
لذا يجب الحفاظ على كل من الخصوصية والنزاهة بواسطة
بروتوكول الاتصال الآمن هذا الذي نقوم
ببنائه للتبادل بين المرسل والمتلقي.
دعونا نتحدث بإيجاز عن كيفية عمل SSL أو TLS بالفعل.
ويتم ذلك من خلال عملية المصافحة التي أظهرتها في هذا الرسم البياني هنا.
عندما يريد عميل الاتصال بالخادم،
يرسل العميل رسالة إلى الخادم،
مع تحديد أن العميل يريد الاتصال بالخادم بشكل آمن.
عند هذه النقطة، سيرسل الملقم الشهادة إلى العميل،
الذي يحتوي على مفتاح عمومي،
الذي تم اعتماده من قبل
المرجع المصدق على أنه ينتمي إلى هذا الملقم معين.
وبهذه الطريقة، عندما يتلقى العميل
هذا المفتاح العام بالإضافة إلى الشهادة من قبل المرجع المصدق،
سيتمكن العميل من التحقق من بيانات اعتماد الخادم.
لذلك، يحتاج العميل إلى إثبات أنه يتحدث حقا إلى الخادم،
وأنه يعتزم التواصل مع.
حتى في هذه المرحلة،
عندما يتحقق العميل من بيانات اعتماد الخادم،
العميل الآن لديه حق الوصول إلى المفتاح العمومي للخادم.
بمجرد أن يحصل العميل على المفتاح العام للخادم،
سيقوم العميل بإنشاء ما يسمى بسر ما قبل ماستر.
هذا السر قبل ماستر هو شيء أن كل من العميل
والخادم سوف تستخدم لتوليد ما يسمى مفتاح جلسة العمل.
لذلك، يقوم العميل بإنشاء سر ما قبل ماستر،
ثم يقوم العميل بتشفير هذا السر باستخدام المفتاح العام للخادم،
ثم يرسل السر عبر إلى الخادم.
الآن، تذكر أنه بمجرد تشفير السر باستخدام المفتاح العمومي،
لن يتمكن أحد بخلاف الخادم من
استخراج المعلومات من الرسالة المشفرة.
لذلك، عندما يتلقى الخادم هذه الرسالة المشفرة،
يستخرج الخادم سر ما قبل الرئيسي من هذه الرسالة.
الآن، يمتلك كل من العميل والخادم نفس سر ما قبل الماجستير.
عند هذه النقطة، سيستخدم كل من العميل والخادم
نفس مجموعة الخطوات التي تبدأ بسر ما قبل ماستر،
وبنفس مجموعة القيم،
التي ستولد مفتاحًا يسمى مفتاح الجلسة.
الآن، عندما يتم إنشاء مفتاح جلسة العمل على جانب العملاء وجانب الخادم،
سيكون بالضبط نفس مفتاح الجلسة،
لأن كلاهما سيتبع نفس العملية بالضبط لإنشاء مفتاح الجلسة.
لذا، عند هذه النقطة،
يمتلك كل من العميل والخادم الآن مفتاحًا سريًا هو نفسه على كلا الموقعين.
لذلك،
يمكن لجميع الاتصالات اللاحقة بين الخادم والعميل، ثم المضي قدما باستخدام التشفير المتماثل.
لذلك، عندما يحتاج العميل إلى التواصل مع الخادم،
سيقوم العميل بتشفير البيانات باستخدام مفتاح الجلسة السري،
ومن ثم إرسال البيانات الخاصة بهم.
وبالمثل، عندما يحتاج الخادم إلى التواصل مع العميل،
من الواضح أن الخادم سيستخدم
نفس مفتاح الجلسة لتشفير البيانات ثم إرساله إلى العميل.
الآن، بما أن العميل يمتلك نفس مفتاح الجلسة،
سيتمكن العميل من فك تشفير الرسالة واستخراج الرسالة غير المشفرة.
باستخدام هذا
الإجراء، تضمن العميل والخادم أن الاتصال بينهما خاص.
أيضا، يمكننا التأكد من أنه لا يمكن لأي طرف ثالث ضار
اعتراض الرسالة والتسبب في أي تغييرات على الرسالة.
لذلك، يتم الحفاظ على سلامة الرسالة أيضا،
ويتم
الحفاظ على خصوصية الاتصال بين العميل والخادم أيضا.
لذا، فإن هذه المناقشة الكاملة التي قدمتها لكم خلال الشرائح القليلة الماضية،
هي باختصار،
كيف يمكن ضمان التواصل الآمن بين العميل والخادم
باستخدام تشفير المفتاح المتماثل وتشفير المفتاح العام.
الآن، من الواضح أن هناك أكثر من ذلك بكثير مما شرحته هنا،
ولكن هذا الفهم لكيفية عمل التشفير
يكفي بما فيه الكفاية بالنسبة لك لفهم كيفية عمل العملية برمتها.
الآن، إذا كنت مهتما في معرفة المزيد عن هذا،
مصدر واحد جيد لمعرفة بروتوكولات التشفير هو كتاب جيد جدا
من قبل جيم كروزون كيث روس يسمى شبكات الكمبيوتر.
يحتوي هذا الكتاب على فصل سهل الفهم
حول التشفير والأمن كما هو مطبق على اتصالات الشبكة.
الآن بعد أن أنشأنا عملية
القدرة على التواصل بشكل آمن بين العميل والخادم،
دعونا ننظر في كيفية استفادة الإنترنت نفسه من هذا،
للاتصال بين العميل والخادم باستخدام HTTP.
الآن، هذا هو المكان الذي يأتي بروتوكول HTTPS في الصورة.
كما تفهم بالفعل عن الإنترنت،
فإن الإنترنت عبارة عن بنية ذات طبقات،
حيث يشكل IP و TCP الشبكة،
وطبقة النقل التي تعمل فوق الشبكة الأساسية.
الآن، أعلى طبقة النقل،
لديك طبقة مأخذ التوصيل الآمنة أو بطانة أمان طبقة النقل
كطبقة رقيقة أعلى TCP مما
يضمن الاتصال الآمن بين العميل والخادم.
وعلى رأسها يمكن تشغيل HTTP.
لذا، يتضمن HTTP أساسًا HTTP بالإضافة إلى استخدام التشفير
وفك التشفير المدعوم من خلال SSL و TLS.
من الواضح، حتى بالنسبة لبروتوكول HTTPS،
هناك الكثير من التفاصيل.
ولكن من منظور تنفيذ جانب الخادم،
ما فهمناه هنا يكفي لفهم كيفية
تكوين خادم لاستخدام اتصال آمن بين العميل والخادم.
الآن، بالطبع السؤال الأول الذي سيأتي إلى ذهنك هو،
أن الخادم يحتاج إلى مفتاح عام ومفتاح خاص.
بالنسبة إلى تشفير المفتاح العام،
كيف يقوم الخادم بإنشاء هذا؟
إذا كنت تقوم بتشغيل خادم إنتاج حقيقي في
بيئتك وتوفير خدمة للمستخدمين للوصول إلى الخادم الخاص بك،
فمن الواضح أنك تحتاج إلى الذهاب من خلال عملية الاعتماد.
هذا هو المكان الذي سوف تقترب فيه من مرجع مصدق، على سبيل المثال،
شركات مثل VeriSign وThawte Corporation
، وهي سلطات مصدقة عامة.
هناك عدد قليل من أكثر في جميع أنحاء العالم.
لذا، ستقوم بالاقتراب منها،
وستقوم هذه المراجع المصدقة بمصادقة بيانات الاعتماد الخاصة بك،
وستضمن أنك الشخص الذي تدعي أنه،
ومن ثم ستقوم بالتحقق من بيانات الاعتماد الخاصة بك،
ثم عند
هذه النقطة، ستصدر لك مفتاحًا عامًا ومفتاحًا خاصًا للاستخدام على موقع الخادم الخاص بك.
لذلك بمجرد إصدار المفتاح العمومي والمفتاح الخاص،
سيتم اعتماد المفتاح العمومي من قبل المرجع المصدق،
ومن ثم سيحمل المفتاح العمومي أيضًا،
بالإضافة إلى ذلك، الشهادة.
لذلك، هذه هي الشهادة التي سترسلها إلى موقع العميل.
نظرًا لأن العملاء يمكنهم إثبات
صحة هذه المراجع المصدقة،
إذا نظرتم إلى أي متصفح ستلاحظون أن معظم المتصفحات
ستحتوي على الشهادات لجميع هذه المراجع المصدقة المنشأة
بالفعل المضمنة فيها.
لذلك سيتمكنون من إثبات بيانات الاعتماد الخاصة بك،
أو بالأحرى، سيكونون قادرين على إثبات أن المفتاح الخاص ينتمي إليك،
من خلال الحصول على شهادتك ثم التحقق من
شهادتك أو التحقق منها مع العلم أنه تم توقيعها
من قبل أحد هذه الشهادات المنشأة السلطات.
عند هذه العملية، سيتمكن العميل من إثبات أصالة الخاص بك.
الآن، في هذه الدورة،
نريد فقط أن نفهم كيف يعمل كل HTTPS،
ونريد أيضًا أن يكون لديك طريقة بسيطة
لإعداد الخادم باستخدام مفتاح عام ومفتاح خاص.
نظرًا لأننا نقوم بذلك كممارسة لفهم HTTPS،
يمكننا استخدام أداة تسمى SSL المفتوحة المتوفرة بالفعل على
أجهزة الكمبيوتر الخاصة بنا لإنشاء ما يسمى بالشهادة الموقعة ذاتيًا.
المفاتيح الموقعة ذاتيًا غير مقبولة في العمل الخارجي.
ولكن بما أننا نعلم أننا نستخدمها فقط لأغراض الاختبار لدينا،
يمكننا استخدام الشهادات الموقعة ذاتيا،
ببساطة لفهم عملية
الاتصال الآمن بين العميل والخادم.
لذا، كيف نستخدم طبقة المقابس الآمنة المفتوحة؟
حتى الآن باستخدام SSL مفتوحة يمكنك إنشاء مفاتيح،
وذلك باستخدام ثلاثة أوامر أن تظهر لك هنا.
يمكنك تنفيذ هذه الأوامر الثلاثة في هذا التسلسل،
كما هو محدد هنا والتي سوف تساعدك
على إنشاء مفتاح خاص وشهادة التي يمكنك توفيرها من
خادم HTTPS للعملاء لتحميل
وبالتالي الحصول على المفتاح العام للاتصال الآمن.
إذن هذه هي العملية التي سنقوم بها في ممارستنا التي تتبع
هذه المحاضرة لإنشاء وإصدار خدمة DPS. لذا فإن الخطوات الثلاث التي نقوم بها هي
، أولاً، سنقوم بإنشاء المفتاح الخاص باستخدام الأمر الأول.
ثم بعد ذلك سنقوم بإنشاء cert.csr والتي سيتم استخدامها بعد
ذلك بالنسبة لنا لإنشاء شهادة
يمكن توزيعها على جانب العميل بواسطة الأمر الثالث الموضح هناك.
لذلك سوف تمكنك هذه الخطوات من إنشاء مفتاح
خاص وأيضا شهادة المقابلة التي يمكن إصدارها للعميل.
مرة أخرى للتأكيد، إذا كنت تقوم بتشغيل خادم إنتاج،
فأنت بحاجة إلى الحصول على مفتاح عام، زوج مفتاح خاص،
من أحد المراجع المصدقة مثل VeriSign و Thawte.
كيف تعمل العقدة نفسها في مساعدتنا في إعداد HTTPS؟
الآن هذا هو المكان الذي أراجع فيه بإيجاز الشفرة التي
سنستخدمها في التمرين التالي من أجل إعداد خوادمنا.
تحتوي العقدة نفسها على HTTPS كوحدة نمطية أساسية داخل العقدة.
لذلك سنقوم بإعداد HTTPS من خلال طلب هذه الوحدة الأساسية.
وسوف نستخدم أيضا وحدة نظام الملفات الأساسية لأن
المفتاح الخاص والشهادة التي نولدها سيتم تخزينها على جانب الخادم لدينا،
وسوف تكون مطلوبة من قبل
التطبيق السريع الخاص بك من أجل إعداد الخادم الآمن الخاص بك.
حتى هنا سوف نستخدم نظام الملفات مع
طريقة ReadFileSync للقراءة في المفتاح الخاص
والشهادة من الملفات التي
نولدها باستخدام الخطوات التي رأيناها في الفتحة السابقة.
لذلك بمجرد أن تكون هاتان القيمتان جاهزتين،
يتم إعداد خيارات خادم HTTPS
الخاص بك ومن ثم يمكنك تكوين الخادم الآمن لتوفير اتصال يستند إلى HTTPS من موقع الخادم.
الآن بعد أن أصبح لديك فهم سريع لكيفية عمل HTTPS الخاص بك،
وكيفية الاستفادة من استخدام كل من تشفير المفتاح العام
وتشفير المفتاح المتماثل
لضمان الاتصال الآمن بين العميل والخادم.
دعونا ننتقل إلى التمرين لتكوين
الخادم السريع لدينا بالفعل الذي قمنا ببنائه حتى الآن لاستخدام بروتوكول HTTPS.