البرنامج التعليمي - فهم تشفير المفاتيح العامة والبنية التحتية للمفاتيح العامة X.509

يمكنك استخدام شهادات X.509 لمصادقة الأجهزة لـ Azure IoT Hub. الشهادة هي مستند رقمي يحتوي على المفتاح العام للجهاز ويمكن استخدامها للتحقق من أن الجهز هو ما يدعيه. توثق شهادات X.509 وقوائم إبطال الشهادة (CRLs) بواسطة RFC 5280. الشهادات مجرد جزء من البنية التحتية للمفاتيح العامة (PKI) X.509. لفهم البنية التحتية للمفاتيح العامة X.509، يجب أن تفهم خوارزميات التشفير، مفاتيح التشفير، الشهادات، ومسؤولي الشهادة (CAs):

  • الخوارزميات تحدد كيفية تحويل بيانات النص العادي إلى نص مشفر ثم عودتها إلى نص عادي.
  • المفاتيح هي سلاسل بيانات عشوائية أو شبه عشوائية تُستخدم كإدخال للخوارزمية.
  • الشهادات هي مستندات رقمية تحتوي على مفتاح عام للكيان أو تمكنك من تحديد إذا ما كان موضوع الشهادة هو ما يدعيه أم لا.
  • مسؤولي الشهادة يصدقون على أصالة موضوعات الشهادة.

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

قبل مناقشة شهادات X.509 بمزيد من التفصيل واستخدامها لمصادقة جهاز في مركز IoT، سنناقش التشفير الذي تعتمد عليه الشهادات.

التشفير

يُستخدم التشفير لحماية المعلومات والاتصالات. وعادةً ما يتم ذلك باستخدام تقنيات التشفير لتشويش النص العادي (النص المعتاد) وتحويلها إلى نص مشفر (نص مرمز) وإعادتها إلى نص عادي مرة أخرى. يُطلق على عملية التشويش هذه التشفير. ويُطلق على العملية العكسية فك التشفير. يتعلق التشفير بالأهداف التالية:

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

التشفير

تتطلب عملية التشفير خوارزمية ومفتاح. تحدد الخوارزميات كيفية تحويل بيانات من نص عادي إلى نص مشفر ثم عودتها إلى نص عادي. المفتاح هو سلسلة بيانات عشوائية تُستخدم كإدخال في الخوارزمية. يتضمن المفتاح كافة أمان العملية. وبالتالي، يجب تخزين المفتاح بشكلٍ آمن. مع ذلك، تتوفر تفاصيل الخوارزميات الأكثر شيوعاً للعامة.

يوجد نوعان من التشفير. يستخدم التشفير المتماثل نفس المفتاح للتشفير وإلغاء التشفير. يستخدم التشفير غير المتماثل مفاتيح مختلفة ولكنها مرتبطة رياضياً لتنفيذ التشفير وفك التشفير.

تشفير متماثل

يستخدم التشفير المتماثل نفس المفتاح لتشفير النص العادي إلى نص مشفر وفك تشفير النص المشفر إلى نص عادي. تحدد الخوارزمية الطول اللازم للمفتاح، المُعبر عنه بعدد البتات. بعد استخدام المفتاح لتشفير النص العادي، تُرسل الرسالة المشفرة إلى المستلم الذي يفك تشفير النص المشفر عندئذ. يجب إرسال المفتاح المتماثل إلى المستلم بشكلٍ آمن. يُعد إرسال المفتاح أكبر خطر أمني عند استخدام خوارزمية متماثلة.

Symmetric encryption example

تشفير غير متماثل

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

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

Asymmetric encryption example

  1. ينشئ المستخدم زوج مفاتيح عام-خاص ويرسل المفتاح العام إلى مسؤول الشهادة. يحزم مسؤول الشهادة المفتاح العام في شهادة X.509.

  2. يحصل الطرف المرسل على مفتاح المستلم العام من مسؤول الشهادة.

  3. يشفر المرسل بيانات النص العادي باستخدام خوارزمية التشفير. يُستخدم المفتاح العام للمستلم للتشفير.

  4. يقوم المرسل بإرسال النص المشفر إلى المستلم. ليس من الضروري إرسال المفتاح لأن المستلم لديه بالفعل المفتاح الخاص اللازم لفك تشفير النص المشفر.

  5. يفك المستلم تشفير النص المشفر باستخدام الخوارزمية غير المتماثلة المحددة والمفتاح الخاص.

الجمع بين التشفير المتماثل وغير المتماثل

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

Symmetric and assymetric encryption

  1. يسترد المرسل المفتاح العام للمستلم.

  2. ينشئ المرسل مفتاح متماثل ويستخدمه لتشفير البيانات الأصلية.

  3. يستخدم المرسل المفتاح العام للمستلم لتشفير المفتاح المتماثل.

  4. يقوم المرسل بإرسال المفتاح المتماثل المشفر والنص المشفر إلى المستلم المعني.

  5. يستخدم المستلم المفتاح الخاص المطابق للمفتاح العام للمستلم لفك تشفير المفتاح المتماثل للمرسل.

  6. يستخدم المستلم المفتاح المتماثل لفك تشفير النص المشفر.

التوقيع غير المتماثل

يمكن استخدام الخوارزميات غير المتماثلة لحماية البيانات من التعديل وإثبات هوية منشئ البيانات. يظهر الرسم التوضيحي التالي كيفية مساعدة التوقيع غير المتماثل في إثبات هوية المرسل.

Asymmetric signing example

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

  2. يُرسل النص المشفر الناتج إلى المستلم.

  3. يحصل المستلم على المفتاح العام للمنشئ من الدليل.

  4. يشفر المستلم النص المشفر باستخدام المفتاح العام للمنشئ. يثبت النص المشفر الناتج هوية المنشئ لأنه لا يمكن إلا للمنشئ الوصول إلى المفتاح الخاص الذي شفر النص الأصلي في البداية.

التوقيع

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

Signing example

  1. ينشئ المرسل رسالة نص عادي.

  2. يقوم المستخدم بتجزئة رسالة النص العادي لإنشاء خلاصة الرسالة.

  3. يقوم المرسل بتشفير الخلاصة باستخدام مفتاح خاص.

  4. يقوم المرسل بإرسال رسالة النص العادي والخلاصة المشفرة إلى المستلم المعني.

  5. يشفر المستلم الخلاصة باستخدام المفتاح العام للمرسل.

  6. يقوم المستلم بتشغيل نفس خوارزمية التجزئة التي استخدمها المرسل على الرسالة.

  7. يقارن المستلم التوقيع الناتج بالتوقيع المشفر. إذا كانت الخلاصات واحدة، فإن الرسالة لم تتعرض للتعديل أثناء الإرسال.

الخطوات التالية

لمعرفة المزيد عن الحقول المكونة للشهادة، راجع فهم شهادات المفتاح العام X.509.

إذا كنت تعرف الكثير بالفعل عن شهادات X.509، وتريد إنشاء إصدارات اختبار يمكنك استخدامها لمصادقة مركز IoT الخاص بك، فراجع الموضوعات التالية:

إذا كان لديك شهادة هيئة شهادة (CA) أو شهادة هيئة شهادة تابعة وتريد تحميلها إلى مركز IoT Hub الخاص بك وإثبات أنك تمتلكها، فراجع إثبات حيازة شهادة (CA).