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