ユーザのヘルスケアデータへのアクセスの保護
HealthKitはiPhoneとApple Watch上のヘルスケアとフィットネスのデータのための中心的なレポジトリを提供します。HealthKitは、互換性のあるBluetooth Low Energy(BLE)心拍モニタのようなヘルスケアやフィットネス関連のデバイスや、多くのiOSデバイスに内蔵されているモーションコプロセッサとも直接連係します。HealthKitと、ヘルスケアおよびフィットネスアプリ、医療機関、ヘルスケアやフィットネス関連のデバイスとのやりとりには、すべてユーザの許可が必要です。このデータは、データ保護クラスProtected Unless Openで保存されます。このデータは、デバイスがロックされてから10分後にアクセスできなくなり、ユーザが次回パスコードを入力するか、Face IDまたはTouch IDを使用してロック解除したときにアクセス可能になります。
ヘルスケアとフィットネスのデータを収集する/保存する
HealthKitでは、アプリに対するのアクセス権、HealthKitに接続されているデバイス、新しいデータが利用可能になったときにアプリを起動するスケジュール情報などの管理データも収集および保存できます。これらのデータは、データ保護クラスProtected Until First User Authenticationで保存されます。ユーザが運動しているときなど、デバイスがロックされている間に生成されるヘルスケアレコードは、一時的なジャーナルファイルに保存されます。これらのデータは、データ保護クラスProtected Unless Openで保存されます。デバイスがロック解除されると、この一時的なジャーナルファイルが主要なヘルスケアデータベースに読み込まれ、マージされたあとに削除されます。
ヘルスケアデータはiCloudに保存できます。ヘルスケアデータをエンドツーエンドで暗号化するには、iOS 12以降と2ファクタ認証を使用する必要があります。この要件を満たさない場合でも、保管時と転送時にはユーザのデータが暗号化されますが、エンドツーエンドの暗号化ではありません。ユーザが2ファクタ認証を有効にして、iOS 12以降にアップデートすると、ユーザのヘルスケアデータがエンドツーエンドの暗号化に移行されます。
ユーザがFinder(macOS 10.15以降)またはiTunes(macOS 10.14以前)を使ってバックアップすると、バックアップが暗号化される場合にのみヘルスケアデータが保存されます。
診療記録
ユーザは、ヘルスケアアプリ内から対応するヘルスケアシステムにサインインして、診療記録のコピーを取得できます。ヘルスケアシステムに接続するときは、OAuth 2クライアント資格情報を使用してユーザ認証が行われます。接続後は、TLS 1.3で保護された接続を使用して診療記録データが医療機関から直接ダウンロードされます。ダウンロードした診療記録は、ほかのヘルスケアデータと共に安全に保管されます。
ヘルスケアデータの真正性
データベースに保存されるデータには、各データレコードの出所を追跡するためのメタデータが含まれます。このメタデータには、当該レコードを保存したアプリを特定するアプリ識別情報が含まれます。さらに、オプションのメタデータ項目には、当該レコードのデジタル署名されたコピーを含めることができます。これは、信頼できるデバイスによって生成されたレコードのデータ真正性を確保するためです。デジタル署名には、RFC 5652で定められているCMS(Cryptographic Message Syntax)が使用されます。
ヘルスケアデータへの他社製アプリによるアクセス
HealthKit APIへのアクセスはエンタイトルメントで制御され、アプリは、データの利用方法に関する制限に従う必要があります。例えば、ヘルスケアデータを広告に使用することはできません。また、ヘルスケアデータの利用について詳細に規定したプライバシーポリシーをユーザに提示することも要求されます。
アプリによるヘルスケアデータへのアクセスは、ユーザの「プライバシー」設定で制御されます。アプリがヘルスケアデータへのアクセスを要求すると、「連絡先」や「写真」などのiOSデータソースの場合と同様に、ユーザにアクセスの許可が求められます。ただし、ヘルスケアデータの場合は、データの種類ごとに別々のアクセス許可が必要となるほか、データの読み取りと書き込みにも別々のアクセス許可が必要です。ユーザは、「設定」>「ヘルスケア」>「データアクセスとデバイス」で、ヘルスケアデータのアクセスに関して付与した権限を確認および取り消すことができます。
アプリにデータの書き込み権限が付与されている場合は、書き込んだデータを読み取ることもできます。アプリにデータの読み取り権限が付与されている場合は、すべてのソースによって書き込まれたデータを読み取ることができます。ただし、アプリから、ほかのアプリに付与されたアクセス権を調べることはできません。また、アプリ側でそのアプリにヘルスケアデータの読み取り権限が付与されたかどうかを確定的に知る方法もありません。アプリに読み取り権限がない場合は、どのクエリでも空のデータが返されます。これは、空のデータベースからの応答と同じ動作です。これは、アプリがユーザの追跡しているデータの種類を把握して、ユーザの健康状態を推測することをできなくするためです。
ユーザのメディカルID
ヘルスケアアプリでは、医療上の緊急事態に備えて、重要な情報をメディカルIDフォームに入力しておくことができます。この情報は手動で入力やアップデートを行います。また、ヘルスケアデータベースの情報とは同期されません。
メディカルID情報は、ロック画面の緊急ボタンをタップすると表示されます。この情報はデータ保護クラスNo Protectionを使用してデバイスに保存されているため、デバイスのパスコードを入力しなくてもアクセスできます。メディカルIDは、安全とプライバシーに関する懸念のバランスをどのように取るかをユーザが自分で決定できるオプション機能です。iOS 13以前では、データはiCloudバックアップにバックアップされます。iOS 14では、メディカルIDはCloudKitを使用してデバイス間で同期され、その他のヘルスケアデータと同じ暗号化特性を持ちます。
ヘルスケア共有
iOS 15では、ユーザがヘルスケアアプリでほかのユーザとヘルスケアデータを共有するオプションがあります。ヘルスケアデータは2人のユーザ間でエンドツーエンドのiCloud暗号化を使用して共有され、ヘルスケア共有で送信されるデータにAppleがアクセスすることはできません。この機能を使用するには、送信側と受信側の両方のユーザがiOS 15以降を実行していて、2ファクタ認証を有効にしている必要があります。
ユーザはさらに、ヘルスケアアプリの「医療機関との共有」機能を使って、ヘルスケアデータを医療機関と共有することを選択することもできます。この機能を使用して共有されるデータは、ユーザが選択した医療機関のみがエンドツーエンドの暗号化を通して使用できます。Appleが暗号鍵を保持またはアクセスして、「医療機関との共有」機能で共有されたヘルスケアデータを復号、確認、その他の方法でアクセスすることはありません。このサービスの設計により、ユーザのヘルスケアデータがどのように保護されるのかについてさらに詳しくは、「医療機関向けApple登録ガイド」の「セキュリティとプライバシー」セクションを参照してください。