デバイス証明書の発行は、デバイスがプロビジョニングの一環として証明書を要求して受信するプロセスです。 Azure Device Registry (ADR) は、プロビジョニング中に新しい X.509 証明書を生成し、IoT デバイスに発行します。 この記事では、証明書署名要求 (CSR) を送信するデバイスの役割、ADR と Device Provisioning Service (DPS) が連携して大規模に証明書を発行する方法、および発行された証明書IoT Hub信頼する方法について説明します。
Important
Azure Device Registry 統合とMicrosoftベースの X.509 証明書管理を使用したAzure IoT Hubは、public プレビューであり、運用環境のワークロードには推奨されません。 詳細については、FAQ: IoT Hub の新機能を参照してください。
デバイス証明書の発行のしくみ
次の手順では、エンドツーエンドの発行フローについて説明します。
- IoT デバイスは DPS エンドポイントに接続し、対称キー、X.509 証明書、トラステッド プラットフォーム モジュール (TPM) などの事前に構成されたオンボード資格情報を使用して認証します。 この登録呼び出しの一環として、デバイスは、デバイスの公開キーとその登録 ID を含む証明書署名要求 (CSR) を送信します。
- DPS は、登録構成に基づいて IoT デバイスをIoT Hubに割り当てます。
- デバイス ID はIoT Hubに作成され、ADR 名前空間に登録されます。 CSR は、ADR 名前空間に割り当てられた一意の PKI に転送されます。 PKI は要求を検証し、DPS 登録にリンクされているポリシーに転送します。
- ポリシーの発行元 CA は、運用証明書に署名して発行します。
- DPS は、発行された証明書とIoT Hub接続の詳細をデバイスに返します。
- デバイスは、完全な証明書チェーンを提示することによって、IoT Hubで認証されます。
証明書署名要求の要件
デバイスがプロビジョニングまたは再プロビジョニングすると、デバイスは CSR(証明書署名要求)を DPS(デバイス プロビジョニング サービス)に送信します。 DPS は、CSR が次の要件を満たすことを期待しています。
- 形式: 公開キー暗号化標準 (PKCS) #10 仕様に従った Base64 でエンコードされた識別エンコード規則 (DER)。 プライバシー強化メール (PEM) のヘッダーとフッターを含めることはできません。
- 共通名 (CN): CN フィールドは、デバイスの DPS 登録 ID と完全に一致している必要があります。
- キー アルゴリズム: NIST P-384 曲線を使用した楕円曲線 (EC) キー。 RSA キーは、現在のプレビューではサポートされていません。
実装例については、 DPS デバイス SDK のサンプルを参照してください。
暗号化アルゴリズム
証明書管理では、ポリシーによって発行されたすべての証明書に対して、次の暗号化標準が使用されます。
| 財産 | 価値 |
|---|---|
| キー アルゴリズム | ECC(ECDSA) |
| 曲線 | NIST P-384(secp384r1) |
| ハッシュ アルゴリズム | SHA-384 |
| キーストレージ | Azure Managed HSM |
P-384 を備えた ECC は、はるかに小さいキー サイズで RSA と同等のセキュリティを提供します。 このアルゴリズムにより、制約付き IoT デバイスでの証明書のサイズが小さくなり、TLS ハンドシェイクが高速化され、電力消費量が削減されます。
IoT Hubにおける信頼性と資格情報の同期
発行された証明書を使用してデバイスをIoT Hubで認証するには、IoT Hubデバイス証明書に署名した発行元 CA を信頼する必要があります。 ADR は資格情報同期を通じてこの信頼を管理します。これにより、発行元の CA 証明書が ADR からリンクされた IoT Hub にプッシュされます。
資格情報の同期を手動で実行するには、次の Azure CLI コマンドを使用します。
az iot adr ns credential sync --namespace <namespace> -g <resource-group>
IoT Hub発行 CA 証明書を格納し、それを使用して、TLS 認証中にデバイスが存在する証明書チェーンを検証します。