X.509 CA 証明書を使用してデバイスを認証する

この記事では、X.509 証明機関 (CA) の証明書を使用して、IoT Hub に接続するデバイスを認証する方法について説明します。 この記事では、次のことについて説明します。

  • X.509 CA 証明書の入手方法
  • X.509 CA 証明書を IoT Hub に登録する方法
  • X.509 CA 証明書を使用してデバイスに署名する方法
  • X.509 CA で署名されたデバイスを認証する方法

重要

X.509 証明機関 (CA) の認証を使用するデバイスの次の機能は、まだ一般提供されていません。また、プレビュー モードを有効にする必要があります

  • HTTPS、WebSocket 経由の MQTT、WebSockets プロトコル経由の AMQP。
  • ファイルのアップロード (すべてのプロトコル)。

これらの機能は、X.509 拇印認証を使用するデバイスで一般提供されています。 IoT Hub での X.509 認証の詳細については、「サポートされている X.509 証明書」を参照してください。

X.509 CA 機能により、証明機関 (CA) を使用して IoT Hub に対してデバイスを認証できます。 これにより、初回のデバイス登録プロセスとデバイス製造時のサプライチェーン ロジスティックスが簡素化されます。 X.509 CA 証明書に関する詳しい知識がない場合は、IoT 業界での X.509 CA 証明書の使用方法についての理解に関するページで詳細を確認してください。

X.509 CA 証明書を入手する

X.509 CA 証明書は、各デバイスの証明書チェーンの最上位にあります。 証明書は、使用方法に応じて、購入または作成することができます。

運用環境の場合、証明書サービスの専門プロバイダーから X.509 CA 証明書を購入することをお勧めします。 CA 証明書を購入することで、ルート CA が、デバイスの正当性を保証する信頼されたサード パーティとして機能するという利点が得られます。 デバイスがオープン IoT ネットワークの一部であり、そのネットワークでデバイスがサード パーティの製品やサービスと対話する場合、このオプションを検討してください。

テスト目的で自己署名 X.509 CA 証明書を作成することもできます。 テスト用証明書の作成方法の詳細については、「テスト用の証明書を作成してアップロードする」を参照してください。

Note

運用環境では、自己署名証明書を使用することはお勧めしません。

X.509 CA 証明書の入手方法に関係なく、必ずその対応する秘密キー シークレットを保存し、常に保護されている状態にしておいてください。 この予防措置は、X.509 CA 認証で信頼を構築するために必要です。

デバイスに署名して証明書の信頼チェーンに入れる

X.509 CA 証明書の所有者は、中間 CA に暗号で署名できます。この中間 CA は別の中間 CA に署名でき、このプロセスが継続されます。このプロセスは、最後の中間 CA がデバイス証明書に署名すると終了します。 この結果、"証明書の信頼チェーン" と呼ばれる、証明書の連鎖が生成されます。 現実的には、これは署名デバイスへと向かう信頼の委任として機能します。 この委任によって、暗号で変化する保管チェーンが確立され、署名キーの共有が回避されるため重要です。

信頼チェーン内の証明書を示す図。

デバイス証明書 (別名: リーフ証明書) では、"サブジェクト名" が、Azure IoT Hub で IoT デバイスを登録するときに使用されたデバイス ID (CN=deviceId) に設定されている必要があります。 この設定は認証に必要です。

証明書チェーンを作成する方法について確認してください。これは、デバイスに署名するときに行います。

X.509 CA 証明書を IoT Hub に登録する

X.509 CA 証明書を IoT Hub に登録します。ここでは、この証明書を使用して、登録時および接続時にデバイスを認証します。 X.509 CA 証明書の登録は 2 段階のプロセスであり、証明書ファイルのアップロードと、その後の所有証明の確立で構成されます。

アップロード プロセスでは、証明書を含むファイルのアップロードを行います。 このファイルには秘密キーが含まれていてはなりません。

所有の証明ステップには、ユーザーと IoT Hub 間で暗号のチャレンジと応答のプロセスが含まれます。 デジタル証明書の内容がパブリックであるために傍受されやすい場合、IoT Hub で、ユーザーが実際に CA 証明書を所有しているか確認する必要があります。 所有権を自動的に確認するか、手動で確認するかを選択できます。 手動で確認する場合、Azure IoT Hub によってランダム チャレンジが生成されます。このチャレンジに、CA 証明書の対応する秘密キーを使用して署名します。 推奨されているように秘密キー シークレットを保存して保護している場合、このステップを完了するための情報を持っているのはユーザー本人のみです。 秘密キーの秘密性が、この方法における信頼の源です。 チャレンジに署名したら、結果を含むファイルをアップロードしてこのステップを完了し、手動で証明書を確認します。

CA 証明書を登録する方法を参照してください。

IoT Hub でデバイスを作成する

デバイス偽装を防ぐために、IoT Hub は、必要なデバイスが何であるかを知らせるようにユーザーに要求します。 これは、IoT Hub のデバイス レジストリにデバイス エントリを作成することによって行います。 このプロセスは、IoT Hub Device Provisioning Service を使用している場合は自動化されます。

IoT Hub でデバイスを手動で作成する方法について確認してください。

X.509 CA 証明書で署名されたデバイスを認証する

X.509 CA 証明書を登録し、デバイスに署名して証明書の信頼チェーンに入れました。最後のステップは、デバイスが接続するときにデバイスを認証することです。 X.509 CA 署名デバイスは、接続するとき、検証のためにその証明書チェーンをアップロードします。 チェーンには、中間 CA とデバイス証明書がすべて含まれています。 この情報を使用して、IoT Hub は 2 段階のプロセスでデバイスを認証します。 IoT Hub は、証明書チェーンの内部一貫性を暗号によって検証し、続いて所有証明チャレンジをデバイスに対して発行します。 IoT Hub は、デバイスから正常な所有証明応答を受け取ると、デバイスの認証を宣言します。 この宣言は、デバイスの秘密キーが保護されていること、またこのデバイスのみがこのチャレンジに対して正常に応答できることを前提としています。 秘密キーを保護するために、ハードウェア セキュア モジュール (HSM) のようなセキュアなチップをデバイスで使用することをお勧めします。

IoT Hub へのデバイス接続が正常に行われると、認証プロセスは完了です。これはまた、セットアップが正しいことも示しています。 デバイスが接続されるたびに、IoT Hub によって TLS セッションが再ネゴシエートされ、そのデバイスの X.509 証明書が検証されます。

デバイス証明書を取り消す

IoT Hub では、証明書ベースの認証を使用してデバイスを認証するときに、証明機関からの証明書失効リストは確認されません。 証明書が侵害された可能性があるために IoT Hub への接続をブロックする必要があるデバイスがある場合は、ID レジストリでそのデバイスを無効にする必要があります。 詳細については、「IoT ハブでデバイスを無効化または削除する」を参照してください。

次の手順

IoT での X.509 CA 認証の価値について学習します。

IoT Hub Device Provisioning Service の使用を開始します。