デバイス ID とセキュリティ
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
一度に多数のデバイスを展開および管理できます。 デバイス管理は、必要に応じて各デバイスを個別に識別してアクセスする機能に基づいています。 これを可能にするために、各 Azure Sphere デバイスには、回復操作を含むデバイスの更新を通じて保持される一意の内部デバイス ID が与えられます。
ただし、デジタル システムでは、デバイスの ID は簡単にスプーフィング、偽造、または悪用される可能性があります。 その結果、ID を検証および検証できるデバイスのみが、貴重なデータにアクセスし、サービスに接続することを許可する必要があります。
Azure Sphere には、デバイスが自身を識別 (認証) し、デバイスの ID (構成証明) を確認するためのプロセスが用意されています。 Azure Sphere Security Service で使用される認証および構成証明プロセスでは、既知のキー、セキュリティで保護された通信、および特殊なハードウェアを使用して、デバイスの ID を確認します。 デバイスの認証と構成証明が成功すると、証明書がデバイスに発行されます。 有効な証明書は、次のことを示します。
- デバイスの ID が検証されました。
- デバイスは信頼できます。
Azure Sphere では、最初にデバイス証明書がテナント レベルの証明書にチェーンされ (組織が独自のテナントのデバイスのみを信頼することが容易になります)、次に Microsoft 証明書にチェーンされます。これは、Microsoft がこのハードウェアが、セキュリティで保護された Microsoft OS を実行している認定済み Azure Sphere チップの検証済みインスタンスであることを Microsoft が検証したことを反映しています。
次の概念は、最も安全で効果的な方法でデバイス ID を使用するのに役立ちます。
信頼は一時的です
システムの信頼が失われ、回復する可能性があります。 IoT システムにゼロ トラスト アーキテクチャを実装する原則は、明示的に検証することです。 つまり、デバイスとやり取りするたびに、デバイスの信頼性を明示的に判断し、データ トランザクションが信頼可能であることを証明します。 Azure Sphere デバイスは、Azure Sphere クラウド セキュリティ サービスを使用して 24 時間ごとに認証および構成証明プロセスを自動的に実行します。 デバイスの ID が正常に検証されたことを示す情報は、Microsoft Azure Sphere Cloud Security Service にルート化された暗号署名付き証明書の存在です。Id = 識別子 + 構成証明
識別子はコピーおよび複製できます。 その結果、デバイスを識別子で単純に認識することはできません。 デバイスの ID (またはユーザーの ID) は、識別子と構成証明の両方の組み合わせと見なす必要があります。この識別子は、特定のコンテキスト内で有効です。 デバイスに識別子を割り当て、構成証明プロセスとは無関係に使用しないでください。 可能な場合は、システム内のすべての相互作用レイヤーで識別子と構成証明の証拠を組み合わせます。識別子 + 信頼証明書
識別子は参照と見なす必要があります。 単独では、参照するオブジェクトの信頼性に関する何かを示すものと見なすべきではありません。 たとえば、ID を使用して MQTT メッセージをサブスクライブし、識別子を使用してポータル内で信頼されたデータをグループ化し、識別子を使用してシステム内のトラフィックとデータをルーティングします。 ただし、識別子を信頼するのではなく、信頼する場合は、暗号化によって署名され、チェーンされた証明書を信頼します。 証明書は、システム コンポーネント間のパスワードレス データフローに特に役立ち、特定のコンテキスト内でテストされ、信頼できると証明された識別の証拠です。
Azure IoT Hub を使用する場合、文書化された推奨事項に従って構成されている場合、これらの概念は既に組み込まれており、セキュリティで保護された回復性のあるシステムのデプロイが簡略化されます。
これらの概念は、直接制御する Azure 以外のエンドポイントまたはサービスに接続する場合にも適用する必要があります。 たとえば、MQTT を使用している場合、デバイスは、発行する MQTT トピックの一部として独自の ID を含めることができます。 ただし、デバイスからトピックの更新を受け入れる前に、MQTT サーバーは、デバイスが提供する証明書が、この特定のトピックに発行するための認証を行っていることを確認する必要があります。
Azure Sphere デバイス証明書とデバイス ID アクセス
アプリケーションでデバイス証明書にアクセスするには、 DeviceAuth_GetCertificatePath 関数を使用します。
デバイスの一意のデバイス ID にアクセスするには、wolfSSL_X509_get_subject_name関数を使用して、DeviceAuth_GetCertificatePath()関数によって提供される証明書からサブジェクトを解析します。
コード スニペット Get Azure Sphere Device ID は、高度なアプリケーションで Azure Sphere デバイス ID を取得する方法を示しています。 デバイス ID を 128 文字の文字バッファーとして返します。 このスニペットは wolfSSL にコマンドを実行して、証明書とのセッションを開き、コンテキストと証明書をプルし、Azure Sphere Devices のデバイス ID である証明書のサブジェクト ID を解析して、 char
ポインターとして返します。