iCloud 암호화
앱과 시스템 소프트웨어가 사용자를 대신해 iCloud에 데이터를 저장하고 여러 기기 및 웹에서 최신 상태를 유지하도록 해주는 CloudKit 프레임워크 및 API를 시작으로 iCloud의 데이터 암호화와 데이터 저장 공간 모델 간 밀접한 연관성이 생겼습니다.
CloudKit 암호화
CloudKit는 앱 개발자가 iCloud에 키 값 데이터, 구조적 데이터 및 자료(이미지 또는 비디오와 같이 데이터베이스와 별개로 저장되는 대규모 데이터)를 저장하도록 허용하는 프레임워크입니다. CloudKit는 컨테이너에 그룹화된 공개 및 개인 데이터베이스를 모두 지원합니다. 공개 데이터베이스는 전역적으로 공유되고, 대개 일반적인 자료에 사용되며, 암호화되지 않습니다. 개인 데이터베이스는 각 사용자의 iCloud 데이터를 저장합니다.
CloudKit는 데이터의 구조와 일치하는 키의 계층 구조를 사용합니다. 각 컨테이너의 개인 데이터베이스는 CloudKit 서비스 키라고 하는 비대칭 키에 기반한 키 계층으로 보호됩니다. 이러한 키는 각 iCloud 사용자에 대해 고유하며 사용자의 신뢰하는 기기에서 생성됩니다. 데이터가 CloudKit에 기록되면, 모든 레코드 키가 사용자의 신뢰하는 기기에서 생성되고 데이터를 업로드하기 전에 적합한 키 계층으로 래핑됩니다.
Apple 지원 문서 iCloud 데이터 보안 개요에 나열된 많은 Apple 서비스는 iCloud 키체인 동기화와 같은 방식으로 보호되는 CloudKit 서비스 키로 종단간 암호화를 사용합니다. 이러한 CloudKit 컨테이너의 서비스 키는 사용자의 신뢰하는 기기에서만 사용 가능하며 Apple 또는 타사에서 접근할 수 없습니다. 해당 키는 사용자가 iCloud 키체인을 사용해 암호, 패스키 및 기타 사용자 데이터를 동기화하지 않기로 선택한 경우에도 사용자의 기기 간에 동기화됩니다. 기기를 분실한 경우 사용자는 iCloud 키체인 복구 보안, 계정 복구 연락처 또는 계정 복구 키를 사용하여 iCloud 키체인 데이터를 복구할 수 있습니다.
암호화 키 관리
CloudKit에 있는 암호화된 데이터의 보안은 그에 상응하는 보안 키의 보안에 달려 있습니다. CloudKit 서비스 키는 종단간 암호화(end-to-end encrypted) 및 인증 후 사용 가능(available-after-authentication)의 두 가지 카테고리로 나눌 수 있습니다.
종단간 암호화 서비스 키: 종단간 암호화되는 iCloud 서비스의 경우, 관련 CloudKit 서비스 개인 키는 절대 Apple 서버에 제공되지 않습니다. 개인 키를 포함한 서비스 키 쌍은 사용자의 신뢰하는 기기에서 로컬로 생성되며 iCloud 키체인 보안을 사용하여 사용자의 다른 기기로 전송됩니다. iCloud 키체인 복구 및 동기화 흐름이 Apple 서버에 의해 조정되긴 하지만, 사용자의 키체인 데이터에 대한 Apple 서버의 접근은 암호화 방식으로 차단되어 있습니다. iCloud 키체인에 대한 접근 권한과 그에 대한 모든 복구 메커니즘을 상실하는 최악의 상황이 발생하면 CloudKit에 있는 종단간 암호화된 데이터는 유실됩니다. Apple은 이러한 데이터 복구를 도울 수 없습니다.
인증 후 사용 가능 서비스 키: 사진 및 iCloud Drive와 같은 다른 서비스의 경우, 서비스 키는 Apple 데이터 센터의 iCloud HSM(하드웨어 보안 모듈)에 저장되고, 일부 Apple 서비스가 이에 접근할 수 있습니다. 사용자가 새로운 기기에서 iCloud에 로그인하고 자신의 Apple ID를 인증하면, 추가적인 사용자 상호 작용이나 입력 없이 Apple 서버에서 이러한 키에 접근할 수 있습니다. 예를 들어, 사용자가 iCloud.com에 로그인하고 나면 사용자는 온라인에서 자신의 사진을 즉시 볼 수 있습니다. 이러한 서비스 키는 인증 후 사용 가능 키입니다.