شهادة مفتاح متماثل

توضح هذه المقالة عملية إثبات الهوية عند استخدام مفاتيح متماثلة مع خدمة تزويد الأجهزة. إثبات المفتاح المتماثل هو أسلوب بسيط لمصادقة جهاز مع مثيل خدمة تزويد الأجهزة. يمثل أسلوب التصديق هذا تجربة "Hello world" للمطورين الجدد في توفير الجهاز، أو الذين ليس لديهم متطلبات أمان صارمة. يعد إثبات الجهاز باستخدام TPM أو شهادة X.509 أكثر أمانا، ويجب استخدامه لمتطلبات أمان أكثر صرامة.

توفر عمليات تسجيل المفاتيح المتماثلة أيضا طريقة للأجهزة القديمة ذات وظائف أمان محدودة للتمهيد إلى السحابة عبر Azure IoT.

إنشاء مِفتاح متماثل

بشكل افتراضي، تنشئ خدمة توفير الأجهزة مفاتيح متماثلة جديدة بطول 64 بايت عند إنشاء عمليات تسجيل جديدة مع تمكين الخيار إنشاء مفاتيح متماثلة تلقائيا .

Screenshot that shows a new individual enrollment with the autogenerate keys option selected.

من الممكن أيضا تزويد مفاتيح متماثلة خاصة بك للتسجيلات عن طريق تعطيل هذا الخيار. يجب أن تكون المفاتيح المتماثلة بتنسيق Base 64 وأن يكون طول المفتاح بين 16 بايت و64 بايت.

عملية إثبات مفصلة

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

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

رموز توقيع الوصول المشترك المميزة لها النّموذج التالي:

SharedAccessSignature sig={signature}&se={expiry}&skn={policyName}&sr={URL-encoded-resourceURI}

ترد أدناه مكونات كل رمز مميز:

قيمة ‏‏الوصف
{signature} سلسلة التوقيع HMAC-SHA256. فيما يتعلق بالتسجيلات الفردية، يتم إنتاج هذا التوقيع باستخدام المفتاح المتماثل (الأساسي أو الثانوي) لتنفيذ التجزئة. فيما يتعلق بمجموعات التسجيل، يتم استخدام مفتاح مشتق من مفتاح مجموعة التسجيل لتنفيذ التجزئة. يتم تنفيذ التجزئة على رسالة من النموذج: URL-encoded-resourceURI + "\n" + expiry. مهم: ينبغي فك ترميز المفتاح من base64 قبل استخدامه لإجراء حساب HMAC-SHA256. يجب أيضا أن تكون نتيجة التوقيع مشفرة لعنوان URL.
{resourceURI} عنوان URI لنقطة نهاية التسجيل التي يمكن الوصول إليها باستخدام هذا الرمز المميز، بدءا من معرف النطاق لمثيل خدمة تزويد الجهاز. على سبيل المثال، {Scope ID}/registrations/{Registration ID}
{expiry} سلاسل UTF8 لعدد الثواني منذ 00:00:00 للتوقيت العالمي المتفق عليه في 1 يناير 1970.
{URL-encoded-resourceURI} ترميز عنوان URL بأحرف صغيرة لمورد URI بالأحرف الصغيرة
{policyName} اسم نهج الوصول المشترك الذي يوضح هذا الرمز المميز. اسم النهج المستخدم عند التزويد مع إثبات المفتاح المتماثل هو التسجيل.

للحصول على أمثلة التعليمات البرمجية التي تنشئ رمز SAS المميز، راجع رموز SAS المميزة.

التسجيلات الفردية باستخدام مفاتيح متماثلة

عندما يشهد الجهاز بتسجيل فردي، يستخدم الجهاز المفتاح المتماثل المحدد في إدخال التسجيل الفردي لإنشاء التوقيع المجزئ رمز SAS المميز.

تسجيلات المجموعة باستخدام مفاتيح متماثلة

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

أولا، يتم تعريف معرف تسجيل فريد لكل جهاز يصادق من خلال مجموعة تسجيل. معرف التسجيل عبارة عن سلسلة غير حساسة لحالة الأحرف (يصل طولها إلى 128 حرفا) من الأحرف الأبجدية الرقمية بالإضافة إلى الأحرف الخاصة الصالحة: - . _ :. يجب أن يكون الحرف الأخير أبجديا رقميا أو شرطة ('-'). يجب أن يكون معرف التسجيل شيئا فريدا يعرف الجهاز. على سبيل المثال، عنوان MAC أو الرقم التسلسلي المتوفر لتعريف جهاز بشكل فريد. في هذه الحالة، يمكن أن يتكون معرف التسجيل من عنوان MAC والرقم التسلسلي على غرار ما يلي:

sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6

بمجرد تحديد معرف التسجيل للجهاز، يتم استخدام المفتاح المتماثل لمجموعة التسجيل لحساب تجزئة HMAC-SHA256 لمعرف التسجيل لإنتاج مفتاح جهاز مشتق. يتم إعطاء بعض الأمثلة على أساليب حوسبة مفتاح الجهاز المشتق في علامات التبويب أدناه.

يوفر ملحق IoT لـ Azure CLI الأمر compute-device-key لإنشاء مفاتيح الأجهزة المشتقة. يمكن استخدام هذا الأمر من أنظمة Windows أو Linux، في PowerShell أو Bash shell.

استبدل قيمة الوسيطة --key بـ Primary Key من مجموعة التسجيل.

استبدل قيمة الوسيطة --registration-id بمعرف التسجيل الخاص بك.

az iot dps enrollment-group compute-device-key --key 8isrFI1sGsIlvvFSSFRiMfCNzv21fjbE/+ah/lSh3lF8e2YG1Te7w1KpZhJFFXJrqYKi9yegxkqIChbqOS9Egw== --registration-id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6

مثال على النتيجة:

"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="

ثم يتم استخدام مفتاح الجهاز الناتج لإنشاء رمز SAS مميز لاستخدامه في التصديق. كل جهاز في مجموعة تسجيل مطلوب للشهادة باستخدام رمز أمان تم إنشاؤه من مفتاح مشتق فريد. لا يمكن استخدام المفتاح المتماثل لمجموعة التسجيل مباشرة للمصادقة.

تثبيت مفتاح الجهاز المشتق

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

ضع في اعتبارك الرسم التخطيطي التالي الذي يعرض جدول مفاتيح الجهاز التي تم إنشاؤها في مصنع عن طريق تجزئة كل معرف تسجيل جهاز باستخدام مفتاح تسجيل المجموعة (K).

Diagram that shows device keys being assigned at a factory.

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

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

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

الآن بعد أن أصبح لديك فهم لإثبات المفتاح المتماثل، راجع المقالات التالية لمعرفة المزيد: