이 섹션에 설명된 기능을 사용하면 직접 개발한 Android 기기를 최대한 안전하게 만들 수 있습니다.
애플리케이션 샌드박스
Android 플랫폼은 Linux 사용자 기반 보호 기능을 활용하여 앱 리소스를 식별하고 분리합니다. 이를 위해 Android는 각 Android 앱에 고유한 사용자 ID(UID)를 할당하여 자체 프로세스에서 실행합니다. Android는 이 UID를 사용하여 커널 수준의 애플리케이션 샌드박스를 설정합니다.
앱 서명
앱 서명을 통해 개발자는 복잡한 인터페이스 및 권한을 생성하지 않고도 앱 작성자를 식별하고 앱을 업데이트할 수 있습니다. Android 플랫폼에서 실행되는 모든 앱은 개발자가 서명해야 합니다.
인증
Android에는 기기의 잠금을 해제하고 다른 작업을 실행할 수 있는 사용자 인증자의 개념이 있습니다.
- 게이트키퍼 하위 시스템은 TEE (신뢰할 수 있는 실행 환경)에서 기기 패턴 또는 비밀번호 인증을 실행합니다.
- 선택적 Weaver 구성요소는 별도의 보안 칩에서 패턴 또는 비밀번호 인증을 실행합니다.
- 지문 센서가 있는 기기는 등록된 지문의 사용을 지원합니다.
- 기기가 얼굴 인증을 지원할 수 있습니다.
Android는 이러한 메커니즘 중 하나로 사용자 인증이 발생한 경우에만 사용할 수 있는 하드웨어 지원 암호화 키도 지원합니다.
생체 인식
Android 9 이상에는 앱 개발자가 기기 및 모달리티에 상관없이 생체 인식 인증을 앱에 통합하는 데 사용할 수 있는 BiometricPrompt
클래스가 포함되어 있습니다. 강력한 생체 인식만 BiometricPrompt
와 통합할 수 있습니다.
암호화
기기가 암호화되면 사용자가 생성한 모든 데이터는 디스크에 커밋되기 전에 자동으로 암호화되며 모든 읽기 작업은 데이터를 호출 프로세스로 반환하기 전에 자동으로 복호화합니다. 암호화를 사용하면 승인되지 않은 당사자가 데이터에 액세스하려고 시도해도 데이터를 읽을 수 없습니다.
키 저장소
Android는 키 자료가 보안 환경 내에 포함된 암호화 기능을 제공하는 하드웨어 지원 키 저장소를 제공합니다. Android 키 저장소는 암호화, 복호화, 서명, 키 협약 프리미티브와 함께 대칭 키와 비대칭 키의 생성 및 가져오기를 모두 지원합니다.
보안 강화 Linux
Android는 Android 보안 모델의 일부로 보안 강화 Linux(SELinux)를 사용하여 루트 또는 수퍼유저 권한 (Linux 기능)으로 실행되는 프로세스를 포함한 모든 프로세스에 강제 액세스 제어 (MAC)를 적용합니다.
Trusty TEE
Trusty TEE
Trusty는 Android용 TEE를 제공하는 안전한 운영체제 (OS)입니다. Trusty OS는 Android OS와 동일한 프로세서에서 실행되지만 Trusty는 하드웨어와 소프트웨어에 의해 나머지 시스템과 격리됩니다.
자체 검사 부팅
자체 검사 부팅은 실행된 모든 코드의 출처가 공격자 또는 손상된 코드가 아닌 신뢰할 수 있는 소스 (일반적으로 기기 OEM)인지 확인하도록 설계되었습니다. 자체 검사 부팅은 하드웨어로 보호되는 신뢰할 수 있는 루트에서 부트로더, 부팅 파티션, 기타 인증된 파티션에 이르기까지 전체 신뢰 체인을 설정합니다.