FIDO UAF: Difference between revisions

From IT Wiki
(새 문서: ;FIDO Universal Authentication Framework = 아키텍처 = == 디바이스 == ;서비스를 제공하는 응용 애플리케이션(Relying-Party Application)과 사용자 인증을...)
 
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[분류:표준]][[분류:보안]]
;FIDO Universal Authentication Framework
;FIDO Universal Authentication Framework


= 아키텍처 =
= 아키텍처 =
; 사용자 디바이스와 서버로 나뉘며, RP 애플리케이션과 RP 서버의 TLS 통신 통해 연동
== 디바이스 ==
== 디바이스 ==
;서비스를 제공하는 응용 애플리케이션(Relying-Party Application)과 사용자 인증을 수행하기 위한 FIDO 클라이언트로 나뉜다.
;서비스를 제공하는 RP 애플리케이션과 사용자 인증을 수행하기 위한 FIDO 클라이언트로 나뉜다.
===응용 애플리케이션(Relying-Party Application)===
{| class="wikitable"
;RP(Relying Party) 애플리케이션이라고도 부른다.
|-
! 구분 !! 설명
|-
|
RP 애플리케이션
 
(Relying-Party Application)
||
* 인증 서비스를 제공하는 어플리케이션을 의미
* 인증 서비스를 제공하는 어플리케이션을 의미
** 뱅킹 앱, 공동인증 앱, 신용카드 결제 앱 등
** 뱅킹 앱, 공동인증 앱, 신용카드 결제 앱 등
* FIDO 클라이언트를 통해 인증기능 이용
* FIDO 클라이언트를 통한 인증기능 이용
===FIDO 클라이언트===
* UAF API를 통해 연동(웹은 DOM, 안드로이드는 Intent, iOS는 커스텀(Custom) URL)
|-
|
FIDO 클라이언트
||
* 표준화된 ASM을 통하여 RP 애플리케이션에서 필요로하는 인증장치 검색 및 연동
* 표준화된 ASM을 통하여 RP 애플리케이션에서 필요로하는 인증장치 검색 및 연동
===ASM(Authenticator Specific Module)===
|-
|
ASM
 
(Authenticator Specific Module)
||
* 인증장치 사용을 위한 드라이버
* 인증장치 사용을 위한 드라이버
===인증장치(Authenticator)===
|-
|
인증장치
(Authenticator)
||
* 지문, 홍채, 얼굴 등 실제 바이오인식을 담당하는 모듈
* 지문, 홍채, 얼굴 등 실제 바이오인식을 담당하는 모듈
* (FIDO 표준에선 인증의 종류, 기능, 성능 등에 대해 다루지 않음)
|}


== 서버 ==
== 서버 ==
===응용 서버(Relying-Party Server)===
{| class="wikitable"
;RP(Relying Party) 서버라고도 부른다.
|-
! 구분 !! 설명
|-
|
RP 서버
 
(Relying-Party Server)
||
* RP 애플리케이션의 서비스를 처리하며, 인증요청을 FIDO 서버로 전달
* RP 애플리케이션의 서비스를 처리하며, 인증요청을 FIDO 서버로 전달
===FIDO 서버===
|-
|
FIDO 서버  
||
* RP 서버의 요청을 받아서 인증을 처리하고 결과를 RP 서버로 반환
* RP 서버의 요청을 받아서 인증을 처리하고 결과를 RP 서버로 반환
|}
= 11가지 규격 =
# 아키텍처 개요 규격
# 프로토콜 규격
# 응용 API와 전송 바인딩 규격
# 인증장치 인터페이스 모듈 API 규격
# 인증장치 명령어 규격
# 인증장치 메타데이터 규격
# 인증장치 메타데이터 서비스 규격
# 공통상수 규격
# AppID와 Facet규격
# 보안 참조 규격
# 용어 해설 규격


= 프로토콜 =  
= 절차 =  
;크게 등록(Registration), 인증(Authentication), 거래확인(Transaction Confirmation), 해지(Deregistration)로 구성
;2. 프로토콜 규격 상의 내용
크게 등록(Registration), 인증(Authentication), 거래확인(Transaction Confirmation), 해지(Deregistration)로 구성
== 등록(Registration) ==
== 등록(Registration) ==
* '''FIDO 인증장치에서 생성된 보안 정보를 FIDO 서버에 등록하는 과정'''
* '''FIDO 인증장치에서 생성된 보안 정보를 FIDO 서버에 등록하는 과정'''
* 사용자의 인증정보(예:지문특징정보)를 어떻게 FIDO 인증장치에 등록해야 하는지 다루지 않음
* 사용자의 인증정보(예:지문특징정보)를 어떻게 FIDO 인증장치에 등록해야 하는지 다루지 않음
** FIDO 인증장치를 제공하는 기업에서 사용자 인증정보 등록절차를 스스로 결정
** FIDO 인증장치를 제공하는 기업에서 사용자 인증정보 등록절차를 스스로 결정
* [[파일:FIDO UAF 등록.png]]<ref>출처:TTA</ref>
* '''프로세스'''
* '''프로세스'''
# 사용자가 응용 서비스에 ID와 패스워드를 등록한 상태에서 응용 애플리케이션을 통해 인증 수단을 패스워드에서 지문으로 변경 요청한다.  
# 사용자가 서비스에 ID/패스워드를 등록한 상태에서 인증 수단을 지문으로 변경 요청한다.  
# 응용 애플리케이션과 서버는 사용자 패스워드를 확인한 후에 FIDO 등록 요청 메시지를 FIDO 서버에 요청한다.  
# 서비스는 사용자 패스워드를 확인한 후에 FIDO 등록 요청 메시지를 FIDO 서버에 보낸다.
# FIDO 서버는 응용 서비스의 인증정책이 포함된 FIDO 등록 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다.  
# FIDO 서버는 응용 서비스의 인증정책이 포함된 FIDO 등록 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다.  
# FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, 해당 FIDO 서버에 사용자를 등록하기 위한 공개키-개인키 쌍을 생성한다.  
# FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, 해당 FIDO 서버에 사용자를 등록하기 위한 공개키-개인키 쌍을 생성한다.  
# FIDO 인증장치는 생성된 공개키와 공개키의 증명(attestation) 정보가 포함된 FIDO 등록 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달하며, 생성된 개인키는 FIDO 인증장치 내에 저장한다.  
# FIDO 인증장치는 생성된 공개키와 공개키의 증명(attestation) 정보가 포함된 FIDO 등록 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달하며, 생성된 개인키는 FIDO 인증장치 내에 저장한다.  
# FIDO 서버는 공개키의 증명 정보를 인증장치 메타데이터를 이용해 확인하고, FIDO 등록 응답 메시지 내의 사용자 공개키를 FIDO 서버에 저장한 후, 그 결과를 반환한다.
# FIDO 서버는 공개키의 증명 정보를 인증장치 메타데이터를 이용해 확인하고, FIDO 등록 응답 메시지 내의 사용자 공개키를 FIDO 서버에 저장한 후, 그 결과를 반환한다.
== 인증(Authentication) ==
* [[파일:FIDO UAF 인증.png]]<ref>출처:TTA</ref>
# 사용자는 응용 애플리케이션을 통해 사용자 인증을 요청한다.
# 응용 애플리케이션은 응용 서버에 FIDO 인증을 요청하고 응용 서버는 FIDO 서버에 FIDO 인증 요청 메시지를 요청한다.
# FIDO 서버는 FIDO 인증 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다.
# FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, FIDO 인증장치는 등록 프로토콜 수행 중에 생성되었던 개인키를 이용해 전자서명을 생성한다.
# FIDO 인증장치는 전자서명이 포함된 FIDO 인증 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달한다.
# FIDO 서버는 등록 프로토콜 수행 중에 FIDO 서버에 저장되었던 공개키를 이용하여 전자서명을 확인하고 인증 결과를 반환한다.
= 같이 보기 =
* [[FIDO]]
* [[바이오정보]]

Latest revision as of 15:43, 21 August 2019

FIDO Universal Authentication Framework

아키텍처[edit | edit source]

사용자 디바이스와 서버로 나뉘며, RP 애플리케이션과 RP 서버의 TLS 통신 통해 연동

디바이스[edit | edit source]

서비스를 제공하는 RP 애플리케이션과 사용자 인증을 수행하기 위한 FIDO 클라이언트로 나뉜다.
구분 설명

RP 애플리케이션

(Relying-Party Application)

  • 인증 서비스를 제공하는 어플리케이션을 의미
    • 뱅킹 앱, 공동인증 앱, 신용카드 결제 앱 등
  • FIDO 클라이언트를 통한 인증기능 이용
  • UAF API를 통해 연동(웹은 DOM, 안드로이드는 Intent, iOS는 커스텀(Custom) URL)

FIDO 클라이언트

  • 표준화된 ASM을 통하여 RP 애플리케이션에서 필요로하는 인증장치 검색 및 연동

ASM

(Authenticator Specific Module)

  • 인증장치 사용을 위한 드라이버

인증장치 (Authenticator)

  • 지문, 홍채, 얼굴 등 실제 바이오인식을 담당하는 모듈
  • (FIDO 표준에선 인증의 종류, 기능, 성능 등에 대해 다루지 않음)

서버[edit | edit source]

구분 설명

RP 서버

(Relying-Party Server)

  • RP 애플리케이션의 서비스를 처리하며, 인증요청을 FIDO 서버로 전달

FIDO 서버

  • RP 서버의 요청을 받아서 인증을 처리하고 결과를 RP 서버로 반환

11가지 규격[edit | edit source]

  1. 아키텍처 개요 규격
  2. 프로토콜 규격
  3. 응용 API와 전송 바인딩 규격
  4. 인증장치 인터페이스 모듈 API 규격
  5. 인증장치 명령어 규격
  6. 인증장치 메타데이터 규격
  7. 인증장치 메타데이터 서비스 규격
  8. 공통상수 규격
  9. AppID와 Facet규격
  10. 보안 참조 규격
  11. 용어 해설 규격

절차[edit | edit source]

2. 프로토콜 규격 상의 내용

크게 등록(Registration), 인증(Authentication), 거래확인(Transaction Confirmation), 해지(Deregistration)로 구성

등록(Registration)[edit | edit source]

  • FIDO 인증장치에서 생성된 보안 정보를 FIDO 서버에 등록하는 과정
  • 사용자의 인증정보(예:지문특징정보)를 어떻게 FIDO 인증장치에 등록해야 하는지 다루지 않음
    • FIDO 인증장치를 제공하는 기업에서 사용자 인증정보 등록절차를 스스로 결정
  • FIDO UAF 등록.png[1]
  • 프로세스
  1. 사용자가 서비스에 ID/패스워드를 등록한 상태에서 인증 수단을 지문으로 변경 요청한다.
  2. 서비스는 사용자 패스워드를 확인한 후에 FIDO 등록 요청 메시지를 FIDO 서버에 보낸다.
  3. FIDO 서버는 응용 서비스의 인증정책이 포함된 FIDO 등록 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다.
  4. FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, 해당 FIDO 서버에 사용자를 등록하기 위한 공개키-개인키 쌍을 생성한다.
  5. FIDO 인증장치는 생성된 공개키와 공개키의 증명(attestation) 정보가 포함된 FIDO 등록 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달하며, 생성된 개인키는 FIDO 인증장치 내에 저장한다.
  6. FIDO 서버는 공개키의 증명 정보를 인증장치 메타데이터를 이용해 확인하고, FIDO 등록 응답 메시지 내의 사용자 공개키를 FIDO 서버에 저장한 후, 그 결과를 반환한다.

인증(Authentication)[edit | edit source]

  1. 사용자는 응용 애플리케이션을 통해 사용자 인증을 요청한다.
  2. 응용 애플리케이션은 응용 서버에 FIDO 인증을 요청하고 응용 서버는 FIDO 서버에 FIDO 인증 요청 메시지를 요청한다.
  3. FIDO 서버는 FIDO 인증 요청 메시지를 생성하고 응용 서버와 응용 애플리케이션을 통해 FIDO 클라이언트에 전달한다.
  4. FIDO 인증장치는 사용자로부터 지문을 입력 받고 등록된 지문과 일치한다고 판단하면, FIDO 인증장치는 등록 프로토콜 수행 중에 생성되었던 개인키를 이용해 전자서명을 생성한다.
  5. FIDO 인증장치는 전자서명이 포함된 FIDO 인증 응답 메시지를 응용 애플리케이션과 응용 서버를 통해 FIDO 서버에 전달한다.
  6. FIDO 서버는 등록 프로토콜 수행 중에 FIDO 서버에 저장되었던 공개키를 이용하여 전자서명을 확인하고 인증 결과를 반환한다.

같이 보기[edit | edit source]

  1. 출처:TTA
  2. 출처:TTA