Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

생체 인식

생체 인식 요소는 Android 플랫폼에서 보안 인증을 허용합니다. Android 프레임워크에는 얼굴 및 지문 생체 인식 인증이 포함되어 있습니다. 홍채 인식 등 다른 형태의 생체 인식 인증을 지원하도록 Android를 맞춤설정할 수 있습니다. BiometricPrompt 클래스에 참여하려면 모든 생체 인식 구현이 보안 규정을 충족하고 강력한 등급을 보유해야 합니다. 생체 인식은 Imposter Accept Rate(IAR)Spoof Accept Rate(SAR)를 통해 측정됩니다.

생체 인식 보안 규정에 관한 자세한 내용은 생체 인식 잠금 해제 보안 측정을 참조하세요.

소스

Android 10

  • 개발자가 생체 인식 인증의 사용 가능 여부를 쿼리하는 데 사용할 수 있는 BiometricManager 클래스가 도입되었습니다.
  • BiometricPrompt에 지문 및 얼굴 인증 통합이 포함되었습니다.

Android 9

  • BiometricPrompt에 지문 통합만 포함되었습니다.
  • FingerprintManager 클래스가 지원 중단되었습니다. 번들 및 시스템 앱에서 이 클래스를 사용하는 경우 대신 BiometricPromptBiometricManager를 사용하도록 업데이트합니다.
  • FingerprintManager CTS 인증기 테스트가 BiometricPromptBoundKeysTest를 사용하여 BiometricPrompt를 테스트하도록 업데이트되었습니다.

구현

사용자와 개발자의 생체 인식 환경을 원활하게 하려면 생체 인식 스택을 BiometricPrompt와 통합하세요. 얼굴, 지문, 홍채를 비롯한 모든 모달리티에 BiometricPrompt를 사용 설정하는 기기는 이러한 보안 강도 요구사항을 준수해야 합니다. 보안 강도 요구사항을 충족하지 못하면 이 클래스를 구현할 수 없습니다.
생체 인식 스택을 BiometricPromptBiometricManager와 통합하려면 다음을 실행하세요.

  • <Modality> 서비스가 BiometricService에 올바르게 연결되어 있고 authenticate() 메서드를 연결하는지 확인합니다. 일반적인 모달리티(지문, 얼굴)는 일반적인 슈퍼클래스에서 확장됩니다. 지원되지 않는 모달리티를 통합해야 하는 경우 지문/얼굴 예시 및 생체 인식 관련 CDD 가이드라인을 따르세요.
  • SystemUI에서 새 모달리티가 제대로 지원되는지 확인합니다. 지문과 얼굴에 관한 기본 BiometricPrompt 사용자 인터페이스가 있습니다.
  • 추가된 생체 인식을 위해 KEYGUARD_DISABLE_* 플래그를 적용하도록 프레임워크를 업데이트합니다.
  • 기기가 BiometricPrompt/BiometricManager에 통합한 모든 모달리티의 CTS 및 CtsVerifier 테스트를 통과하는지 확인합니다. 예를 들어 지문과 얼굴이 모두 있다면 테스트에서는 지문과 얼굴이 개별적으로 통과해야 합니다.
BiometricPrompt 아키텍처
그림 1. BiometricPrompt 아키텍처

HAL 구현 가이드라인

생체 인식 데이터가 유출되지 않고 사용자가 기기에서 삭제했을 때 삭제되도록 하려면 다음 생체 인식 HAL 가이드라인을 따르세요.

  • 센서 드라이버나 안전한 격리 환경(예: TEE 또는 보안 요소) 외부에서 원시 생체 인식 데이터 또는 파생물(예: 템플릿)에 절대 액세스할 수 없도록 합니다.
  • 하드웨어가 이를 지원하는 경우 하드웨어 보안 격리 환경에서 하드웨어 액세스를 제한하고 SELinux 정책을 통해 보호합니다. 모든 기기 파일에서 통신 채널(예: SPI, I2C)이 명시적 SELinux 정책을 사용하는 보안 격리 환경에만 액세스할 수 있도록 합니다.
  • 정보 유출 및 기타 공격을 방지하려면 보안 격리 환경에서 생체 인식 기능을 보유, 등록 및 인증해야 합니다. 이 요구사항은 강력한 생체 인식 기능에만 적용됩니다.
  • 파일 시스템 자체가 암호화된 경우에도 암호화된 형태의 생체 인식 데이터 또는 파생물만 파일 시스템에 저장합니다.
  • 재생 공격으로부터 보호하려면 비공개 기기 전용 키로 생체 인식 템플릿에 서명하세요. 고급 암호화 표준(AES)의 경우 템플릿 파일이 다른 기기에서 또는 같은 기기에 등록한 다른 사용자에 의해 작동되지 않도록 최소 한 개의 템플릿을 절대 파일 시스템 경로, 그룹 및 생체 인식 ID로 서명합니다. 예를 들어 같은 기기의 다른 사용자 계정에서 또는 다른 기기에서 생체 인식 데이터를 복사하는 등의 작업 자체가 불가능해야 합니다.
  • set_active_group() 함수에서 제공한 파일 시스템 경로를 사용하거나 사용자가 삭제될 때 모든 사용자 템플릿 데이터를 삭제할 수 있는 다른 방법을 제공해야 합니다. 생체 인식 템플릿 파일은 제공된 경로에 암호화된 형태로 저장하는 것이 좋습니다. 보안 격리 환경의 저장소 요구사항으로 인해 이를 실행할 수 없는 경우, 사용자를 삭제했거나 기기를 초기화할 때 데이터가 확실하게 제거되도록 후크를 추가합니다.

맞춤설정

기기가 여러 생체 인식 기능을 지원하는 경우 사용자는 설정에서 기본값을 지정할 수 있어야 합니다. BiometricPrompt 구현은 사용자가 명시적으로 재정의하지 않는 한 강력한 생체 인식을 우선적으로 설정해야 하며 생체 인식과 관련된 위험을 설명하는 경고 메시지를 표시해야 합니다(예: 사용자가 나온 사진으로 기기가 잠금 해제될 수 있습니다).

유효성 검사

생체 인식 기능을 구현하려면 다음 테스트를 통과해야 합니다.

또한 기기가 AOSP HIDL(fingerprint@2.1, face1.0)을 사용하는 생체 인식을 지원하는 경우 관련 VTS 테스트(지문, 얼굴)를 통과해야 합니다.