最初の発表からわずか数週間で、モバイルOSにコンタクト追跡アプリケーションの強固な基盤を提供するためのGoogleとAppleのパートナーシップは、重要なマイルストーン、Exposure Notification APIの暫定ドラフトおよびiOSのベータリリースに到達した。
混乱を避けるために、AppleとGoogleがテクノロジーソリューションの名前をコンタクト追跡よりも優先して、Exposure Notificationに変更したことは注目に値する。この決定の背景にある理由は、コンタクト追跡は、ユーザが接続するある種の集中型システムを含むはるかに広範なソリューションであり、地域の保健当局によって提供されるべきであるということである。AppleとGoogleは、この種のアプリケーションの技術的基盤を提供しているだけなので、より命名は適切である。
新しいAPIは、プライバシを強化するためにGoogleとAppleによって定義された暗号化プロトコルの大幅な変更を考慮されている。元々、プロトコルは2つの暗号化キーを使用していた。デバイスに固定した各ユーザでユニークなTracing Key
と、前者に基づいて日々生成されるDaily Tracing Key
である。Daily Tracing Keys
は、Rolling Proximity Identifiers
を生成するために使用された。これは、特定の時間枠でデバイスの近接を検出するために使用される疑似ランダムBluetoothモニカの一種である。
たまたまデバイスに一意のキーを関連付けると、デバイスに直接アクセスできる場合の高度な攻撃への扉が開かれる。したがって、新しいプロトコルバージョンでは、完全にランダムなTemporary Exposure Keys
を使用してRolling Proximity Identifier Keys
を生成する。このキーは、Rolling proximity identifiers
を生成するために使用される。AppleとGoogleによると、Rolling Proximity Identifier
は24時間の有効期間を持つ完全にランダムなキーから生成されないため、攻撃者が対応するTemporary Exposure Keys
を知らずにRolling Proximity Identifier
で衝突を見つけることは計算上不可能である。これにより、リプレイやなりすまし攻撃の可能性が低くなる。
新しいExposure Notificationフレームワークは、影響を受けるユーザと暴露されたユーザの2つのユーザロールをカバーする。影響を受けたユーザはCOVID-19診断が確認または疑われているが、曝露されたユーザは前者と接触する可能性がある。ユーザが診断されると、そのTemporary Exposure Keys
は、外部の診断サーバを介して、暴露される可能性のある他のユーザと共有される。この手順には、明示的なユーザ認証が必要である。暴露されたユーザは、ENSelfExposureInfoRequest
を使用してTemporary exposure keys
のセットを取得し、フレームワークにENExposureDetectionSession
を使用してそれらのキーがローカルで観測されたかどうかを判断するように依頼できる。
Exposure Notificationフレームワークの中心的なクラスはENManager
であり、アプリの承認ステータスの確認など、いくつかの予備的なタスクを担当する。ENManager
は、setExposureNotificationEnabled:completionHandler
メソッドを使用して暴露通知を有効にできる。このメソッドは、使用の承認を要求した後、Bluetoothのアドバタイズとスキャンを開始または停止する。いつでも、getDiagnosisKeysWithCompletionHandler:completionHandler
を使用して、このデバイスが診断サーバと共有するために使用するTemporary Exposure Key
を取得できる。この手順にも、明示的な承認が必要である。
ENExposureDetectionSession
クラスは、診断サーバから受信したTemporary Exposure Keys
のセットが観測されているかどうかを確認できるという点でENManager
に対応している。これは、addDiagnosisKeys:completion
メソッドとfinishedDiagnosisKeysWithCompletion:
メソッドを使用して実行できる。暴露が検出された場合、接触の期間や日付などの詳細情報は、getExposureInfoWithMaxCount:completionHandler
を使用して取得できる。
新しいAPIの詳細については、公式のExposure Notificationフレームワークをご覧ください。
新しいExposure Notification APIがiOS 13.5 Developer Release Beta 3で利用可能になった。これにより、関心のある開発者はそれを試して、コンタクト追跡の実験を開始できる。