지문 센서가없는 iPhone이 출시되면 인증에 지문을 사용하는 방법과 데이터가 얼마나 안전하게 저장되는지에 대해 이야기했습니다. 대단해. 어떻게하는지에 대해 걱정하지 않아도 걱정할 필요가없는 방식으로 처리 될 수 있도록 다른 많은 사람들이 필요합니다!
우선, Apple은 비슷한 솔루션을 사용하며 지문 센서가있는 구형 모델을 사용하는 경우 이전과 마찬가지로 안전하게 사용할 수 있습니다. 마시멜로 이전에 출시되고 삼성 고유의 방법을 사용했던 구형 삼성 휴대 전화에서도 마찬가지입니다.
Google이 지문 데이터를 저장하는 방법은 최신 기술로 가능한 가장 안전한 방법입니다. 한 번 살펴보면 전체 개요가 얼마나 간단한 지 흥미 롭습니다. 단순하고 안전한 것은 항상 승리하는 콤보입니다.
스토리지는 본질적으로 그다지 안전하지 않습니다. 포스트잇 메모에 무언가를 쓰고 파일 캐비닛에 넣는 것과 같습니다. 거기에 있어야하기 때문에 거기에 있으며 액세스 할 수있는 사람을 제어하는 것이 가장 좋습니다. 파일 캐비닛의 경우 잠금을 사용하고 전화기의 경우 암호화를 사용합니다. 지문 데이터의 경우 한 단계 더 나아가 TEE (Trusted Execution Environment)입니다.
TEE는 전화기 하드웨어에서 분리되고 분리 된 영역입니다. TEE는 자체 프로세서와 메모리를 사용하거나 주 CPU에서 가상화 된 인스턴스를 사용할 수 있습니다. 두 경우 모두 TEE는 하드웨어 지원 메모리 및 입 / 출력 보호를 사용하여 완전히 격리되고 절연됩니다. 당신이 들어갈 수있는 유일한 방법은 TEE가 당신을 받아들이는 것입니다. 전화가 루팅되었거나 부트 로더가 잠금 해제되어 있어도 TEE는 분리되어 그대로 유지됩니다.
자체 메모리와 운영 체제가있는 별도의 프로세서를 사용하여 지문 데이터를 분석하고 저장합니다.
Google은이를 지원하기 위해 Trusty TEE라고하는 것을 사용합니다. 매우 작고 효율적인 운영 체제 (적절한 이름이 Trusty OS)는 TEE 하드웨어에서 실행되며 커널 드라이버를 통해 시스템과 통신 할 수 있습니다. 개발자가 사용할 수있는 Android 라이브러리 (Trusty API)가 있으므로 TEE에 예 또는 아니오로 질문 할 수 있습니다. 지문 데이터 만이 TEE에 저장되지 않습니다. DRM 키 및 제조업체의 부트 로더 암호화 키와 같은 것들도 TEE에 있으며 지문 데이터와 동일한 방식으로 작동합니다. 응용 프로그램에서 제공 한 데이터가 저장된 양호한 데이터와 일치하는지 여부에 응답합니다.
다른 제조업체는 Trusty OS를 사용하거나 다른 시스템을 사용할 수 있습니다. 모든 기준이 충족되고 (아래에 나열 됨) TEE가 격리 및 절연되어 있으면 Pixel Imprint (이전의 Nexus Imprint)를 사용하는 데 필요한 보안 표준을 충족합니다.
ARM TrustZone TEE 블록 다이어그램.Android 폰에서 지문을 등록하면 센서가 스캔 데이터를 가져옵니다. Trusty OS는 TEE 내부에서이 데이터를 분석 한 다음 유효성 검사 데이터 세트와 암호화 된 지문 템플릿이라는 두 가지를 만듭니다. 이것은 정크 데이터를 해독하는 열쇠를 가지고있는 TEE를 제외한 모든 것에 대한 정크 데이터 인 것으로 보인다. 이 암호화 된 지문 템플릿은 TEE 또는 전화기의 암호화 된 저장소에 암호화 된 컨테이너에 저장됩니다. 세 개의 암호화 계층은 데이터를 얻는 것이 거의 불가능하다는 것을 의미하며, 데이터를 해독 할 수있는 방법이 없이는 쓸모없는 경우에도 마찬가지입니다.
Android에서는 고유 한 키로 지문 데이터를 보호해야하므로 다른 휴대 전화로 가져 가거나 다른 사용자에게 재사용 할 수 없습니다.
검증 데이터는 TEE 내부에 저장됩니다. 무언가를 시도하기 위해 스캐너에 손가락을 대면 스캐너가 데이터 프로파일을 작성합니다. Trusty API를 통해 연결된 응용 프로그램은 커널에게 TEE가 올바른지 묻습니다. TEE는 별도의 프로세서와 메모리를 사용하여 저장된 유효성 검사 데이터를 확인하고 일치하는 데이터가 있으면 예라고 말합니다. 일치하는 데이터가 충분하지 않으면 아니요라고 표시됩니다. 이 합격 또는 불합격 응답은 API가 결과를보기 위해 읽을 수있는 소프트웨어 토큰으로 커널에 다시 전송됩니다.
TEE 자체는 독립형 OS 및 하드웨어를 사용하여 보안을 유지하지만 지문 템플릿은 소프트웨어 기반 암호화를 사용합니다. 유효하려면 매우 구체적인 키로 서명해야합니다. 이 키는 장치 별 정보, 사용자 별 정보 및 시간별 정보를 사용하여 생성됩니다. 즉, 사용자를 제거하거나 장치를 변경하거나 지문을 다시 등록하려고하면 (시스템에서 기존 지문을 덮어 쓰고 있는지 알 수 있음) 키가 더 이상 인식되지 않으며 지문을 해독하는 데 사용할 수 없습니다 주형.
지문 센서가있는 Android 전화를 만드는 모든 회사의 기본 규칙은 다음과 같습니다.
- 모든 지문 데이터 분석은 TEE 내부에서 수행해야합니다.
- 지문과 관련된 모든 데이터는 TEE 또는 신뢰할 수있는 메모리 (주 CPU가 볼 수없는 메모리)에 저장해야합니다.
- 지문 프로파일 데이터는 암호화 된 전화 저장소에 저장된 경우에도 자체 암호화되어야합니다.
- 사용자 계정을 제거하면 해당 사용자의 지문과 관련된 모든 데이터를 안전하게 지워야합니다
- 지문 프로파일이 저장된 곳은 루트 사용자를 포함한 모든 응용 프로그램, 프로세스 또는 사용자에게 보이지 않아야합니다.
- 클라우드, 컴퓨터 또는 응용 프로그램을 포함한 다른 종류의 지문 데이터는 다른 소스에 백업해서는 안됩니다
- 지문 인증은 요청한 프로세스에서 사용해야합니다 (예: 지문 데이터가 정확하지 않은지 여부에 대한 예 또는 아니요).
명확한 표준 사양이 몇 개라도 충족하기가 어렵지 않습니다. 지문 데이터를 사용하는 Android 휴대 전화가 안전하게 저장되고 다른 시스템 프로세스 나 앱이 액세스 할 수 없도록합니다. 암호화, 특히 하드웨어 기반 암호화가 발전함에 따라 지문 데이터를 안전하게 유지하는이 방법도 사용됩니다. Android Z가 출시되면 되돌아보고 우리가 얼마나 멀리 왔는지를 보는 것은 흥미로울 것입니다.