Azure IoT Hub Cihaz Sağlama Hizmeti'nde (DPS) TLS desteği

DPS, IoT cihazlarından gelen bağlantıların güvenliğini sağlamak için Aktarım Katmanı Güvenliği(TLS) kullanır.

DPS tarafından desteklenen geçerli TLS protokolü sürümleri şunlardır:

  • TLS 1.2

Bağlantıları en düşük TLS sürümüyle kısıtlama

DPS örneklerinizi yalnızca en düşük TLS veya daha yüksek bir sürümü kullanan cihaz istemci bağlantılarına izin verecek şekilde yapılandırabilirsiniz.

Önemli

Şu anda DPS yalnızca TLS 1.2'yi desteklediğinden, bir DPS örneği oluştururken en düşük TLS sürümünü belirtmenize gerek yoktur. Bu özellik gelecekte genişletilmesi için sağlanır.

Bunu yapmak için Azure Resource Manager şablonunuzun DPS kaynak belirtiminde özelliğini 1.2 olarak ayaran minTlsVersion yeni bir DPS kaynağı sağlayın. Aşağıdaki örnek JSON şablonu, yeni bir DPS örneğinin minTlsVersion özelliğini belirtir.

{
    "$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
            },
        }     
    ]
}

Şablonu aşağıdaki Azure CLI komutuyla dağıtabilirsiniz.

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

Resource Manager şablonlarıyla DPS kaynakları oluşturma hakkında daha fazla bilgi için bkz . Azure Resource Manager şablonuyla DPS'yi ayarlama.

Bu yapılandırma kullanılarak oluşturulan DPS kaynağı, TLS 1.0 ve 1.1 sürümlerini kullanarak bağlanmaya çalışan cihazları reddeder.

Dekont

minTlsVersion Özelliği salt okunurdur ve DPS kaynağınız oluşturulduktan sonra değiştirilemez. Bu nedenle, tüm IoT cihazlarınızın TLS 1.2 ve önerilen şifrelerle önceden uyumlu olduğunu düzgün bir şekilde test edip doğrulamanız önemlidir.

Dekont

Yük devretme sonrasında DPS'nizin özelliği, minTlsVersion yük devretme sonrasında coğrafi olarak eşleştirilmiş bölgede etkili olmaya devam eder.

DPS örnekleri aşağıdaki önerilen ve eski şifreleme paketlerinin kullanılmasını zorunlu kılır:

Önerilen TLS 1.2 şifreleme paketleri
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

Eski şifreleme paketleri

Bu şifreleme paketleri şu anda DPS tarafından hala desteklenmektedir ancak kullanımdan kaldırılacaktır. Mümkünse yukarıda önerilen şifreleme paketlerini kullanın.

Seçenek 1 (daha iyi güvenlik)
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)
Seçenek 2 (daha iyi performans)
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)

Karşılıklı TLS desteği

DPS kayıtları X.509 kimlik doğrulaması için yapılandırıldığında, DPS tarafından karşılıklı TLS (mTLS) desteklenir.

Sertifika sabitleme

Microsoft bu sertifikaları çok az bildirimle veya hiç bildirimde bulunmadan sık sık toplarken TLS sunucu sertifikalarının (diğer adıyla yaprak sertifikalar) ve DPS uç noktalarıyla ilişkilendirilmiş ara sertifikaların sertifika sabitlemesi ve filtrelenmesi kesinlikle önerilmez. Gerekirse, yalnızca bu Azure IoT blog gönderisinde açıklandığı gibi kök sertifikaları sabitleyin.

IoT SDK'larında TLS 1.2 kullanma

Azure IoT istemci SDK'larında TLS 1.2 ve izin verilen şifrelemeleri yapılandırmak için aşağıdaki bağlantıları kullanın.

Dil TLS 1.2'i destekleyen sürümler Belgeler
C Etiket 2019-12-11 veya üzeri Bağlantı
Python Sürüm 2.0.0 veya üzeri Bağlantı
C# Sürüm 1.21.4 veya üzeri Bağlantı
Java Sürüm 1.19.0 veya üzeri Bağlantı
NodeJS Sürüm 1.12.2 veya üzeri Bağlantı

IoT Hub ile TLS 1.2 kullanma

IoT Hub, cihazlarla iletişim kurarken TLS 1.2 kullanacak şekilde yapılandırılabilir. Daha fazla bilgi için bkz . IoT Hub için TLS 1.0 ve 1.1'i kullanımdan kaldırma.

IoT Edge ile TLS 1.2 kullanma

IoT Edge cihazları, IoT Hub ve DPS ile iletişim kurarken TLS 1.2 kullanacak şekilde yapılandırılabilir. Daha fazla bilgi için IoT Edge belgeleri sayfasına bakın.