FIDO UAF 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;FIDO Universal Authentication Framework | ;FIDO Universal Authentication Framework | ||
6번째 줄: | 5번째 줄: | ||
== 디바이스 == | == 디바이스 == | ||
;서비스를 제공하는 RP 애플리케이션과 사용자 인증을 수행하기 위한 FIDO 클라이언트로 나뉜다. | ;서비스를 제공하는 RP 애플리케이션과 사용자 인증을 수행하기 위한 FIDO 클라이언트로 나뉜다. | ||
===RP 애플리케이션(Relying-Party Application)=== | |||
RP 애플리케이션 | |||
(Relying-Party Application) | |||
* 인증 서비스를 제공하는 어플리케이션을 의미 | * 인증 서비스를 제공하는 어플리케이션을 의미 | ||
** 뱅킹 앱, 공동인증 앱, 신용카드 결제 앱 등 | ** 뱅킹 앱, 공동인증 앱, 신용카드 결제 앱 등 | ||
* FIDO 클라이언트를 | * FIDO 클라이언트를 통해 인증기능 이용 | ||
* UAF API를 통해 연동 | * UAF API를 통해 연동 | ||
** 웹은 DOM API, 안드로이드 앱은 인텐트(Intent) API, iOS 앱은 커스텀(Custom) URL API를 이용 | |||
===FIDO 클라이언트=== | |||
FIDO 클라이언트 | |||
* 표준화된 ASM을 통하여 RP 애플리케이션에서 필요로하는 인증장치 검색 및 연동 | * 표준화된 ASM을 통하여 RP 애플리케이션에서 필요로하는 인증장치 검색 및 연동 | ||
===ASM(Authenticator Specific Module)=== | |||
ASM | |||
(Authenticator Specific Module) | |||
* 인증장치 사용을 위한 드라이버 | * 인증장치 사용을 위한 드라이버 | ||
===인증장치(Authenticator)=== | |||
인증장치 | |||
(Authenticator) | |||
* 지문, 홍채, 얼굴 등 실제 바이오인식을 담당하는 모듈 | * 지문, 홍채, 얼굴 등 실제 바이오인식을 담당하는 모듈 | ||
* | * FIDO 표준에선 다양한 인증장치들이 공통적으로 제공해야 하는 명령어와 명령어 구조 및 처리 절차를 정의 | ||
** 바이오정보의 종류 및 인증방법에 대해선 세부적으로 정의하지 않음 | |||
* 구성 | |||
** ASM에 제공하는 API | |||
** Attestation Key: 인증장치 등록 시 생성하는 사용자 공개키가 정상적인 인증장치에서 생성한 정보인지 확인하기 위해 인증장치에 설치된 키 | |||
** Authentication Keys: 인증장치를 FIDO 서버에 등록 시 생성되는 사용자 키 정보 | |||
*** 사용자 개인키와 등록 시 저장해 두었던 관련 정보로 구성 | |||
** 사용자 확인(User Verification) 모듈: 인증장치 등록과 인증 기능 처리 시 사용자를 로컬 인증 | |||
*** 인증장치에 사전 등록된 사용자 인증정보와 사용자가 입력한 인증정보가 서로 일치하는지를 확인) | |||
** 디스플레이 모듈(옵션): 인증에 관한 내용 표시, 개인정보 수집 동의 등 | |||
== 서버 == | == 서버 == | ||
===RP 서버(Relying-Party Server)=== | |||
RP 서버 | |||
(Relying-Party Server) | |||
* RP 애플리케이션의 서비스를 처리하며, 인증요청을 FIDO 서버로 전달 | * RP 애플리케이션의 서비스를 처리하며, 인증요청을 FIDO 서버로 전달 | ||
===FIDO 서버=== | |||
FIDO 서버 | |||
* RP 서버의 요청을 받아서 인증을 처리하고 결과를 RP 서버로 반환 | * RP 서버의 요청을 받아서 인증을 처리하고 결과를 RP 서버로 반환 | ||
= | = 프로토콜 = | ||
;크게 등록(Registration), 인증(Authentication), 거래확인(Transaction Confirmation), 해지(Deregistration)로 구성 | |||
; | |||
크게 등록(Registration), 인증(Authentication), 거래확인(Transaction Confirmation), 해지(Deregistration)로 구성 | |||
== 등록(Registration) == | == 등록(Registration) == | ||
* '''FIDO 인증장치에서 생성된 보안 정보를 FIDO 서버에 등록하는 과정''' | * '''FIDO 인증장치에서 생성된 보안 정보를 FIDO 서버에 등록하는 과정''' | ||
* 사용자의 인증정보(예:지문특징정보)를 어떻게 FIDO 인증장치에 등록해야 하는지 다루지 않음 | * 사용자의 인증정보(예:지문특징정보)를 어떻게 FIDO 인증장치에 등록해야 하는지 다루지 않음 | ||
** FIDO 인증장치를 제공하는 기업에서 사용자 인증정보 등록절차를 스스로 결정 | ** FIDO 인증장치를 제공하는 기업에서 사용자 인증정보 등록절차를 스스로 결정 | ||
* '''프로세스''' | * '''프로세스''' | ||
# 사용자가 서비스에 | # 사용자가 응용 서비스에 ID와 패스워드를 등록한 상태에서 응용 애플리케이션을 통해 인증 수단을 패스워드에서 지문으로 변경 요청한다. | ||
# | # 응용 애플리케이션과 서버는 사용자 패스워드를 확인한 후에 FIDO 등록 요청 메시지를 FIDO 서버에 요청한다. | ||
# FIDO 서버는 응용 서비스의 인증정책이 포함된 FIDO 등록 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다. | # FIDO 서버는 응용 서비스의 인증정책이 포함된 FIDO 등록 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다. | ||
# FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, 해당 FIDO 서버에 사용자를 등록하기 위한 공개키-개인키 쌍을 생성한다. | # FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, 해당 FIDO 서버에 사용자를 등록하기 위한 공개키-개인키 쌍을 생성한다. | ||
88번째 줄: | 49번째 줄: | ||
== 인증(Authentication) == | == 인증(Authentication) == | ||
# 사용자는 응용 애플리케이션을 통해 사용자 인증을 요청한다. | # 사용자는 응용 애플리케이션을 통해 사용자 인증을 요청한다. | ||
# 응용 애플리케이션은 응용 서버에 FIDO 인증을 요청하고 응용 서버는 FIDO 서버에 FIDO 인증 요청 메시지를 요청한다. | # 응용 애플리케이션은 응용 서버에 FIDO 인증을 요청하고 응용 서버는 FIDO 서버에 FIDO 인증 요청 메시지를 요청한다. | ||
95번째 줄: | 55번째 줄: | ||
# FIDO 인증장치는 전자서명이 포함된 FIDO 인증 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달한다. | # FIDO 인증장치는 전자서명이 포함된 FIDO 인증 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달한다. | ||
# FIDO 서버는 등록 프로토콜 수행 중에 FIDO 서버에 저장되었던 공개키를 이용하여 전자서명을 확인하고 인증 결과를 반환한다. | # FIDO 서버는 등록 프로토콜 수행 중에 FIDO 서버에 저장되었던 공개키를 이용하여 전자서명을 확인하고 인증 결과를 반환한다. | ||