생체 인식 요소는 Android 플랫폼에서 보안 인증을 허용합니다.
Android 프레임워크에는 얼굴 및 지문 생체 인식 인증이 포함되어 있습니다.
홍채 인식 등 다른 형태의 생체 인식 인증을 지원하도록 Android를 맞춤설정할 수 있습니다. BiometricPrompt
클래스에 참여하려면 모든 생체 인식 구현이 보안 규정을 충족하고 강력한 등급을 보유해야 합니다. 생체 인식은 Imposter Accept Rate(IAR) 및 Spoof Accept Rate(SAR)를 통해 측정됩니다.
생체 인식 보안 규정에 관한 자세한 내용은 생체 인식 잠금 해제 보안 측정을 참조하세요.
소스
Android 10
- 개발자가 생체 인식 인증의 사용 가능 여부를 쿼리하는 데 사용할 수 있는
BiometricManager
클래스가 도입되었습니다. BiometricPrompt
에 지문 및 얼굴 인증 통합이 포함되었습니다.
Android 9
BiometricPrompt
에 지문 통합만 포함되었습니다.- FingerprintManager 클래스가 지원 중단되었습니다. 번들 및 시스템 앱에서 이 클래스를 사용하는 경우 대신
BiometricPrompt
및BiometricManager
를 사용하도록 업데이트합니다. FingerprintManager
CTS 인증기 테스트가BiometricPromptBoundKeysTest
를 사용하여BiometricPrompt
를 테스트하도록 업데이트되었습니다.
구현
사용자와 개발자의 생체 인식 환경을 원활하게 하려면 생체 인식 스택을 BiometricPrompt
와 통합하세요. 얼굴, 지문, 홍채를 비롯한 모든 모달리티에 BiometricPrompt
를 사용 설정하는 기기는 이러한 보안 강도 요구사항을 준수해야 합니다. 보안 강도 요구사항을 충족하지 못하면 이 클래스를 구현할 수 없습니다.
생체 인식 스택을 BiometricPrompt
및 BiometricManager
와 통합하려면 다음을 실행하세요.
- <Modality> 서비스가
BiometricService
에 올바르게 연결되어 있고authenticate()
메서드를 연결하는지 확인합니다. 일반적인 모달리티(지문, 얼굴)는 일반적인 슈퍼클래스에서 확장됩니다. 지원되지 않는 모달리티를 통합해야 하는 경우 지문/얼굴 예시 및 생체 인식 관련 CDD 가이드라인을 따르세요. - SystemUI에서 새 모달리티가 제대로 지원되는지 확인합니다. 지문과 얼굴에 관한 기본
BiometricPrompt
사용자 인터페이스가 있습니다. - 추가된 생체 인식을 위해
KEYGUARD_DISABLE_*
플래그를 적용하도록 프레임워크를 업데이트합니다. - 기기가
BiometricPrompt
/BiometricManager
에 통합한 모든 모달리티의 CTS 및 CtsVerifier 테스트를 통과하는지 확인합니다. 예를 들어 지문과 얼굴이 모두 있다면 테스트에서는 지문과 얼굴이 개별적으로 통과해야 합니다.

HAL 구현 가이드라인
생체 인식 데이터가 유출되지 않고 사용자가 기기에서 삭제했을 때 삭제되도록 하려면 다음 생체 인식 HAL 가이드라인을 따르세요.
- 센서 드라이버나 안전한 격리 환경(예: TEE 또는 보안 요소) 외부에서 원시 생체 인식 데이터 또는 파생물(예: 템플릿)에 절대 액세스할 수 없도록 합니다.
- 하드웨어가 이를 지원하는 경우 하드웨어 보안 격리 환경에서 하드웨어 액세스를 제한하고 SELinux 정책을 통해 보호합니다. 모든 기기 파일에서 통신 채널(예: SPI, I2C)이 명시적 SELinux 정책을 사용하는 보안 격리 환경에만 액세스할 수 있도록 합니다.
- 정보 유출 및 기타 공격을 방지하려면 보안 격리 환경에서 생체 인식 기능을 보유, 등록 및 인증해야 합니다. 이 요구사항은 강력한 생체 인식 기능에만 적용됩니다.
- 파일 시스템 자체가 암호화된 경우에도 암호화된 형태의 생체 인식 데이터 또는 파생물만 파일 시스템에 저장합니다.
- 재생 공격으로부터 보호하려면 비공개 기기 전용 키로 생체 인식 템플릿에 서명하세요. 고급 암호화 표준(AES)의 경우 템플릿 파일이 다른 기기에서 또는 같은 기기에 등록한 다른 사용자에 의해 작동되지 않도록 최소 한 개의 템플릿을 절대 파일 시스템 경로, 그룹 및 생체 인식 ID로 서명합니다. 예를 들어 같은 기기의 다른 사용자 계정에서 또는 다른 기기에서 생체 인식 데이터를 복사하는 등의 작업 자체가 불가능해야 합니다.
set_active_group()
함수에서 제공한 파일 시스템 경로를 사용하거나 사용자가 삭제될 때 모든 사용자 템플릿 데이터를 삭제할 수 있는 다른 방법을 제공해야 합니다. 생체 인식 템플릿 파일은 제공된 경로에 암호화된 형태로 저장하는 것이 좋습니다. 보안 격리 환경의 저장소 요구사항으로 인해 이를 실행할 수 없는 경우, 사용자를 삭제했거나 기기를 초기화할 때 데이터가 확실하게 제거되도록 후크를 추가합니다.
맞춤설정
기기가 여러 생체 인식 기능을 지원하는 경우 사용자는 설정에서 기본값을 지정할 수 있어야 합니다. BiometricPrompt
구현은 사용자가 명시적으로 재정의하지 않는 한 강력한 생체 인식을 우선적으로 설정해야 하며 생체 인식과 관련된 위험을 설명하는 경고 메시지를 표시해야 합니다(예: 사용자가 나온 사진으로 기기가 잠금 해제될 수 있습니다).
유효성 검사
생체 인식 기능을 구현하려면 다음 테스트를 통과해야 합니다.
- CTS BiometricManager
- CTS BiometricPrompt(상태, 인증기를 사용한 심층 테스트)
- CtsVerifier BiometricPromptBoundKeysTest: 기기에서 지원하는 각 모달리티를 개별적으로 전달해야 함
- CtsVerifier BiometricTest: 기기에서 지원하는 각 모달리티를 개별적으로 전달해야 함
또한 기기가 AOSP HIDL(fingerprint@2.1, face1.0)을 사용하는 생체 인식을 지원하는 경우 관련 VTS 테스트(지문, 얼굴)를 통과해야 합니다.