데이터 보호 개요
Apple은 데이터 보호라는 기술을 사용하여 iPhone, iPad, Apple Watch, Apple TV 및 Apple Silicon이 탑재된 Mac 컴퓨터와 같은 Apple SoC 기기의 플래시 저장 장치에 저장된 데이터를 안전하게 보호합니다. 데이터 보호는 통화 수신과 같은 일반적인 이벤트에 기기가 응답하는 것을 허용하는 동시에 사용자 데이터에 대해서는 높은 수준의 암호화를 제공합니다. 기본적으로 데이터 보호는 메시지, Mail, 캘린더, 연락처, 사진 등 특정 시스템 앱의 데이터 값과 건강 데이터 값에 사용됩니다. 타사 앱은 자동으로 이 보호 기능을 받습니다.
구현
데이터 보호는 키 계층을 구성하고 관리하는 방식으로 구현되며, Apple 기기에 내장된 하드웨어 암호화 기술을 기반으로 합니다. 데이터 보호는 각각의 파일을 클래스에 할당하는 파일별 기준으로 제어되며, 클래스 키가 잠금 해제되었는지에 따라 접근성이 결정됩니다. APFS(Apple 파일 시스템)로 파일 시스템이 키를 익스텐트 단위로 더욱 세분화할 수 있습니다(파일 일부가 다른 키를 가진 경우).
데이터 볼륨에 파일이 생성될 때마다 데이터 보호는 256비트 키(파일별 키)를 새로 생성하며 하드웨어 AES 엔진에 전달합니다. AES 엔진은 이 키를 사용해 플래시 저장 공간에 작성되는 파일을 암호화합니다. A14부터 A17 기기 및 M1부터 M3 기기에서 암호화는 XTS 모드에서 AES-256을 사용하여 256비트 파일별 키가 키 파생 함수(NIST Special Publication 800-108)를 거치며 256비트 트윅과 256비트 암호 키를 파생합니다. A9부터 A13 기기 및 S5부터 S9 기기에서 암호화는 XTS 모드에서 AES128을 사용하며, 256비트 파일별 키가 분리되어 128비트 트윅과 128비트 암호 키를 제공합니다.
Apple Silicon이 탑재된 Mac에서는 기본적으로 클래스 C의 데이터 보호(데이터 보호 클래스 참조)를 제공하지만, 익스텐트별 또는 파일별 키를 사용하는 대신 볼륨 키를 사용하며 사용자 데이터에 FileVault 보안 모델을 재생성하게 됩니다. 암호를 사용하여 암호화 키 계층 구조를 완전히 보호하기 위해서 사용자는 계속 FileVault를 선택해야 합니다. 개발자는 파일별 또는 익스텐트별 키를 사용하는 상위 보호 클래스를 선택할 수도 있습니다.