نموذج أمان Device Update
توفر خدمة Device Update لـ IoT Hub طريقة آمنة لتوزيع تحديثات البرامج الثابتة للجهاز والصور والتطبيقات على أجهزة IoT الخاصة بك. يوفر سير العمل قناة آمنة شاملة بنموذج سلسلة الحراسة الكامل الذي يمكن للجهاز استخدامه لإثبات أن التحديث موثوق به وغير معدل ومتعمد.
تتم حماية كل خطوة في سير عمل Device Update من خلال ميزات الأمان والعمليات المختلفة للتأكد من أن كل خطوة في المسار تنفذ تسليماً آمناً إلى الخطوة التالية. تحدد التعليمات البرمجية المرجعية لعامل Device Update أي طلبات تحديث غير شرعية وتديرها بشكل صحيح. يتحقق العامل المرجعي أيضًا من كل تنزيل للتأكد من أن المحتوى موثوق به وغير معدل ومتعمد.
الملخص
عند استيراد التحديثات إلى مثيل Device Update، تقوم الخدمة بتحميل الملفات الثنائية للتحديث والتحقق منها للتأكد من أنها لم يتم تعديلها أو تبديلها من قبل مستخدم ضار. بمجرد التحقق من ذلك، تنشئ خدمة Device Update بيان تحديث داخلي مع تجزئات الملف من بيان الاستيراد وبيانات التعريف الأخرى. ثم يتم توقيع بيان التحديث هذا بواسطة خدمة Device Update.
بمجرد استيرادها في الخدمة وتخزينها في Azure، يتم تشفير الملفات الثنائية للتحديث وبيانات تعريف العميل المقترنة تلقائيًا في حالة الثبات بواسطة خدمة Azure Storage. لا توفر خدمة Device Update تشفيرًا إضافيًا تلقائيًا، ولكنها تسمح للمطورين بتشفير المحتوى بأنفسهم قبل وصول المحتوى إلى خدمة Device Update.
عند توزيع تحديث على الأجهزة من خدمة Device Update، يتم إرسال رسالة موقعة عبر قناة IoT Hub المحمية إلى الجهاز. يتم التحقق من صحة توقيع الطلب من قبل عامل Device Update للجهاز كموثوق.
يتم تأمين أي تنزيل ثنائي ناتج من خلال التحقق من صحة توقيع بيان التحديث. يحتوي بيان التحديث على تجزئات الملف الثنائي، لذلك بمجرد الوثوق في البيان يثق عامل Device Update في التجزئة ويطابقها مع الثنائيات. بمجرد تنزيل ثنائي التحديث والتحقق منه، يتم تسليمه إلى المثبت على الجهاز.
تفاصيل التنفيذ
للتأكد من أن خدمة Device Update تتدرج إلى أجهزة بسيطة منخفضة الأداء، يستخدم نموذج الأمان مفاتيح غير متماثلة خام وتوقيعات أولية. يستخدمون تنسيقات تستند إلى JSON مثل رموز ويب JSON المميزة ومفاتيح ويب JSON.
تأمين محتوى التحديث عبر بيان التحديث
يتم التحقق من صحة بيان التحديث باستخدام توقيعين. يتم إنشاء التواقيع باستخدام بنية تتكون من مفاتيح التوقيع ومفاتيح الجذر.
يحتوي عامل Device Update على مفاتيح عامة مضمنة تستخدم لجميع الأجهزة المتوافقة مع Device Update. هذه المفاتيح العامة هي مفاتيح الجذر. يتم التحكم في المفاتيح الخاصة المقابلة بواسطة Microsoft.
تقوم Microsoft أيضًا بإنشاء مفاتيح مزدوجة عامة/خاصة غير مضمنة في عامل Device Update أو مخزنة على الجهاز. هذا هو مفتاح التوقيع.
عند استيراد تحديث إلى Device Update لـ IoT Hub، وإنشاء بيان التحديث بواسطة الخدمة، توقع الخدمة البيان باستخدام مفتاح التوقيع، وتتضمن مفتاح التوقيع نفسه، الذي تم توقيعه بواسطة مفتاح جذر. عند إرسال بيان التحديث إلى الجهاز، يتلقى عامل Device Update بيانات التوقيع التالية:
- قيمة التوقيع نفسها.
- الخوارزمية المستخدمة لإنشاء #1.
- معلومات المفتاح العام لمفتاح التوقيع المستخدم لإنشاء رقم 1.
- توقيع مفتاح التوقيع العام في #3.
- معرف المفتاح العام للمفتاح الجذر المستخدم لإنشاء #3.
- الخوارزمية المستخدمة لإنشاء #4.
يستخدم عامل Device Update المعلومات المحددة أعلاه للتحقق من أن توقيع مفتاح التوقيع العام موقع بواسطة المفتاح الجذر. ثم يتحقق عامل Device Update من أن توقيع بيان التحديث موقع بواسطة مفتاح التوقيع. إذا كانت جميع التواقيع صحيحة، فإن بيان التحديث موثوق به من قبل عامل Device Update. نظرًا لأن بيان التحديث يتضمن تجزئات الملف التي تتوافق مع ملفات التحديث نفسها، يمكن أيضا الوثوق بملفات التحديث إذا تطابقت التجزئة.
يتيح وجود مفاتيح الجذر والتوقيع لشركة Microsoft تشغيل مفتاح التوقيع بشكل دوري، وهي أفضل ممارسة للأمان.
توقيع ويب JSON (JWS)
يتم استخدام updateManifestSignature
للتأكد من أن المعلومات الواردة في updateManifest
لم يتم العبث بها. يتم إنتاج updateManifestSignature
باستخدام توقيع ويب JSON مع مفاتيح ويب JSON، ما يسمح بالتحقق من المصدر. التوقيع عبارة عن سلسلة ترميز Base64Url مع ثلاثة أقسام تم تحديدها بواسطة ".". راجع أساليب المساعد jws_util.h لتحليل مفاتيح JSON والرموز المميزة والتحقق منها.
توقيع ويب JSON هو معيار IETF مقترح على نطاق واسع لتوقيع المحتوى باستخدام بنيات البيانات المستندة إلى JSON. إنها طريقة لضمان تكامل البيانات من خلال التحقق من توقيع البيانات. يمكن العثور على مزيد من المعلومات في توقيع ويب JSON (JWS) RFC 7515.
رمز JSON المميز على الويب
JSON Web Tokens هي أسلوب مفتوح للصناعة لتمثيل المطالبات بشكل آمن بين طرفين.
مفاتيح الجذر
يجب أن يحتوي كل جهاز Device Update على مجموعة من مفاتيح الجذر. هذه المفاتيح هي جذر الثقة لجميع تواقيع Device Update. يجب أن يكون أي توقيع متسلسلاً من خلال أحد هذه المفاتيح الجذر ليتم اعتباره شرعياً.
ستتغير مجموعة مفاتيح الجذر بمرور الوقت لأنه من المناسب تدوير مفاتيح التوقيع بشكل دوري لأغراض الأمان. ونتيجة لذلك، سيحتاج برنامج عامل Device Update إلى التحديث بأحدث مجموعة من المفاتيح الجذر على فترات زمنية محددة من قبل فريق Device Update. سيحدث تدوير المفتاح الجذر المخطط له التالي في مايو 2025.
بدءا من الإصدار 1.1.0 من عامل تحديث الجهاز، سيتحقق العامل تلقائيا من أي تغييرات على مفاتيح الجذر في كل مرة يحدث فيها نشر تحديث لهذا الجهاز. التغييرات المحتملة:
- يتوفر مفتاح جذر جديد.
- يتم تعطيل مفتاح جذر موجود ("تم إبطاله" بشكل فعال)، مما يعني أنه لم يعد صالحا لتأسيس الثقة.
إذا كان أي منهما أو كليهما صحيحا، فسينزل عامل Device Update تلقائيا من خدمة DU حزمة مفتاح جذر جديدة. تحتوي هذه الحزمة على المجموعة الكاملة من جميع مفاتيح الجذر، بالإضافة إلى قائمة معطلة تحتوي على معلومات حول مفاتيح الجذر و/أو مفاتيح التوقيع التي لم تعد صالحة. يتم توقيع حزمة المفتاح الجذر نفسها مع كل مفتاح جذر، بحيث يمكن تأسيس الثقة للحزمة من مفاتيح الجذر الأصلية التي هي جزء من عامل DU نفسه، بالإضافة إلى أي مفاتيح جذر تم تنزيلها لاحقا. بمجرد اكتمال عملية التحقق من الصحة، يتم اعتبار أي مفاتيح جذر جديدة موثوقا بها لغرض التحقق من صحة الثقة باستخدام مفتاح التوقيع لبيان تحديث معين، بينما لم تعد أي مفاتيح جذر أو مفاتيح توقيع مدرجة في القائمة المعطلة موثوقا بها لهذا الغرض.
التوقيعات
سيتم استيعاب جميع التوقيعات بواسطة مفتاح توقيع (عام) موقَّع من قِبل أحد المفاتيح الجذر. سيحدد التوقيع مفتاح الجذر الذي تم استخدامه لتوقيع مفتاح التوقيع.
يجب على عامل Device Update التحقق من صحة التوقيعات عن طريق التحقق أولاً من أن توقيع مفتاح التوقيع (العام) مناسبًا وصحيحًا وموقعًا من قبل أحد المفاتيح الجذر المعتمدة. بمجرد التحقق من صحة مفتاح التوقيع بنجاح، يمكن التحقق من صحة التوقيع نفسه باستخدام المفتاح العام للتوقيع الموثوق به الآن.
يتم تدوير مفاتيح التوقيع على إيقاع أسرع بكثير من مفاتيح الجذر، لذلك توقع الرسائل الموقعة بواسطة مفاتيح توقيع مختلفة.
تتم إدارة إبطال مفتاح التوقيع بواسطة خدمة Device Update، لذلك يجب ألا يحاول المستخدمون تخزين مفاتيح التوقيع مؤقتًا. استخدم دائماً مفتاح التوقيع المصاحب للتوقيع.
تأمين الجهاز
من المهم التأكد من أن أصول الأمان المتعلقة بـ Device Update مؤمنة ومحمية بشكل صحيح على جهازك. يجب حماية الأصول، مثل مفاتيح الجذر من التعديل. هناك طرق مختلفة لحماية المفاتيح الجذر، مثل استخدام أجهزة الأمان (TPM أو SGX أو HSM أو أجهزة الأمان الأخرى) أو الترميز المضمن لها في عامل Device Update كما هو الحال اليوم في التنفيذ المرجعي. يتطلب الأخير أن يتم توقيع رمز عامل Device Update رقميًا وتمكين دعم تكامل التعليمات البرمجية للنظام للحماية من التعديل الضار للتعليمة البرمجية للعامل.
قد يكون هناك ما يبرر تدابير أمنية إضافية، مثل ضمان تنفيذ التسليم من مكون إلى مكون بطريقة آمنة. على سبيل المثال، تسجيل حساب معزول معين لتشغيل المكونات المختلفة، والحد من الاتصالات المستندة إلى الشبكة (على سبيل المثال، استدعاءات واجهة برمجة تطبيقات REST) إلى المضيف المحلي فقط.
الخطوات التالية
تعرف على كيفية استخدام Device Update للتحكم في الوصول المستند إلى الدور في Azure