HomeKitの通信のセキュリティ
HomeKitは、ホームオートメーションのインフラストラクチャで、iCloudとデバイスのセキュリティ機能を使用して個人データを保護しながら同期できます。個人データはAppleに開示されません。
HomeKitの識別情報とセキュリティは、Ed25519公開/秘密鍵ペアに基づいています。Ed25519鍵ペアは、ユーザのデバイス上で生成され、これがそのユーザのHomeKit識別情報となります。この鍵ペアをHomeKitアクセサリプロトコル(HAP)の一部として使用して、ユーザのAppleデバイスとユーザのHomeKitアクセサリ間での直接の通信が認証されます。
ホームハブのあるホームでは、共有ホームのメンバーがこのホームハブを通じてアクセサリにコマンドを送信できます。これらのコマンドは、Apple Identity Service(IDS)を使用して、ユーザのデバイスからホームハブに送信され、エンドツーエンドで暗号化、および認証されます。そしてホームハブから、HomeKitアクセサリプロトコル(HAP)またはスマートホーム接続の規格であるMatterを使用して、関連するアクセサリにコマンドが転送されます。
これらの鍵はキーチェーンに保存され、暗号化されたキーチェーンのバックアップにのみ含められます。iCloudキーチェーンを使用して、鍵はデバイス間で最新の状態に保たれます。
HomeKit対応アクセサリ間の通信
HomeKit対応アクセサリは、Appleデバイスとの通信に使用する固有のEd25519鍵ペアを生成します。アクセサリが工場出荷時の設定に復元されると、新しい鍵ペアが生成されます。
AppleデバイスとHomeKit対応アクセサリ間の接続を確立するため、アクセサリメーカーから提供された8桁のコードをユーザのデバイスに入力して、Secure Remote Password(3072ビット)プロトコルによる鍵の交換を行うと、HKDF-SHA512から導出された鍵を用いたChaCha20-Poly1305 AEADによって鍵が暗号化されます。アクセサリのMFi証明書も設定中に検証されます。MFiチップを搭載していないアクセサリの場合、iOS 11.3以降ではソフトウェア認証のサポートを組み込むことができます。
使用時にデバイスとHomeKit対応アクセサリが通信する場合は、上記のプロセスで交換された鍵を使用して互いに認証します。各セッションはStation-to-Stationプロトコルを使用して確立され、セッションごとのCurve25519鍵に基づく、HKDF-SHA512から導出された鍵で暗号化されます。これは、IPベースとBluetooth Low Energy(BLE)の両方のアクセサリに適用されます。
ブロードキャスト通知に対応したBLEデバイスの場合、ペアリングされたデバイスが、安全なセッションでブロードキャスト暗号鍵を用いてアクセサリをプロビジョニングします。この鍵はBLEアドバタイズを使用して通知される、アクセサリの状態変化に関するデータの暗号化にも使用されます。ブロードキャスト暗号鍵はHKDF-SHA512から導出された鍵であり、データはChaCha20-Poly1305 AEADアルゴリズムで暗号化されます。このブロードキャスト暗号鍵は定期的に変更され、iCloudを使用してほかのデバイスでアップデートされます(「HomeKitデータのセキュリティ」を参照してください)。
Matter対応アクセサリとの通信
Matter対応アクセサリの識別情報とセキュリティは、証明書に基づいています。Appleホームでは、信頼の起点である認証局(CA)が最初のユーザ(所有者)のデバイスで生成され、CAの秘密鍵は所有者のiCloudキーチェーンに保存されます。ホームのそれぞれのAppleデバイスは、NIST P256を使用して証明書署名要求(CSR)を生成します。このCSRを取り込んだ所有者のデバイスは、所有者のCA秘密鍵を使用して、デバイスのMatter ID証明書を作成します。次に、この証明書を使用して、ユーザのデバイスとアクセサリ間の通信が認証されます。
Matter対応アクセサリは固有のNIST P256鍵ペアとCSRを生成し、アクセサリのペアリング中にCAから証明書を受け取ります。鍵ペアの生成前に、Matter対応アクセサリとホーム所有者のデバイスは(アクセサリメーカーが提供したPINとSPAKE2+プロトコルを使用して)鍵を交換し、デバイス認証プロセスが行われます。そして、このチャンネルを通してCSRと証明書が交換されます。暗号化には、HKDF-SHA256から導出された鍵を用いたAES-CCMが使用されます。アクセサリが工場出荷時の設定に復元されると、新しい鍵ペアとCSRが生成され、ペアリング中にアクセサリの新しい証明書が発行されます。
使用時にAppleデバイスとMatter対応アクセサリが通信する場合は、固有の証明書を使用して互いに認証します。各セッションは、三段階の(シグマ)プロトコルによって確立され、セッションごとのP256鍵に基づいてHKDF-SHA256から導出された鍵で暗号化されます。
AppleデバイスがMatter対応アクセサリと安全にやりとりする方法について詳しくは、Apple DeveloperのWebサイトの「iOS 16でのMatter対応」を参照してください。
HomeKitとSiri
Siriを使って、アクセサリに対するクエリや制御、シーンの起動を行うことができます。Siriがコマンドを認識できるように、部屋、アクセサリ、シーンの名前を提供する必要がありますが、Siriに提供されるのはホームの構成に関する最低限の情報で、個人も特定されません。Siriに送られた音声は特定のアクセサリまたはコマンドを示す場合がありますが、このようなデータがHomeKitなどのAppleのその他の機能に関連付けられることはありません。
Siri対応HomeKitアクセサリ
ユーザはSiri対応アクセサリでホームアプリを使用して、Siriなどの新しい機能や、タイマー、アラーム、インターコム、ドアベルなどのその他のHomePodの機能を有効にできます。これらの機能が有効になると、アクセサリは、これらのApple機能をホストするローカルネットワーク上のペアリングされたHomePodと連係します。デバイス間のオーディオの交換は、HomeKitとAirPlayの両方のプロトコルを使用して、暗号化されたチャンネル上で行われます。
「“Hey Siri”を聞き取る」がオンになっている場合は、アクセサリはローカルで実行されるトリガーフレーズ検知エンジンを使用して「Hey Siri」フレーズを聞き取ります。このエンジンがフレーズを検知すると、ペアリングされたHomePodにオーディオフレームがHomeKitを使用して直接送信されます。HomePodはオーディオを再度チェックし、フレーズにトリガーフレーズが含まれないと判断した場合はオーディオセッションをキャンセルする場合があります。
「タッチして起動」がオンになっている場合は、ユーザはアクセサリにある専用のボタンを押すことでSiriと会話を始めることができます。オーディオフレームはペアリングされたHomePodに直接送信されます。
Siriの呼び出しに成功したことが検知されると、HomePodはオーディオをSiriのサーバに送信し、HomePod自体をユーザが呼び出した場合にHomePodが適用するのと同じセキュリティ、プライバシー、暗号化保護を使用して、ユーザの意図を実現します。Siriがオーディオで返事をすると、Siriの応答はAirPlayオーディオチャンネルを通じてアクセサリに送信されます。一部のSiriリクエストには、ユーザからの追加の情報が必要です(ユーザがさらにオプションを聞きたいか質問するなど)。その場合、アクセサリはユーザに質問するという指示を受け取り、追加のオーディオがHomePodにストリーミングされます。
アクセサリには、聞き取り中であることをユーザに視覚的に示すものが必要です(LEDインジケータなど)。オーディオストリームへのアクセスを除いて、アクセサリにはSiriリクエストの意図は知らされず、アクセサリ上にユーザデータは保存されません。