
HomeKitカメラのセキュリティ
IPアドレス(Internet Protocolアドレス)を持つHomeKit対応のカメラはビデオストリームおよびオーディオストリームを、ローカルネットワーク上にあり、それらのストリームにアクセスしているiOS/iPadOS/tvOS/macOSデバイスに直接送信します。ストリームはデバイスおよびIPカメラ(Internet Protocolカメラ)でランダムに生成される鍵を使って暗号化され、これらの鍵はカメラとの安全なHomeKitセッションを介して交換されます。デバイスがローカルネットワーク上にない場合は、暗号化されたストリームがホームハブ経由でデバイスに中継されます。ホームハブはストリームを復号せず、デバイスとIPカメラ間の中継としてのみ機能します。HomeKit対応のIPカメラが撮影したビデオ映像をアプリでユーザに表示するときは、HomeKitが別のシステムプロセスを使ってビデオフレームを安全に処理します。その結果、アプリが直接ビデオストリームにアクセスしたり保存したりすることはできません。また、このストリームからのスクリーンショットをアプリから取得することも許可されません。
HomeKitの安全なビデオ
HomeKitには、Appleや他社にビデオコンテンツを開示することなく、HomeKit対応IPカメラのクリップを記録、解析、表示するための、安全かつ非公開のエンドツーエンドのメカニズムがあります。IPカメラで動きが検知されると、ホームハブとIPカメラ間の専用ローカルネットワーク接続を通じて、ホームハブとして機能しているAppleデバイスにビデオクリップが直接送信されます。このローカルネットワーク接続は、HKDF-SHA512から導出されるセッションごとの鍵ペアで暗号化されます。また、この鍵ペアは、ホームハブとIPカメラ間で確立されたHomeKitセッションでネゴシエートされます。HomeKitでは、ホームハブ上でオーディオストリームとビデオストリームを復号し、ビデオフレームをローカルで解析して、重大なイベントがないか確認します。重大なイベントが検出された場合は、ランダムに生成されるAES256鍵を使用してAES-256-GCMでビデオクリップを暗号化します。また、各クリップのポスターフレームも生成します。生成されたポスターフレームは、同じAES256鍵を使用して暗号化されます。暗号化されたポスターフレームとオーディオ/ビデオデータは、iCloudサーバにアップロードされます。暗号鍵を含む各クリップの関連メタデータは、iCloudのエンドツーエンドの暗号化を使用してCloudKitにアップロードされます。
顔の分類のために、HomeKitは使用したデータをすべて保存し、iCloudのエンドツーエンドの暗号化を使用して特定の人の顔をCloudKitで分類します。保存されるデータには、名前やその人の顔を表す画像などの各個人に関する情報が含まれます。これらの顔の画像は、ユーザがオプトインした場合はユーザの「写真」から取得される場合があります。また、以前に分析されたIPカメラのビデオから収集される場合もあります。HomeKit Secure Videoの分析セッションは、この分類データを使用してIPカメラから直接受け取ったセキュアビデオストリーム内の顔を識別し、その識別情報を前述のクリップメタデータに含めます。
ホームアプリを使用してカメラのクリップを表示するときは、iCloudからデータがダウンロードされ、ストリームを復号するための鍵がiCloudのエンドツーエンドの暗号化を使用してローカルでアンラップされます。暗号化されたビデオコンテンツがサーバからストリーミングされ、iOSデバイス上でローカルに復号されてからビューアに表示されます。各ビデオクリップセッションは多くの場合、サブセクションに分解され、各サブセクションではそれぞれの一意の鍵でコンテンツストリームが暗号化されます。