EAP-TLS の使用
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
Azure Sphere では、Wi-Fi ネットワークに接続するために EAP-TLS (Extensible Authentication Protocol-Transport Layer Security) の使用がサポートされています。 イーサネット経由の EAP-TLS はサポートされていません。
Wi-Fi での EAP-TLS は、セキュリティ重視のシナリオで一般的な認証方法となっています。 グローバル シークレットとして SSID パスワードを使用するよりも、はるかに高いセキュリティが実現されますが、Azure Sphere デバイスとネットワークを適切に構成し、認証を確実に行うためには追加作業が必要となります。
EAP-TLS プロトコルの仕様は、RFC 5216 で詳しく説明されています。 Azure Sphere OS には、EAP-TLS プロトコルが直接実装されていませんが、このプロトコルを実装するオープンソースの wpa_supplicant コンポーネントが組み込まれています。
用語
アクセス ポイント (AP): 他の Wi-Fi デバイスが有線ネットワークに接続できるようにするネットワーク ハードウェア デバイス。
Certificate: CA によって署名された公開キーとその他のメタデータ。
証明機関 (CA): デジタル証明書に署名して発行するエンティティ。
CA 証明書: RADIUS サーバーの認証証明書がチェーンするルート CA 証明書。 この公開キーは、Azure Sphere デバイスに格納することができます。
クライアント証明書: ネットワークに対する認証に使用される証明書と秘密キー。 クライアント証明書とそのペアとなる秘密キーは、Azure Sphere デバイスに格納されます。
キー ペア: 暗号化によってバインドされたキーのセット。 多くのシナリオにおいて、キーの組は公開キーと秘密キーを意味しますが、Azure Sphere EAP-TLS のシナリオにおける "キーの組" とは、クライアント証明書とその秘密キーを指します。
秘密キー: 信頼された所有者以外のエンティティに公開してはならないキー。
公開キー基盤 (PKI): デジタル証明書の作成、管理、配布、使用、保存、取り消し、公開キー暗号化の管理に必要な役割、ポリシー、ハードウェア、ソフトウェア、および手順のセット。
リモート認証ダイヤルイン ユーザー サービス (RADIUS): ポート 1812 で動作し、ネットワーク サービスに接続して使用するユーザーに対して一元化された認証、承認、アカウンティング (AAA またはトリプル A) 管理を提供するネットワーク プロトコルです。 RADIUS サーバーは、クライアントから認証データを受け取って検証した後、他のネットワーク リソースへのアクセスを許可します。
Rivest-Shamir-Adleman (RSA):RFC 3447 に基づく公開キー暗号化システム。
Supplicant: ワイヤレス クライアント。 Azure Sphere デバイスはサプリカントです。
EAP-TLS 認証の概要
次の図は、Azure Sphere デバイスが EAP-TLS プロトコルを使用して認証を行うプロセスをまとめたものです。
Azure Sphere デバイスは、ネットワーク リソースへのアクセスが必要になったときにワイヤレス アクセス ポイント (AP) に接続します。 AP は要求を受け取ると、デバイスの ID を求め、RADIUS サーバーに接続して認証プロセスを開始します。 アクセス ポイントとデバイスの間の通信には、EAP encapsulation over LAN (EAPOL) プロトコルが使用されます。
アクセス ポイントは、EAPOL メッセージを RADIUS 形式に再コード化して RADIUS サーバーに送信します。 RADIUS サーバーは、ポート 1812 でネットワークの認証サービスを提供します。 Azure Sphere デバイスと RADIUS サーバーは、アクセス ポイントを介して認証プロセスを実行します (両者間のメッセージはアクセス ポイントによって中継されます)。 認証が完了すると、RADIUS サーバーがステータス メッセージをデバイスに送信します。 認証に成功した場合、サーバーは、Azure Sphere デバイスに対してポートを開放します。
認証の成功後、Azure Sphere デバイスは、他のネットワークやインターネット リソースにアクセスすることができます。
認証プロセスについては、「サーバー認証」と「デバイスの認証」で詳しく説明します。
サーバー認証
サーバー認証は、EAP-TLS 相互認証の最初のステップです。 相互認証では、RADIUS サーバーがデバイスを認証するだけでなく、デバイスもサーバーを認証します。 厳密には必須ではありませんが、サーバー認証をサポートするようにネットワークとデバイスを構成することを強くお勧めします。 許可されていない (または詐称の) サーバーによるネットワーク セキュリティの侵害を防止するうえでサーバー認証は役立ちます。
サーバー認証を有効にするには、CA によって署名されているサーバー認証証明書が RADIUS サーバーに必要です。 サーバー認証証明書は、サーバーの証明書チェーンの末端にある "リーフ (葉)" です。サーバーの証明書チェーンは中間 CA を含んでいることがありますが、最終的にはルート CA にたどり着きます。
デバイスがアクセスを要求すると、サーバーはその証明書チェーン全体をデバイスに送信します。 サーバー認証証明書またはチェーンに対して Azure Sphere が時刻検証チェックを実施することはありません。デバイスはネットワークに対する認証が完了するまでは、その OS 時刻を有効なタイム ソースと同期できないためです。 デバイスは、サーバーのルート CA と一致するルート CA を信頼するよう構成されている場合、サーバーの ID を検証します。 一致するルート CA がデバイスに存在しなければ、サーバーの認証は失敗し、そのデバイスはネットワーク リソースにアクセスできなくなります。 「ルート CA 証明書の更新」で説明されているように、デバイスのルート CA はときどき更新する必要があります。
デバイス認証
サーバー認証が完了したら、デバイスは資格情報を確立するために、そのクライアント証明書を送信します。 デバイスからクライアント ID を渡す場合もあります。 クライアント ID は任意の情報ですが、一部のネットワークでは認証に必要となる場合があります。
デバイスの認証を成功させるための具体的な要件は、特定のネットワークの構成方法によって異なる場合があります。 Azure Sphere デバイスの妥当性を証明するために、ネットワーク管理者から追加情報が要求されることがあります。 「クライアント証明書の更新」で説明されているように、構成に関係なく、デバイス証明書はときどき更新できるようにする必要があります。
Azure Sphere の EAP-TLS プラットフォーム
ネットワークの構成と管理に関して、Azure Sphere EAP-TLS プラットフォームには次の機能が備わっています。
- Wi-Fi EAP-TLS 接続用にデバイスのクライアント証明書と秘密キーを含んだ .PEM ファイルを読み込みます。
- EAP-TLS を使用するよう Wi-Fi インターフェイスを構成します。 デバイスのクライアント証明書を含んだ .PEM ファイルがデバイス上に存在する必要があります。
- EAP-TLS 以外の既存のネットワークに接続してデバイス証明書と秘密キーを取得し、EAP-TLS ネットワークを有効にして、EAP-TLS ネットワークに接続します。
- 証明書ストアに対する認証を行うために HTTPS 接続に使用されている DAA (Device Authentication and Attestation) 証明書をアプリケーションが使用できるようにします。
- Wi-Fi ネットワークを管理するための WifiConfig API 。
- 証明書を管理するための Certstore API。
その他の EAP-TLS ネットワーク コンポーネントはすべて、ローカル ネットワーク管理者が担うこととなります。
EAP-TLS ネットワークの設定
EAP-TLS ネットワークの設定は、ネットワーク管理者が担当します。 ネットワーク管理者が公開キー基盤 (PKI) を定義し、すべてのネットワーク コンポーネントをそのポリシーに準拠させる必要があります。 ネットワークの設定と構成には次のタスクが含まれますが、それらに限定されるわけではありません。
- RADIUS サーバーを設定し、その CA 証明書を取得してインストールし、デバイスがその ID を証明するうえでの基準を確立します。
- RADIUS サーバーのルート CA を使用して Azure Sphere デバイスを構成します。これでサーバーを認証できるようになります。
- 各デバイスのクライアント証明書と秘密キーを取得し、デバイスに読み込みます。
さまざまなネットワーク シナリオで証明書を収集、デプロイする方法については、EAP-TLS 証明書の取得とデプロイに関するページで説明しています。
クライアント認証の証明書と秘密キーは、PEM 形式で指定する必要があります。 秘密キーは、PKCS1 または PKCS8 の構文で指定することができます。秘密キーの対称キー パスワードの有無は問いません。 ルート CA 証明書も、PEM 形式で指定する必要があります。
次の表は、Azure Sphere 用の EAP-TLS ネットワークの構成で使用される情報の一覧です。
アイテム | 説明 | 詳細 |
---|---|---|
クライアント証明書 | クライアント証明書の公開キーを含んだ署名済みの CA 証明書。 必須。 | 最大サイズ: 8 KiB 識別子文字列の最大長: 16 文字 |
クライアント秘密キー | クライアント証明書とペアになっている秘密キー。 必須。 | 最大サイズ: 8 Kib RSA がサポートされます。ECC キーはサポートされません。 |
クライアント秘密キーのパスワード | クライアント秘密キーの暗号化に使用されるパスワード。 省略可能。 | 最小サイズ: 1 バイト 最大サイズ: 256 バイト 空の文字列と null 文字列は同じものとして解釈されます。 |
クライアント ID | RADIUS サーバーに渡される ASCII 文字列。デバイスに関する補足情報を提供します。 一部の EAP-TLS ネットワークでは必須となります。 | 最大サイズ: 254 バイト 形式: user@domainname.com |
ルート CA 証明書 | RADIUS サーバーの認証証明書のルート CA 証明書。 各デバイス上で構成されている必要があります。 省略可能ですが、強くお勧めします。ネットワーク管理者に問い合わせてください。 | 最大サイズ: 8 KiB 識別子文字列の最大長: 16 文字 |
重要
ネットワークに対する PKI と RADIUS サーバーの設定はすべて (証明書の有効期限の管理を含む) はご自身で行う必要があります。