게시자 : Vishwath Mohan, 보안 엔지니어


사용자를 안전하게 유지하기 위해 대부분의 앱과 기기에는 인증 메커니즘이 있거나 내가 자신임을 증명하는 방법이 있습니다. 이러한 메커니즘은 세 가지 범주로 나뉩니다. 지식 요소, 소유 요소 및 생체 측정 요소. 지식 요소는 사용자가 알고있는 (PIN 또는 암호와 같은) 물음 , 소유 요소가 사용자가 가지고있는 것 (토큰 생성기 또는 보안 키와 같은)을 요구 하고 생체 계측 요소가 사용자의 지문, 홍채 또는 얼굴과 같은 물체를 요구합니다 ).

생체 인식 인증 메커니즘이 점점 대중화되고 있으며, 왜 그런지 쉽게 알 수 있습니다. 비밀번호를 입력하는 것보다 빠르며 별도의 보안 키를 휴대하는 것보다 쉽고 지식 기반 인증의 가장 일반적인 함정 중 하나 인 어깨 서핑 의 위험을 방지합니다 .

사람의 개인 정보를 보호하기 위해 생체 인식 인증을 통합 한 장치가 늘어남에 따라 Android P의 생체 인식 기반 인증이 다음과 같이 향상되었습니다.

  • 생체 인식 보안을 측정 할 수있는 더 나은 모델을 정의하고이를 사용하여 기능이 약한 인증 방법을 제한합니다.
  • 개발자가 생체 인증을 앱에 통합 할 수있는 플랫폼 기반의 공통 진입 점을 제공합니다.


생체 인식을위한 더 나은 보안 모델

현재 생체 인식 잠금 해제는 기계 학습 (ML)에서 가져온 FAR (False Accept Rate) 및 FRR (False Reject Rate)의 두 가지 측정 항목을 사용하여 성능을 수량화합니다.

생체 인식의 경우, FAR은 생체 인식 모델이 실수로 잘못된 입력을 대상 사용자의 것으로 분류하는 빈도를 측정합니다. 즉, 다른 사용자가 합법적 인 장치 소유자로 잘못 인식되는 빈도를 측정합니다. 마찬가지로 FRR은 생체 인식 모델이 실수로 사용자의 생체 인식을 잘못된 것으로 분류하는 빈도, 즉 합법적 인 기기 소유자가 인증을 재 시도해야하는 빈도를 측정합니다. 첫 번째는 보안 문제이고 두 번째는 유용성 문제입니다.

두 측정 항목 모두 무작위 입력 샘플에 적용 할 때 주어진 ML (또는 생체 인식) 모델의 정확도와 정밀도를 측정하는 훌륭한 작업입니다. 그러나 두 가지 메트릭 모두 위협 모델의 일부로 활동중인 공격자를 설명하지 않으므로 공격에 대한 탄력성에 대한 유용한 정보를 제공하지 않습니다.

Android 8.1에서는 위협 모델의 공격자 (SAR (Spoof Accept Rate) 및 IAR (Imposter Accept Rate))를보다 명확하게 설명하는 두 가지 새로운 메트릭 을 도입했습니다 . 이름에서 알 수 있듯이이 측정 기준은 공격자가 생체 인증 스키마를 얼마나 쉽게 무시할 수 있는지 측정합니다. 스푸핑은 잘 알려진 녹음 (예 : 음성 녹음 재생 또는 얼굴 또는 지문 그림 사용)을 말하며, 사기 수락은 다른 사용자의 생체 인식을 성공적으로 모방 한 것입니다 (예 : 소리를 내거나 대상 사용자처럼 보임).


강력한 대 약한 생체 인식

우리는 SAR / IAR 측정 기준 을 사용하여 생체 인증 메커니즘을 강하거나 약한 것으로 분류합니다. SAR / IAR이 7 % 이하인 생체 인증 메커니즘은 강하며 7 % 이상은 약합니다. 왜 7 %가 특별히 필요한가요? 대부분의 지문 구현은 약 7 %의 SAR / IAR 메트릭을 가지므로 다른 방식으로 시작하기에 적합한 표준으로 만듭니다. 생체 인식 센서 및 분류 방법이 향상됨에 따라이 임계 값은 잠재적으로 감소 될 수 있습니다.

이 2 진 분류는 서로 다른 구현이 제공하는 보안 범위를 약간 단순화 한 것입니다. 그러나 우리는 계층 적 인증 모델을 통해 확장 가능한 메커니즘을 제공하여 그들이 제기하는 전반적인 위험을 기반으로 생태계 전반에 걸쳐 다양한 생체 인식 구현의 기능과 제약 조건을 적절하게 범위 지정합니다.

강력한 생체 인식과 약한 생체 인식 모두 기기 잠금을 해제 할 수 있지만 약한 생체 인식 :

  • 책상이나 충전기에 방치 할 때와 같이 4 시간 동안 사용하지 않으면 장치의 잠금을 해제하기 위해 기본 PIN, 패턴, 암호 또는 강력한 생체 인식을 다시 입력해야합니다. 이것은 강하고 약한 생체 인식 모두에 적용되는 72 시간 제한에 추가됩니다.
  • 앱 개발자가 모달에 의존하지 않는 방식으로 기기의 사용자를 안전하게 인증하는 공통 API 인 BiometricPrompt API 에서 지원되지 않습니다 .
  • KeyStore 인증 바인딩 키가 포함 된 지불을 인증하거나 다른 트랜잭션에 참여할 수 없습니다.
  • 사용하기 전에 생체 인식 사용의 위험을 분명하게 나타내는 경고를 사용자에게 표시해야합니다.

이러한 조치는 권한이없는 액세스의 위험을 줄이면서 약한 생체 인식을 허용하기위한 것입니다.


BiometricPrompt API

Android P를 시작으로 개발자는 BiometricPrompt API 를 사용하여 기기에서 생체 인식 인증을 생체 인식에 통합 할 수 있습니다 BiometricPrompt는 강력한 방식만을 제공하므로 개발자는 응용 프로그램이 실행되는 모든 장치에서 일관된 보안 수준을 확보 할 수 있습니다. 지원 라이브러리는 Android O 및 이전 버전을 실행하는 기기에도 제공되므로 애플리케이션이 더 많은 기기에서이 API의 이점을 활용할 수 있습니다.

응용 프로그램은 Android 9 이상에서 직접 BiometricPrompt에 연결할 수 있지만 개발자는 BiometricPrompt 라이브러리를 사용하여 가장 광범위한 장치를 지원해야합니다.

API는 사용하기 쉽도록 만들어 졌기 때문에 플랫폼이 앱 개발자가이 로직을 직접 구현하도록 강요하는 대신 인증 할 적절한 생체 인식을 선택할 수 있습니다. 다음은 개발자가 앱에서 어떻게 사용하는지 보여주는 예입니다.


결론

생체 인식 기술은 우리가 디지털 신원을 인증하는 방법을 단순화하고 강화할 수있는 잠재력을 지니고 있습니다. 단, 보안 성이 뛰어나고 정확하게 측정되며 개인 정보를 보존하는 방식으로 구현되어야합니다.

우리는 안드로이드가이 세 가지 모두에서 바로 그것을 원한다. 따라서 우리는 보안 설계 원리, 공격자를 인식하는 측정 방법론, 공통적으로 사용하기 쉬운 생체 인식 API를 결합하여 개발자가 간단하고 일관성 있고 안전한 방식으로 인증을 통합 할 수 있도록합니다.