사용자의 건강 데이터에 대한 접근 방지
HealthKit는 iPhone 및 Apple Watch의 건강 및 피트니스 데이터용 중앙 저장소를 제공합니다. HealthKit는 또한 호환되는 BLE(Bluetooth Low Energy) 심박수 측정기 및 iOS 기기에 내장된 동작 인식 보조 프로세서와 같은 건강 및 피트니스 기기와 직접 작동합니다. HealthKit와 건강 앱 및 운동 앱, 의료 기관, 건강 및 운동 기기 간의 모든 상호 작용에는 사용자의 허락이 필요합니다. 이 데이터는 데이터 보호 클래스인 Protected Unless Open에 저장됩니다. 기기가 잠긴 지 10분이 지나면 건강 데이터에 접근할 수 없으며 해당 데이터에 접근하려면 암호를 입력하거나 Face ID 및 Touch ID를 사용하여 기기를 잠금 해제해야 합니다.
건강 및 피트니스 데이터 수집 및 저장
또한 HealthKit는 앱의 접근 권한, HealthKit에 연결된 기기의 이름, 새로운 데이터가 사용 가능할 경우 앱 실행에 사용되는 스케줄 정보 등의 관리 데이터를 수집하고 저장합니다. 이 데이터는 데이터 보호 클래스인 Protected Until First User Authentication에 저장됩니다. 임시 저널 파일은 기기가 잠겨지는 경우에 생성되는 건강 기록(예를 들어 사용자가 운동 중일 때)을 저장합니다. 이 파일은 데이터 보호 클래스인 Protected Unless Open에 저장됩니다. 기기가 잠금 해제되면 기본 건강 데이터베이스에 임시 저널 파일을 가져오고 병합이 완료되면 파일은 삭제됩니다.
건강 데이터는 iCloud에 저장할 수 있습니다. 건강 데이터의 종단간 암호화는 iOS 12 이상 및 이중 인증이 필요합니다. iOS 12 이상 및 이중 인증을 사용하지 않는 경우에도 사용자의 데이터는 저장 및 전송 시 여전히 암호화되지만 종단간으로 암호화되지는 않습니다. 이중 인증을 켜고 iOS 12 이상으로 업데이트하면 사용자의 건강 데이터가 종단간 암호화로 마이그레이션됩니다.
사용자가 Finder(macOS 10.15 이상) 또는 iTunes(macOS 10.14 또는 이전 버전)를 사용하여 기기를 백업하는 경우, 해당 백업이 암호화되는 경우에만 건강 데이터가 저장됩니다.
임상 건강 기록
사용자는 건강 앱 내에서 지원되는 건강 시스템에 로그인하여 자신의 임상 건강 기록 사본을 받을 수 있습니다. 사용자를 건강 시스템에 연결할 때 해당 사용자는 OAuth 2 클라이언트 자격 증명을 사용하여 인증합니다. 연결한 후 TLS 1.3으로 보호되는 연결을 통해 임상 건강 기록 데이터가 의료 기관에서 직접 다운로드됩니다. 다운로드한 후 임상 건강 기록이 다른 건강 데이터와 함께 안전하게 저장됩니다.
건강 데이터 신뢰성
데이터베이스에 저장된 데이터는 메타데이터를 가지고 있어 각 데이터 기록의 출처를 추적할 수 있습니다. 이 메타데이터에는 앱 식별자가 포함되어 있어 기록을 저장한 앱을 식별할 수 있습니다. 추가적으로 선택적인 메타데이터 항목은 디지털 서명된 기록의 사본을 포함할 수 있습니다. 이로 인해 신뢰하는 기기에서 생성된 기록은 데이터 신뢰성을 유지할 수 있습니다. 디지털 서명에 사용된 포맷은 RFC 5652에 명시된 CMS(암호화 메시지 구문)입니다.
타사 앱에서의 건강 데이터 접근
HealthKit API에 대한 접근은 권한을 통해 제어되며 앱은 데이터의 사용 방식에 대한 제한 사항을 따라야 합니다. 예를 들어 앱은 건강 데이터를 광고에 사용할 수 없습니다. 앱은 또한 건강 데이터 사용에 대해 상세히 설명한 개인정보 처리방침을 사용자에게 필수적으로 제공해야 합니다.
사용자는 개인정보 보호 설정에서 건강 데이터에 접근하는 앱을 제어할 수 있습니다. 연락처 앱, 사진 앱 및 다른 iOS 데이터 소스처럼 앱이 건강 데이터에 대한 접근을 요청하는 경우 사용자에게 접근 승인을 요청합니다. 하지만 건강 데이터의 경우 앱은 건강 데이터의 각 유형에 대해서와 마찬가지로 읽기 및 쓰기 데이터에 대한 접근을 따로 부여받습니다. 사용자는 설정 > 건강 > 데이터 접근 및 기기에서 건강 데이터 접근 권한을 보거나, 회수할 수 있습니다.
데이터 쓰기 권한이 부여된 경우 앱은 앱이 쓴 데이터를 읽을 수도 있습니다. 데이터 읽기 권한이 부여된 경우 앱은 모든 소스가 쓴 데이터를 읽을 수 있습니다. 하지만 앱은 다른 앱에 부여된 권한을 확인할 수 없습니다. 또한 앱은 건강 데이터에 읽기 접근 권한이 있는지를 확인할 수 없습니다. 앱이 읽기 접근 권한을 가지지 않은 경우 모든 쿼리에 데이터 없음을 반환합니다. 데이터 없음은 데이터베이스가 비어 있을 때 반환하는 결과와 같습니다. 이렇게 함으로써 앱이 사용자가 추적하는 데이터 유형을 학습하여 사용자의 건강 상태를 추측하는 것을 방지합니다.
사용자 의료 정보
건강 앱은 사용자에게 의료 정보 양식을 제공해 긴급 상황에서 중요하게 사용될 수 있는 정보를 작성하는 옵션을 제공합니다. 이 정보는 수동으로 입력되고 업데이트되며 건강 데이터베이스의 정보와는 동기화되지 않습니다.
의료 정보는 잠금 화면에서 긴급상황 버튼을 탭하여 볼 수 있습니다. 이 정보는 데이터 보호 클래스인 No Protection을 사용해 기기에 저장되므로, 기기 암호를 입력하지 않고도 접근이 가능합니다. 의료 정보는 선택적 기능으로 사용자가 안전과 개인정보 보호 중 선택하여 활성화할 수 있습니다. 이 데이터는 iOS 13 또는 이전 버전에서 iCloud 백업에 백업됩니다. iOS 14에서 의료 정보는 CloudKit를 사용하는 기기 간에 동기화되며 나머지 건강 데이터와 동일한 암호화 특성을 갖습니다.
건강 공유
iOS 15에서 건강 앱은 사용자가 다른 사용자와 건강 데이터를 공유하는 옵션을 제공합니다. 건강 데이터는 종단간 iCloud 암호화를 사용하는 두 사용자 간에 공유되고 Apple은 건강 공유를 통해 전송된 데이터에 접근할 수 없습니다. 이 기능을 사용하려면 통신하는 두 사용자는 모두 iOS 15 이상을 사용하고 이중 인증을 활성화해야 합니다.
사용자들은 건강 앱에서 ‘제공자와 공유’ 기능을 사용하여 의료 서비스 제공자에게 건강 데이터를 공유할 수도 있습니다. 이 기능을 사용하여 공유한 데이터는 종단간 암호화를 사용하는 사용자가 선택한 의료 기관만 사용 가능하며, Apple은 ‘제공자와 공유’ 기능을 통해 공유된 건강 데이터의 암호화를 해제하거나, 보거나, 접근하기 위한 암호화 키를 유지하거나 그에 대한 접근 권한을 갖지 않습니다. 이 서비스의 설계가 사용자의 건강 데이터를 보호하는 방법에 대한 자세한 내용은 Apple 의료 기관용 신청 설명서의 보안 및 개인정보 보호 섹션에서 확인할 수 있습니다.