Azure Sphere での証明書の使用
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
このトピックでは、Azure Sphere 証明書 "ランドスケープ" の概要について説明します。さまざまな Azure Sphere コンポーネントが使用する証明書の種類、使用場所、格納場所、更新方法、必要に応じてアクセスする方法について説明します。 また、Azure Sphere OS、SDK、およびサービスによって証明書の管理が容易になる方法についても説明します。 証明機関と信頼チェーンに関する基本的な知識があることを前提としています。
Azure Sphere デバイス
すべての Azure Sphere デバイスは、Azure Sphere OS の一部である信頼されたルート ストアに依存します。 信頼されたルート ストアには、デバイスがデバイス認証と構成証明 (DAA)、OVER-the-Air (OTA) 更新プログラム、またはエラー報告のために接続するときに Azure Sphere Security Service の ID を検証するために使用されるルート証明書の一覧が含まれています。 これらの証明書は OS で提供されます。
毎日の構成証明が成功すると、デバイスは更新証明書と顧客証明書の 2 つの証明書を受け取ります。 更新証明書を使用すると、デバイスは Azure Sphere Update Service に接続してソフトウェア更新プログラムを取得し、エラー レポートをアップロードできます。アプリケーションやコマンド ラインからはアクセスできません。 DAA 証明書とも呼ばれる顧客証明書は、アプリケーションがトランスポート層セキュリティ (TLS) を使用する wolfSSL などのサード パーティのサービスに接続するために使用できます。 この証明書は 24 時間有効です。 アプリケーションは、 DeviceAuth_GetCertificatePath関数を呼び出すことによってプログラムで取得できます。
Azure IoT Hub、Azure IoT Central、Azure IoT Edge などの Azure ベースのサービスに接続するデバイスは、Azure Sphere テナントを認証 するために Azure Sphere テナント CA 証明書を提示する必要があります。 CLI の azsphere ca-certificate download コマンドは、このような使用のためにテナント CA 証明書を返します。
EAP-TLS ネットワーク接続
EAP-TLS ネットワークに接続するデバイスでは、ネットワークの RADIUS サーバーで認証するために証明書が必要です。 クライアントとして認証するには、デバイスがクライアント証明書を RADIUS に渡す必要があります。 相互認証を実行するには、RADIUS サーバーのルート CA 証明書もデバイスに存在し、サーバーを認証できるようにする必要があります。 Microsoft はこれらの証明書のいずれも提供していません。お客様またはネットワーク管理者は、ネットワークの RADIUS サーバーの適切な証明機関を確認し、発行者から必要な証明書を取得する責任を負います。
RADIUS サーバーの証明書を取得するには、証明機関に対して認証を行う必要があります。 前述のように、この目的で DAA 証明書を使用できます。 RADIUS サーバーの証明書を取得したら、デバイス証明書ストアに保存する必要があります。 デバイス証明書ストアは、EAP-TLS を使用したセキュリティで保護されたネットワークへの認証でのみ使用できます。 (DAA 証明書はデバイス証明書ストアに保持されず、OS に安全に保持されます)。CLI の azsphere device certificate コマンドを使用すると、コマンド ラインから証明書ストアを管理できます。 Azure Sphere アプリケーションでは、 CertStore API を使用して、デバイス証明書ストアに証明書を格納、取得、管理できます。 CertStore API には、アプリが証明書の有効期限と更新を準備できるように、個々の証明書に関する情報を返す関数も含まれています。
EAP-TLS ネットワークで使用される証明書の詳細については、 EAP-TLS の使用に関するページを参照してください。詳細については、Microsoft Tech Community の「 Secure Enterprise Wi-Fi access: EAP-TLS on Azure Sphere 」を参照してください。
Azure Sphere アプリケーション
Azure Sphere アプリケーションでは、Web サービスと一部のネットワークに対して認証を行うために証明書が必要です。 サービスまたはエンドポイントの要件に応じて、アプリは DAA 証明書または外部証明機関の証明書を使用できます。
wolfSSL または同様のライブラリを使用してサードパーティのサービスに接続するアプリは、 DeviceAuth_GetCertificatePath 関数を呼び出して認証用の DAA 証明書を取得できます。 この関数は、20.10 SDK の deviceauth.h ヘッダーで導入されました。
Azure Sphere に組み込まれている Azure IoT ライブラリは、必要なルート CA を既に信頼しているため、このライブラリを使用して Azure IoT サービス (Azure IoT Hub、Azure IoT Central、デバイス プロビジョニング サービス) にアクセスするアプリでは、追加の証明書は必要ありません。
アプリで他の Azure サービスを使用している場合は、それらのサービスのドキュメントを参照して、必要な証明書を特定してください。
Azure Sphere パブリック API
Azure Sphere パブリック API (PAPI) は、Azure Sphere Security Service と通信して、デプロイされたデバイスに関する情報を要求および取得します。 Security Service は、TLS 証明書を使用してこのような接続を認証します。 つまり、パブリック API を使用するすべてのコードまたはスクリプトと、Azure Sphere SDK などの他の Security Service クライアント ( Azure Sphere クラシック CLI と Azure Sphere CLI を含む) は、この証明書を信頼してセキュリティ サービスに接続できるようにする必要があります。 SDK では、多くのパブリック API アプリケーションと同様に、ホスト コンピューターのシステム証明書ストアの証明書を Azure Sphere Security Service 検証に使用します。
2020 年 10 月 13 日、Security Service は、DigiCert グローバル ルート G2 証明書から発行されたパブリック API TLS 証明書に更新しました。 Windows システムと Linux システムの両方に DigiCert グローバル ルート G2 証明書が含まれているため、必要な証明書をすぐに使用できます。 ただし、 前のブログ記事で説明したようにこの更新プログラムに対応するために必要な変更は、サブジェクト、名前、または発行者 (SNI) をピン留めする顧客シナリオのみです。
Azure Sphere セキュリティ サービス
Azure Sphere クラウド サービス全般と、特にセキュリティ サービスは、セキュリティで保護されたサービス間通信で使用される多数の証明書を管理します。 これらの証明書のほとんどはサービスとそのクライアントの内部であるため、Microsoft は必要に応じて更新プログラムを調整します。 たとえば、10 月にパブリック API TLS 証明書を更新することに加えて、Azure Sphere Security Service は DAA サービスと Update サービスの TLS 証明書も更新しました。 更新の前に、デバイスは、新しい必要なルート証明書を含む信頼されたルート ストアへの OTA 更新プログラムを受け取りました。 セキュリティ サービスとのデバイス通信を維持するために、お客様の操作は必要ありませんでした。
Azure Sphere を使用すると、お客様にとって証明書の変更はどのように簡単になりますか?
証明書の有効期限は、IoT デバイスの障害 発生する一般的な Azure Sphere が防ぐことができます。
Azure Sphere 製品には OS とセキュリティ サービスの両方が含まれているため、これらの両方のコンポーネントで使用される証明書は Microsoft によって管理されます。 デバイスは、DAA プロセス、OS とアプリケーションの更新、およびアプリケーションの変更を必要とせずにエラー報告を通じて更新された証明書を受け取ります。 Microsoft が DigiCert Global Root G2 証明書を追加したとき、DAA、更新プログラム、またはエラー報告を続行するためにお客様の変更は必要ありませんでした。 更新時にオフラインだったデバイスは、インターネットに再接続するとすぐに更新プログラムを受け取りました。
Azure Sphere OS には Azure IoT ライブラリも含まれているため、Microsoft が Azure IoT ライブラリで使用する証明書をさらに変更する場合は、アプリケーションを変更する必要がないように OS のライブラリを更新します。 また、アプリやスクリプトの変更が必要になる可能性があるエッジ ケースや特別な状況に関する追加のブログ投稿もお知らせします。
どちらの場合も、証明書の変更を処理するためのアプリケーションのメンテナンス更新の必要性を取り除くことで、Azure Sphere がアプリケーション管理を簡素化する方法を示します。 すべてのデバイスは、毎日の構成証明の一環として更新証明書を受け取るため、デバイスとアプリケーションで使用するローカルで管理されている証明書の更新を簡単に管理できます。 たとえば、アプリケーションが (必要に応じて) 基幹業務サーバーの ID を検証する場合は、更新された証明書を含む更新されたアプリケーション イメージ パッケージを展開できます。 Azure Sphere プラットフォームによって提供されるアプリケーション更新サービスは、これらの更新プログラムを提供し、更新サービス自体で証明書の有効期限の問題が発生する心配を取り除きます。