دعم 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.