Apple 기기의 데이터 보호
데이터 보호를 제공하는 Apple 기기에서는 각 파일이 고유한 파일별 또는 익스텐트별 키로 보호됩니다. NIST AED 키 래핑 알고리즘을 사용하여 래핑된 해당 키는 파일 접근 방식에 따라 여러 클래스 키 중 하나로 다시 래핑됩니다. 래핑된 파일별 키는 파일의 메타데이터에 저장됩니다.
APFS 포맷을 사용하는 기기는 파일 복제(쓰기 시 복사 기술을 사용하는 제로 코스트 사본)를 지원할 수 있습니다. 파일이 복제되면 복제 데이터의 절반은 새로운 키를 얻어서 들어오는 쓰기 내용을 받으므로, 새로운 데이터는 새로운 키로 미디어에 기록됩니다. 시간이 지날수록 파일은 각기 다른 키에 매핑되는 다양한 익스텐트(또는 조각)로 구성됩니다. 하지만 파일을 구성하는 모든 익스텐트는 동일한 클래스 키로 보호됩니다.
파일을 열면 파일 시스템 키로 메타데이터의 암호화가 해제되고 래핑된 파일별 키와 키를 보호하는 클래스 이름이 공개됩니다. 파일별(또는 익스텐트별) 키는 클래스 키를 통해 래핑이 해제되고 하드웨어 AES 엔진에 공급됩니다. AES 엔진은 파일을 플래시 저장 공간에서 읽은 상태 그대로 암호화를 해제합니다. 래핑된 파일 키에 대한 처리는 모두 Secure Enclave에서 수행됩니다. 또한 파일 키는 절대로 응용 프로그램 프로세서에 직접 노출되지 않습니다. 시동 시 Secure Enclave는 AES 엔진과 임시 키를 교환합니다. Secure Enclave가 파일의 키를 래핑 해제하면 임시 키가 파일의 키를 다시 래핑하여 응용 프로그램 프로세서로 다시 보냅니다.
데이터 볼륨 파일 시스템에 있는 모든 파일의 메타데이터는 임의 볼륨 키로 암호화되어 있습니다. 임의 볼륨 키는 운영 체제가 처음으로 설치되거나 사용자가 기기의 데이터를 지운 경우에 생성됩니다. 이 키는 장기 보관용 Secure Enclave에만 알려지는 키 래핑 키로 암호화 및 래핑됩니다. 키 래핑 키는 사용자가 기기를 지울 때마다 변경됩니다. A9 이상의 SoC에서 Secure Enclave는 재전송 방지 시스템으로 보조하는 엔트로피에 의존하여 삭제 가능성을 확보하고, 다른 자산과 더불어 키 래핑 키를 보호합니다. 자세한 내용은 비휘발성 보안 저장 장치를 참조하십시오.
파일별 또는 익스텐트별 키와 같이 데이터 볼륨의 메타데이터 키는 응용 프로그램 프로세서에 직접 노출되지 않습니다. Secure Enclave는 부트별 버전의 임시값을 대신 제공합니다. 저장 시 암호화된 파일 시스템 키는 삭제할 수 있는 저장 장치(Effaceable Storage)에 저장된 ‘삭제할 수 있는 키’ 또는 Secure Enclave 재전송 방지 메커니즘에 의해 보호되는 미디어 키 래핑 키를 사용하여 추가 래핑됩니다. 이 키는 데이터 기밀을 추가적으로 제공하지 않습니다. 대신에 키는 요청 시에 빠르게 삭제됩니다(사용자가 모든 콘텐츠 및 설정 지우기 옵션을 사용하거나, 사용자 또는 관리자가 MDM(모바일 기기 관리) 솔루션, Microsoft Exchange ActiveSync 또는 iCloud에서 원격 지우기 명령을 사용하여 삭제할 수 있습니다). 이러한 방식으로 키를 삭제하는 경우 모든 파일이 암호화되어 접근할 수 없습니다.
파일의 콘텐츠는 하나 이상의 파일별(또는 익스텐트별) 키로 암호화됩니다. 파일별 키는 클래스 키로 래핑되어 파일의 메타데이터에 저장됩니다. 또한 메타데이터는 파일 시스템 키로 암호화됩니다. 클래스 키는 주로 하드웨어 UID로 보호되지만 일부 클래스의 경우 사용자의 암호로 보호됩니다. 이러한 보안 계층을 통해 유연성과 성능이 개선될 수 있습니다. 예를 들어 파일의 클래스를 변경하는 경우에는 파일별 키만 다시 래핑하면 되고, 암호를 변경하는 경우에는 클래스 키만 다시 래핑하면 됩니다.