デバイス証明書の発行は、デバイスがプロビジョニングの一環として証明書を要求して受信するプロセスです。 この記事では、デバイスが証明書署名リクエスト(CSR)を送信する責任、Azureデバイスレジストリ(ADR)とデバイスプロビジョニングサービス(DPS)がどのように連携して大規模に証明書を発行しているか、そしてIoT Hubが発行された証明書をどのように信頼するかについて説明します。
Important
Azure Device Registry 統合とMicrosoftベースの X.509 証明書管理を使用したAzure IoT Hubは、public プレビューであり、運用環境のワークロードには推奨されません。 詳細については、FAQ: IoT Hub の新機能を参照してください。
デバイス証明書の発行のしくみ
次の手順では、エンドツーエンドの発行フローについて説明します。
IoTデバイスはDPSエンドポイントに接続し、対称鍵、X.509証明書、または信頼プラットフォームモジュール(TPM)などのオンボーディング認証情報を使って認証します。 この登録呼び出しの一環として、デバイスは、デバイスの公開キーとその登録 ID を含む証明書署名要求 (CSR) を送信します。
オンボーディング認証が正常に検証されると、デバイスIDはADRで作成され、登録設定に基づいて適切なIoT Hubに割り当てられます。
DPSは、ADRで作成しDPS登録時に参照した認証機関(CA)にCSRを転送します。 CAはリクエストを検証し、署名済みのX.509証明書を発行します。
DPS は、発行された証明書とIoT Hub接続の詳細をデバイスに返します。
デバイスは、完全な証明書チェーンを提示することによって、IoT Hubで認証されます。
証明書署名要求の要件
デバイスがプロビジョニングまたは再プロビジョニングすると、デバイスは CSR(証明書署名要求)を DPS(デバイス プロビジョニング サービス)に送信します。 DPS は、CSR が次の要件を満たすことを期待しています。
- 形式: 公開キー暗号化標準 (PKCS) #10 仕様に従った Base64 でエンコードされた識別エンコード規則 (DER)。 プライバシー強化メール (PEM) のヘッダーとフッターを含めることはできません。
- 共通名 (CN): CN フィールドは、デバイスの DPS 登録 ID と完全に一致している必要があります。 実装ガイダンスについては、IoT HubおよびAzureデバイスレジストリの統一Azure IoT SDKs(プレビュー)をご覧ください。
暗号化アルゴリズム
Azureデバイスレジストリで作成する証明書局は、発行するすべての証明書に対して以下の暗号標準を使用しています。
| 財産 | 価値 |
|---|---|
| キー アルゴリズム | ECC(ECDSA) |
| 曲線 | NIST P-384(secp384r1) |
| ハッシュ アルゴリズム | SHA-384 |
| キーストレージ | Azure Managed HSM |
P-384 を備えた ECC は、はるかに小さいキー サイズで RSA と同等のセキュリティを提供します。 このアルゴリズムにより、制約付き IoT デバイスでの証明書のサイズが小さくなり、TLS ハンドシェイクが高速化され、電力消費量が削減されます。
IoT Hub の信頼関係と CA 同期
デバイスが発行された証明書を使ってIoT Hubで認証するには、IoT Hubがデバイス証明書に署名した中間CAを信頼する必要があります。 CAを作成すると、ADRは自動的にパブリックCA証明書をリンクされたIoTハブにプッシュします。 IoT Hubは中間CA証明書を保存し、TLS認証時にデバイスが提示する証明書チェーンを検証するために使います。
デバイス証明書発行の開始
IoTデバイスは標準的なデバイスワークフローを使ってADRからデバイス証明書を要求できます。 始めるには、IoT Hub と Azure Device Registry の統一 Azure IoT SDK (プレビュー)をご覧ください。