مشاركة عبر


دعم TLS في خدمة توفير جهاز Azure IoT Hub (DPS)

يستخدم DPS بروتوكول أمان طبقة النقل (TLS) لتأمين الاتصالات من أجهزة IoT.

إصدارات بروتوكول TLS الحالية التي تدعمها DPS هي:

  • TLS 1.2

تقييد الاتصالات إلى الحد الأدنى من إصدار TLS

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

هام

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

للقيام بذلك، قم بتوفير مورد DPS جديد لإعداد الخاصية minTlsVersion في 1.2 مواصفات مورد DPS لقالب Azure Resource Manager. يحدد قالب المثال التالي JSON الخاصية minTlsVersion لمثيل DPS جديد.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Devices/ProvisioningServices",
            "apiVersion": "2020-01-01",
            "name": "<provide-a-valid-DPS-resource-name>",
            "location": "<any-region>",
            "properties": {
                "minTlsVersion": "1.2"
            },
            "sku": {
                "name": "S1",
                "capacity": 1
            },
        }     
    ]
}

يمكنك نشر القالب باستخدام أمر Azure CLI التالي.

az deployment group create -g <your resource group name> --template-file template.json

لمزيد من المعلومات حول إنشاء موارد DPS باستخدام قوالب Resource Manager، راجع إعداد DPS باستخدام قالب Azure Resource Manager.

يرفض مورد DPS الذي تم إنشاؤه باستخدام هذا التكوين الأجهزة التي تحاول الاتصال باستخدام إصدارات TLS 1.0 و1.1.

إشعار

minTlsVersion الخاصية للقراءة فقط ولا يمكن تغييرها بمجرد إنشاء مورد DPS. لذلك من الضروري أن تختبر وتتحقق بشكل صحيح من أن جميع أجهزة IoT متوافقة مع TLS 1.2 والشفرات الموصى بها مسبقا.

إشعار

عند تجاوز الفشل، minTlsVersion ستظل خاصية DPS فعالة في المنطقة المقترنة جغرافيا بعد تجاوز الفشل.

تفرض مثيلات DPS استخدام مجموعات التشفير الموصى بها والقدسة التالية:

مجموعات تشفير TLS 1.2 الموصى بها
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

مجموعات التشفير القديمة

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

الخيار رقم 1 (أمان أفضل)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
الخيار رقم 2 (أداء أفضل)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)

دعم TLS المتبادل

عند تكوين تسجيلات DPS لمصادقة X.509، يتم دعم TLS المتبادل (mTLS) من قبل DPS.

شهادة TLS للخادم

أثناء تأكيد اتصال TLS، يقدم DPS شهادات خادم بمفتاح RSA لتوصيل العملاء. تستخدم جميع مثيلات DPS في سحابة Azure العالمية شهادة TLS الصادرة عن شهادة DigiCert Global Root G2.

نوصي أيضا بإضافة شهادات المرجع المصدق الجذر ل Microsoft RSA 2017 إلى أجهزتك لمنع الاضطرابات في حالة إيقاف DigiCert Global Root G2 بشكل غير متوقع. على الرغم من أن عمليات ترحيل المرجع المصدق الجذري نادرة، فمن أجل المرونة في مشهد الأمان الحديث، يجب إعداد سيناريو IoT الخاص بك للحدث غير المحتمل الذي يتعرض فيه المرجع المصدق الجذري للخطر أو أن ترحيل المرجع المصدق الجذري في حالات الطوارئ ضروري.

نوصي بشدة بأن تثق جميع الأجهزة في المراجع المصدقة الجذرية التالية:

  • DigiCert Global G2 root CA
  • Microsoft RSA root CA 2017

للحصول على ارتباطات لتنزيل هذه الشهادات، راجع تفاصيل مرجع شهادات Azure.

شهادة الثقة في SDKs

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

يلخص الجدول التالي إصدارات SDK التي تدعم مخزن الشهادات الموثوق به:

SDK لجهاز Azure IoT الإصدارات المدعومة
C جميع الإصدارات المدعومة حاليا
C#‎ جميع الإصدارات المدعومة حاليا
Java الإصدار 2.x.x والإصدارات الأحدث
Node.js جميع الإصدارات المدعومة حاليا
Python جميع الإصدارات المدعومة حاليا

تثبيت الشهادة

لا ينصح بتثبيت الشهادات وتصفيتها لشهادات خادم TLS (المعروفة أيضا باسم الشهادات الطرفية) والشهادات المتوسطة المقترنة بنقاط نهاية DPS حيث تقوم Microsoft بشكل متكرر بطرح هذه الشهادات مع إشعار ضئيل أو بدون إشعار. إذا كان يجب عليك تثبيت الشهادات الجذر فقط.

استخدام TLS 1.2 في IoT SDKs

استخدم الارتباطات أدناه لتكوين TLS 1.2 والشفرات المسموح بها في SDKs لعميل Azure IoT.

اللغة الإصدارات التي تَدعم TLS 1.2 الوثائق
C العلامة 2019-12-11 أو أحدث الارتباط
Python الإصدار 2.0.0 أو أحـدث الارتباط
C#‎ الإصـدار 1.21.4 أو أحـدث الارتباط
Java الإصـدار 1.19.0 أو أحـدث الارتباط
Node.js الإصـدار 1.12.2 أو أحـدث الارتباط

استخدام TLS 1.2 مع IoT Hub

يمكن تكوين IoT Hub لاستخدام TLS 1.2 عند الاتصال بالأجهزة. لمزيد من المعلومات، راجع فرض بروتوكول أمان طبقة النقل ل IoT Hub.

استخدام TLS 1.2 مع IoT Edge

يمكن تكوين أجهزة IoT Edge لاستخدام TLS 1.2 عند الاتصال ب IoT Hub وDPS. لمزيد من المعلومات، راجع صفحة وثائق IoT Edge.