암호화는 대칭 암호화 키를 사용하여 Android 기기의 모든 사용자 데이터를 인코딩하는 프로세스입니다. 기기가 암호화되면 사용자가 생성한 모든 데이터는 디스크에 커밋되기 전에 자동으로 암호화되며 모든 읽기 작업은 데이터를 호출 프로세스로 반환하기 전에 자동으로 복호화합니다. 암호화를 사용하면 승인되지 않은 당사자가 데이터에 액세스하려고 시도해도 데이터를 읽을 수 없습니다.
Android에는 파일 기반 암호화와 전체 디스크 암호화, 이렇게 두 가지의 기기 암호화 방식이 있습니다.
파일 기반 암호화
Android 7.0 이상에서는 파일 기반 암호화를 지원합니다. 파일 기반 암호화를 사용하면 개별적으로 잠금 해제 가능한 여러 키를 사용하여 여러 파일을 암호화할 수 있습니다. 파일 기반 암호화를 지원하는 기기는 직접 부팅도 지원할 수 있습니다. 직접 부팅을 사용하면 암호화된 기기를 잠금 화면으로 바로 부팅할 수 있으므로 접근성 서비스 및 알람 등의 중요한 기기 기능에 빠르게 액세스할 수 있습니다.
앱이 암호화를 인지하도록 하는 파일 기반 암호화 및 API가 구축된 앱은 제한된 컨텍스트 내에서 작동할 수 있습니다. 이는 사용자가 사용자 인증 정보를 제공하기 전에 발생할 수 있으며, 비공개 사용자 정보는 계속해서 보호됩니다.
메타데이터 암호화
Android 9에는 하드웨어 지원이 존재하는 메타데이터 암호화 지원이 도입되었습니다. 메타데이터 암호화를 사용하면 부팅 시의 단일 키가 FBE에 의해 암호화되지 않은 모든 콘텐츠를 암호화합니다(예: 디렉터리 레이아웃, 파일 크기, 권한 및 생성/수정 시간). 이 키는 자체 검사 부팅에서 보호하는 Keymaster를 통해 보호됩니다.
전체 디스크 암호화
Android 5.0부터 Android 9까지는 전체 디스크 암호화를 지원합니다. 전체 디스크 암호화는 사용자 기기의 비밀번호로 보호되는 단일 키를 사용하여 기기의 사용자 데이터 파티션 전체를 보호합니다. 부팅 시 사용자는 디스크의 어느 부분이든 사용자 인증 정보를 제공해야 액세스할 수 있습니다.
보안적인 측면에서는 훌륭하지만 사용자가 기기를 재부팅하면 휴대전화의 핵심 기능을 즉각적으로 사용하지 못할 수도 있습니다. 데이터 액세스가 단일 사용자 인증 정보로 보호되므로 알람 등의 기능이 작동하지 않고 접근성 서비스를 사용할 수 없으며 휴대전화로 전화를 받을 수가 없었습니다.