Fingerprint 장치에 Windows Hello를 지원하는 방법을 알아봅시다!

영문 대소문자/숫자/특수문자 중 3가지 이상 조합, 6자~16자

이것은 쇼핑몰이나 은행을 포함한 온/오프라인 서비스를 이용하기 위해 회원 가입을 할 때 반드시 요구되는 비밀번호 양식입니다. 비밀번호 양식은 서비스를 제공하는 곳마다 조금씩은 다르지만 소중한 개인의 정보를 보호하기 위한 명목하에 비밀번호의 복잡성은 점점 높아져 가고 있습니다. 
비단 비밀번호뿐만이 아니죠. 
혹시 다 기억하고 계시나요? 지금까지 가입했던 서비스의 아이디와 비빌번호를요?

아이디 혹은 비밀번호 오류입니다. 
5회 이상 틀릴 경우 계정의 접근이 제한됩니다.

비밀번호를 틀리면 이 계정의 주인과 지금 로그인하는 사람이 진짜 '나'여도 별다른 도리가 없습니다. 비밀번호를 찾기 위해 휴대폰 인증의 단계를 거쳐야죠. 
본인 명의의 휴대폰으로 '나'임을 확인하면 그다음은 또 잊어버릴, 복잡한 비밀번호를 설정하게 됩니다.


 다행히도 Windows는 이렇게 가혹할 정도로 비밀번호를 설정하게끔 하지는 않습니다. 
하지만 복잡하고 긴 비밀번호를 입력하는 것은 여간 귀찮은 일이 아닐 수 없죠.

 마이크로소프트의 Windows Hello는 비밀번호를 입력하는 것보다 3배 빠르게 2초 이내에 Windows 10 장치에 로그인할 수 있습니다. 어떻게? 지문이나 얼굴로 말이죠. 
지문으로 잠금 해제하는 방식은 이미 이 기술이 적용된 휴대폰이 보편화하여 있기 때문에 비밀번호가 몇 자리인지, 대소문자가 있는지 기억하지 않아도 된다는 점, 로그인에 실패할 일이 거의 없다는 점, 가장 쉽고 빠른 방법으로 로그인할 수 있다는 점, 뛰어난 보안 등등의 다양한 장점이 있습니다. 

 그럼 Windows Hello를 지원하려면 어떻게 해야할까요? 
우선 지문을 인식하는 하드웨어 장치가 있어야 하고 Windows에서 이 장치를 제어하고 데이터를 주고받는 드라이버가 있어야 합니다. 이 두 가지만 있으면 Windows Hello를 사용할 수 있을까요? 

 이 글에서 지문인식 장치와 드라이버를 기반으로 
Windows Hello를 지원하는 방법을 소개하도록 하겠습니다.



Windows Biometric Framework 드라이버 개발

 마이크로소프트에서 제공하는 문서에 Biometric Framework 구조와 어댑터를 구현하는 방법과 드라이버 샘플 등이 자세히 기술되어 있는데요, 지문을 등록/식별하기 위해 센싱을 요청하는 센서 어댑터, USB 통신으로 지문 이미지 데이터를 캡처해서 전달해주는 센서 드라이버, 이 드라이버가 캡처한 지문 이미지 데이터를 탬플릿으로 생성하고 기존에 있는 탬플릿과 비교하여 같은지 판단하고 매치하고 정렬하는 엔진 어댑터, 지문 탬플릿을 저장하고 데이터베이스를 관리하는 스토리지 어댑터가 있습니다.

각 구성 요소는 아래의 그림과 같은 구조로 이루어집니다.



드라이버 INF에 [SignatureAttributes] 섹션 추가하기

 이 부분은 드라이버의 기능과는 연관이 없지만, 드라이버 adapter.dll에 Biometric 서명이 될 수 있도록 드라이버 INF 파일 안에 [SignatureAttributes]와 [SignatureAttributes.WindowsHello] 섹션을 추가한 후 서명할 adapter.dll을 지정해야 합니다.


  [SignatureAttributes]
   sensor.dll = SignatureAttributes.WindowsHello
   engine.dll = SignatureAttributes.WindowsHello
   storage.dll = SignatureAttributes.WindowsHello

  [SignatureAttributes.WindowsHello]
   WindowsHello = true



하드웨어와 드라이버 사전 검증

  • 뭘 해야 하나?
  • 요구사항은 어디서 찾나?

 이 단계에서는 앞에서 개발한 드라이버와 지문 인식 장치가 마이크로소프트의 생체인식 요구사항을 충족하는지 미리 검증해야 합니다. 최신의 요구사항은 Microsoft Collaborate 포털에서 다운로드 할 수 있는데요. 이 Collaborate는 Windows, Office, Dynamics 365와 같은 마이크로소프트의 제품의 요구사항, 문서, 도구, 빌드를 미리 받아볼 수 있고 받아본 제품의 버그를 등록하거나 새로운 기능, 피드백을 주고받을 수 있도록 구성된 서비스로 Windows 하드웨어 개발자 센터 대시보드에 내장되어 있습니다. 

 하드웨어와 드라이버가 요구사항을 충족하는지 검증하는 작업도 중요하지만, Collaborate에서 생체인식과 연관된 빌드나 문서를 볼 수 있도록 '프로그램(Program)'이나 '계약(Engagement)'에 가입하는 작업이 가장 중요합니다. 생체인식과 연관 된 계약에 가입하지 못한다면 요구사항을 확인할 수 없고 사전 검증도 못 하게 되니까요. 그럼 Collaborate에서 생체인식 요구사항을 누구나 쉽게 다운로드 할 수 있을까요? 

 아무래도 마이크로소프트와 협업을 해야 하다 보니 이 생체인식 요구사항을 받아보려면 마이크로소프트의 승인이 있어야 합니다. Collaborate 포털에서 요구사항을 받아볼 수 있는 계약에 가입하려면 어떻게 해야 할까요?

※ 프로그램과 계약과 같이 Collaborate에서 제공하는 서비스의 이해를 높이기 위해
 'Microsoft Collaborate: Documentation and Guidance' 항목을 먼저 보는 것을 권장합니다. 


Microsoft Hardware Developer Center 계정 만들기

 Collaborate나 제출한 드라이버를 관리하는 Hardware는 Windows 하드웨어 개발자 센터 대시보드를 통해서 접근할 수 있는데 이 서비스를 사용하려면 당연히 Windows 하드웨어 개발자 센터 대시보드의 계정이 있어야겠죠? 계정이 없다면 이 링크를 클릭한 다음 마이크로소프트 계정을 만드세요. 
마이크로소프트 계정이 있다면 이제는 Azure AD(Azure Active Directory) 계정을 만들 차례입니다. 

 Azure AD 계정은 Windows 하드웨어 개발자 센터 대시보드에서 제공하는 서비스를 사용하게 해주는 글로벌 관리자 계정인데 하나의 조직(회사)에 사용자를 추가, 변경하거나 드라이버를 제출할 수 있는 권한을 부여, 제거할 수 있습니다. Hardware나 Collaborate를 등록하려면 조직의 Azure AD 계정으로 등록해야 합니다. 
따라서 Azure AD 계정으로 등록하거나 조금 전에 만든 마이크로소프트 계정을 조직에 추가한 후 권한을 부여해서 등록해야 합니다. 더불어 Windows 하드웨어 개발자 센터 대시보드에서 드라이버 제출하는데 사용되는 코드 서명용 EV코드사이닝 인증서도 반드시 준비해주세요.

Windows 하드웨어 개발자 센터의 Hardware 프로그램 등록하기

 Hardware 프로그램 등록 절차는 Azure AD 계정으로 로그인한 다음 EV코드사이닝 인증서로 서명한 파일을 업로드하는 순서로 진행되며 별도의 마이크로소프트 승인이 없어도 등록할 수 있습니다. 여기에서는 HLK(Hardware Lab Kit)와 같은 테스트 도구로 테스트한 드라이버 결과 패키지를 제출하고 드라이버를 배포, 관리할 수 있습니다.


Windows 하드웨어 개발자 센터의 Collaborate 프로그램 등록하기

 Collaborate 프로그램 등록 절차도 어렵지 않습니다. Azure AD 계정으로 로그인하고 계정의 국가/지역과 같은 계정 정보와 연락처 정보를 입력한 다음 Collaborate Agreement에 동의하면 등록이 완료됩니다. Dashboard의 Settings > Developer settings > Programs에서 가입한 Hardware, Collaborate가 보인다면 프로그램 가입에 성공하신 겁니다.
 여기까지가 끝이라면 정말 좋겠지만 아직 시작에 불과합니다. 
Collaborate 등록을 한 후 대시보드의 Collaborate에서 보면 아무것도 없습니다.

 Collaborate를 이제 막 시작한 것일 뿐이지, 
위에서 말한 어떠한 '프로그램'이나 '계약'에 가입되지 않았기 때문이죠. 

 내 조직이 마이크로소프트의 파트너라면 마이크로소프트 담당자에게, 파트너가 아니라면 대시보드 오른쪽에 있는 Support를 통해서 생체인식과 관련된 프로그램과 계약에 가입되어 문서, 빌드에 접근할 수 있도록 요청하면 됩니다. 가입하는 방법과 절차는 각 프로그램마다 다를 수 있는데 그 프로그램과 계약에 조직이 추가되면 지문인식 센서와 드라이버의 요구사항을 받아볼 수 있습니다.

 지문의 오인식률(False Accept Rate), 오거부율(False Reject Rate) 등의 생체인식 시스템의 성능 지표가 포함되어 있는데요. 개발하고 있는 드라이버와 지문인식 장치가 최신의 지문인식 요구사항을 충족하는지 확인하고 나중에 지문인식 드라이버를 제출할 때 스스로 검사했던 항목의 결과를 반드시 제출해야 합니다.




HLK(Hardware Lab Kit)으로 지문인식 장치와 드라이버 테스트

 마이크로소프트에서는 하드웨어나 드라이버가 Windows의 품질 표준을 충족하는지, Windows와 호환되는지의 여부를 테스트하고 각 타입의 요구사항을 만족하는 드라이버에는 마이크로소프트의 인증서로 서명해주는 프로그램을 제공하고 있습니다. 이름하여 WHCP(Windows Hardware Certification Program)인데요, 변경되기 전 이름인 WHQL(Windows Hardware Quality Labs)라고도 통용되기도 합니다. 

 지문인식 드라이버도 예외 없이 이 프로그램을 통과해야 합니다. 
아무래도 생체인식과 연관되어있다 보니 보통의 장치 타입의 프로그램 절차에서 마이크로소프트의 승인 단계가 추가되어 있습니다. 이 프로그램에서 제공하는 테스트 도구(Windows Hardware Lab Kit)로 지문인식 장치와 드라이버를 테스트해서 모든 테스트를 통과시켜야 합니다.

※ 테스트해야하는 테스트케이스는 HLK 버전마다 상이할 수 있습니다.
Fingerprint Reader 타입 테스트케이스 목록

Fingerprint Reader Logo Test의 시작 화면


 Fingerprint Reader Logo Test를 시작하기 전에, XML 파일에는 adapter.dll의 이름과 장치가 지원하는 기능 및 태그가 포함된 각각의 어댑터 XML 파일을 작성해서 지정한 경로에 위치시켜야 합니다. XML 파일이 올바르게 지정되면 본격적으로 지문 인식 유효성을 검사하는 테스트가 시작됩니다.


 HLK의 테스트만 모두 통과한다고 해서 이 드라이버가 Windows Hello에서 완벽하게 동작한다는 것을 보장하는 것은 아닙니다. 하드웨어와 드라이버 그리고 운영체제 간에 기능/성능/호환성 등의 품질 면에서 발생할 문제가 있는지 꼭 검증해야 합니다.

 자, 이제 검증도 완료되었고 지원하려는 OS 버전의 아키텍처에서 테스트하고 모두 통과하면 MS Collaborate에서 받은 Fingerprint 패키지 안에 있는 Fingerprint Security Review Template 문서를 작성합니다. 

 이 문서는 HLK 테스트를 시작하기 전에 작성해도 됩니다. 
작성하는 시점은 상관없으니 문서에서 요구하는 필수 정보를 기재한 다음 Windows 하드웨어 개발자 센터 대시보드에 제출할 결과패키지에 포함하면 됩니다. 최종 결과패키지는 HLK 테스트 결과, 드라이버 파일, Fingerprint Security Review Template가 병합되어 있습니다.



Windows Hello 호환성을 얻기 위한 테스트 결과패키지 제출

 생체인식 요구사항을 모두 충족하는 지문인식 장치와 드라이버 개발과 테스트를 완료했나요? 

 그렇다면 Windows 하드웨어 개발자 센터 대시보드에 테스트 결과패키지를 제출합니다. 
제출한 패키지는 약 8단계를 거친 후 승인이 이루어지는데, 실패한 테스트 혹은 포함한 문서에 부족한 정보가 있다면 승인이 거부될 수 있으므로 유의해야 합니다. 제출한 결과패키지의 승인이 이루어지면 마이크로소프트의 인증서로 서명된 지문인식 드라이버를 받게 되는데, 이 마이크로소프트의 인증서로 서명이 된 지문인식 드라이버가 실제 환경에서도 Windows Hello가 잘 동작하는지 꼭 테스트를 해봐야 합니다. 마이크로소프트 인증서로 서명은 되었지만, 복합적인 환경에서 새로운 기능 이슈가 발생할 수도 있으니까요.



 이제 Windows 10 데스크톱 환경에서 지문인식 장치를 연결하고 드라이버를 설치한 다음
설정 > 계정 > 로그인 옵션에서 가장 강력하고 유일한 내 지문을 등록해보세요. 
여기까지 왔다면...... 축하합니다! 

이제 Windows Hello를 마음껏 사용할 수 있습니다.


Windows Update에 드라이버를 게시하기

 Windows 하드웨어 개발자 센터 대시보드에 승인 된 드라이버는 Windows Update에 드라이버를 게시할 수 있습니다. 드라이버 패키지가 없어도 상관없어요! 여기에 드라이버를 게시하면 네트워크가 연결 된 Windows 10 데스크톱 환경에서 지문인식 장치를 연결할 때 그 장치와 매핑되는 드라이버가 자동으로 설치될 것입니다.

 모바일 생태계에서의 지문인식 기술은 이미 보편화되어 있습니다. 
모바일 장치의 잠금을 해제할 때 하루에도 수십번씩 우리는 의식하지 않고 지문, 얼굴을 사용합니다. 
모바일 운영체제를 로그인, 결제하는 기능을 넘어 그 플랫폼 안에 있는 앱도 앞다투어 지문인증 기능을 지원하고 있지요. 이제는 지문인식센서가 기본으로 탑재되어 출시되는 노트북도 많아지고 있습니다. 
Windows Hello를 지원하는 지문인식장치로 더욱 빠르고, 쉽고, 안전하게 로그인하여 PC를 쓸 수 있기 때문에 사용자에게는 이 지문인식센서와 Windows Hello 지원 여부가 제품 구매를 결정하는 중요한 사양 중 하나가 될 것입니다. 

생체인식 요구사항을 준수하는 제품으로 최종 고객에게 Windows Hello를 경험할 기회를 고려해보세요.