دعم 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 (المعروفة باسم شهادات طرفية) والشهادات المتوسطة المرتبطة بنقاط نهاية DPS حيث تقوم Microsoft بشكل متكرر بطرح هذه الشهادات مع إشعار ضئيل أو بدون إشعار. إذا كان يجب عليك تثبيت الشهادات الجذر فقط كما هو موضح في منشور مدونة Azure IoTهذا.

استخدام 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 أو أحـدث الارتباط
NodeJS الإصـدار 1.12.2 أو أحـدث الارتباط

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

يمكن تكوين IoT Hub لاستخدام TLS 1.2 عند الاتصال بالأجهزة. لمزيد مـن المعلومات، راجع إهمال TLS 1.0 و1.1 لـ IoT Hub.

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

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