مشاركة عبر


دعم بروتوكول أمان طبقة النقل (TLS) فـي IoT Hub

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

إشعار

سينهي Azure IoT Hub دعم TLS 1.0 و1.1 وفقا لإعلان خدمة Azure العريضة لإيقاف TLS 1.0 و1.1 في 31 أغسطس 2025.

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

لمعرفة إصدار TLS الذي تعمل به أجهزة IoT Hub، يرجى الرجوع إلى دليل نهاية الدعم TLS 1.0 و1.1.

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

تضمن مصادقة TLS المتبادلة مصادقة العميل لشهادة الخادم (IoT Hub) ومصادقة الخادم (IoT Hub) للعميل باستخدام شهادة العميل X.509 أو بصمة الإبهام X.509. يقوم IoT Hub بإجراء التخويل بعد اكتمال المصادقة .

بالنسبة لبروتوكولات Advanced Message Queuing Protocol (AMQP) و Message Queuing Telemetry Transport (MQTT)، يطلب IoT Hub شهادة عميل في تأكيد اتصال TLS الأولي. إذا تم توفير واحد، يقوم IoT Hub بمصادقة شهادة العميل، ويصادق العميل على شهادة IoT Hub. تسمى هذه العملية مصادقة TLS المتبادلة. عندما يتلقى IoT Hub حزمة اتصال MQTT أو يفتح ارتباط AMQP، يقوم IoT Hub بإجراء تخويل للعميل الطالب ويحدد ما إذا كان العميل يتطلب مصادقة X.509. إذا اكتملت مصادقة TLS المتبادلة وتم تفويض العميل للاتصال كجهاز، يسمح بذلك. ومع ذلك، إذا كان العميل يتطلب مصادقة X.509 ولم يتم إكمال مصادقة العميل أثناء تأكيد اتصال TLS، فإن IoT Hub يرفض الاتصال.

بالنسبة لبروتوكول HTTP، عندما يقدم العميل طلبه الأول، يتحقق IoT Hub مما إذا كان العميل يتطلب مصادقة X.509 وإذا اكتملت مصادقة العميل، يقوم IoT Hub بإجراء التخويل. إذا لم تكتمل مصادقة العميل، فإن IoT Hub يرفض الاتصال

بعد تأكيد اتصال TLS ناجح، يمكن لـ IoT Hub مصُادقة جهاز باستخدام مفتاح متماثل أو شهادة X.509. للمصادقة المستندة إلى الشهادة، يتحقق IoT Hub من صحة الشهادة مقابل بصمة الإبهام أو المرجع المصدق (CA) الذي توفره. لمعرفة المزيد، راجع مصادقة الهويات باستخدام شهادات X.509.

شهادة TLS لـخادم IoT Hub

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

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

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

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

عمليات ترحيل المرجع المصدق الجذري نادرة. يجب عليك دائما إعداد حل IoT الخاص بك للحدث غير المحتمل الذي يتعرض فيه المرجع المصدق الجذري للخطر وترحيل المرجع المصدق الجذري في حالات الطوارئ ضروري.

مجموعات التشفير

للامتثال لنهج أمان Azure للاتصال الآمن، يدعم IoT Hub مجموعات تشفير RSA وECDSA التالية ل TLS 1.2:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

يسمح حاليا بأجنحة التشفير التالية في IoT Hub. ومع ذلك، لم تعد إرشادات أمان Azure توصي باستخدام مجموعات التشفير هذه.

مجموعات التشفير دعم إصدار TLS
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS 1.2
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS 1.2
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS 1.2
TLS_RSA_WITH_AES_256_GCM_SHA384 TLS 1.2
TLS_RSA_WITH_AES_128_GCM_SHA256 TLS 1.2
TLS_RSA_WITH_AES_256_CBC_SHA256 TLS 1.2
TLS_RSA_WITH_AES_128_CBC_SHA256 TLS 1.2
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS 1.0/1.1/1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_AES_128_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2

يُمكن للعميل اقتراح قائمة مجموعات تشفير أعلى لاستخدامها أثناء ClientHello. ومع ذلك، قد لا يكون بعضها مدعومًا من قبل IoT Hub (على سبيل المثال، ECDHE-ECDSA-AES256-GCM-SHA384). في هذه الحالة، يحاول IoT Hub اتباع تفضيل العميل، ولكن في النهاية التفاوض على مجموعة التشفير مع ServerHello.

فرض IoT Hub لاستخدام TLS 1.2 ومجموعات التشفير القوية

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

تتوفر هذه الميزة حاليا فقط في المناطق التالية وأثناء إنشاء IoT Hub (سيتم دعم مناطق Azure الأخرى في 2025):

  • شرق الولايات المتحدة
  • South Central US
  • West US 2
  • US Gov – أريزونا
  • US Gov - فيرجينيا (دعم TLS 1.0/1.1 غير متوفر فـي هذه المنطقة - يجب تمكين إنفاذ TLS 1.2 أو فشل إنشاء مركز IoT)

لتمكين TLS 1.2 وتطبيق مجموعات التشفير القوية في مدخل Microsoft Azure:

  1. التحديق باستخدام معالج إنشاء IoT Hub في مدخل Microsoft Azure

  2. اختر منطقة مـن واحدة في القائمة أعلاه.

  3. ضمن Management -> Advanced -> Transport Layer Security (TLS) -> الـحد الأدنى لإصدار TLS، حدد 1.2. يظهر هذا الإعداد فقط لمركز IoT الذي تم إنشاؤه فـي المنطقة المدعومة.

    لقطة شاشة توضح كيفية تشغيل فرض TLS 1.2 أثناء إنشاء مركز IoT.

  4. انقر فوق "Create"

  5. توصيل أجهزة IoT الخاصة بك ب IoT Hub هذا

لاستخدام قالب ARM للإنشاء، قم بتوفير IoT Hub جديد فـي أي من المناطق المدعومة وتعيين minTlsVersionالخاصية إلى 1.2 في مواصفات المورد:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Devices/IotHubs",
            "apiVersion": "2020-01-01",
            "name": "<provide-a-valid-resource-name>",
            "location": "<any-of-supported-regions-below>",
            "properties": {
                "minTlsVersion": "1.2"
            },
            "sku": {
                "name": "<your-hubs-SKU-name>",
                "tier": "<your-hubs-SKU-tier>",
                "capacity": 1
            }
        }
    ]
}

يرفض مورد IoT Hub الذي تم إنشاؤه باستخدام هذا التكوين عملاء الجهاز والخدمة الذين يحاولون الاتصال باستخدام إصدارات TLS 1.0 و1.1. وبالمثل، يتم رفض تأكيد اتصال TLS إذا ClientHello لم تسرد الرسالة أيا من الشفرات الموصى بها.

إشعار

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

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

التحقق من إصدارات TLS لأجهزة IoT Hub

يمكن أن يوفر Azure IoT Hub سجلات تشخيصية لعدة فئات يمكن تحليلها باستخدام سجلات Azure Monitor. في سجل الاتصالات، يمكنك العثور على إصدار TLS لأجهزة IoT Hub.

لعرض هذه السجلات، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، انتقل إلى مركز IoT.
  2. في قائمة الموارد ضمن Monitoring، حدد Diagnostic settings. تأكد من وضع علامة اختيار "اتصالات" على إعدادات التشخيص.
  3. في قائمة الموارد ضمن Monitoring، حدد Logs.
  4. أدخل الاستعلام التالي:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
| where Category == "Connections"
| where OperationName == "deviceConnect"
| extend props_json = parse_json(properties_s)
| project DeviceId = props_json.deviceId, TLSVersion = props_json.tlsVersion
  1. مثال على نتائج الاستعلام يبدو كما يلي: رسم تخطيطي يوضح الاستعلام عن إصدار TLS للجهاز.
  2. ملاحظة: استعلام إصدار TLS غير متوفر للأجهزة التي تستخدم اتصالات HTTPS.

تكوين TLS لـ SDK وIoT Edge

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

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

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

شهادة TLS لخادم منحنى القطع الناقص (ECC)

أثناء تقديم أمان مشابه لشهادات RSA، يستخدم التحقق من صحة شهادة ECC (مع مجموعات التشفير ECC فقط) ما يصل إلى 40٪ أقل مـن الحوسبة والذاكرة وعرض النطاق الترددي. تعتبر هذه المدخرات مهمة لأجهزة IoT نظرًا لصغر حجمها وذاكرتها، ولدعم حالات الاستخدام في البيئات المحدودة لعرض النطاق الترددي للشبكة.

لاستخدام شهادة خادم ECC ل IoT Hub:

  1. تأكد من أن جميع الأجهزة تثق في المراجع المصدقة الجذرية التالية:
    • DigiCert Global G2 root CA
    • Microsoft RSA root CA 2017
  2. قم بتكوين العميل الخاص بك لتضمين مجموعات تشفير ECDSA فقطواستبعاد أي مجموعات RSA. هذه هي مجموعات التشفير المدعومة لشهادة ECC:
    • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  3. قم بتوصيل عميلك بمركز IoT.

التفاوض على طول الجزء الأقصى ل TLS

يدعم IoT Hub أيضًا التفاوض على طول جزء TLS الأقصى، والذي يعرف أحيانًا باسم التفاوض على حجم إطار TLS. هذه الميزة قيد المعاينة العامة.

استخدم هذه الميزة لتحديد الحد الأقصى لطول جزء النص العادي إلـى قيمة أصغر من 2^14 بايت افتراضي. بمجرد التفاوض، يبدأ IoT Hub والعميل فـي تجزئة الرسائل لضمان أن جميع الأجزاء أصغر من طول التفاوض. هذا السلوك مفيد لحساب الأجهزة المُقيدة أو الذاكرة. لمَعرفة المزيد، راجع مواصفات ملحق TLS الرسمية.

دعم SDK الرسمي لميزة المعاينة العامة هـذه غير متوفر بعد. لبدء

  1. إنشاء مركز IoT.
  2. عند استخدام OpenSSL، استدعي SSL_CTX_set_tlsext_max_fragment_length لتحديد حجم الجزء.
  3. قم بتوصيل عميلك بمركز IoT.

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

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

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