| FIDO (Fast Identity Online)
FIDO 버전 1.0 표준에는 UAF와 U2F가 있습니다. 이곳에서는 UAF만 설명합니다.
| 참고
2017_표준해설서_사용자인증_워터마크를 참고하였습니다.
| UAF란?(Universal Authentication Framework)
- 패스워드 방식 대신 지문, 홍채, 안면 인식 등 다양한 인증방법을 사용하는 인증기술
- 스마트 기기 내의 API와 인증 장치 간의 인터페이스, 온라인 서버로의 전송 프로토콜 등을 정의
| 목차
0. FIDO 정의 및 배경
1. 아키텍쳐
2. 프로토콜 규격
3. 응용 API와 전송 바인딩 규격
4. ASM(인증장치 인터페이스 모듈 API)
5. 인증장치 명령어
6. 인증장치 메타데이터 서비스 접근
7. 인증장치 메타데이터
8. AppID와 Facet 규격
0. FIDO 정의 및 배경
[부가설명]
FIDO의 정의 및 나타난 배경
기존의 인증수단에는 분실, 재등록이나 별도 프로그램을 설치 해야 하는 불편함이 있었다. 또한, 서버에 개인정보를 등록해두는 것이기 때문에 해킹의 위험에 항상 노출되어 있습니다.
그 불편함을 해결하기 위해 FIDO가 등장하게 되었습니다.
FIDO는 Fast Identity Online으로 비밀번호 없이 본인의 스마트 기기를 통한 인증 후 온라인 서비스를 이용할 수 있습니다
지문, 홍채, 안면 등 고유의 바이오 정보는 개인의 스마트 기기에 저장됩니다.
인증이 필요한 경우, 개인용 스마트 기기내 인증 장치에서 검증한 후, 이 결과를 전자서명 값으로 바꾸어 은행으로 전송함으로써 인증이 이루어집니다.
파이도 방식은 해당 정보를 서버에 저장하는 방식에 비해 정보 노출의 위험이 적고, 비밀번호 입력 과정이 없으므로 편리합니다.
1. 아키텍쳐
[부가설명]
FIDO 클라이언트와 FIDO 서버는 응용 서버와 응용 애플리케이션을 거쳐서 FIDO 프로토콜 메시지를 주고 받습니다.
- 사용자 기기: 스마트폰
- RP Server: UAF 서버로 들어오기 위한 입구
2. 프로토콜 규격
2.1 등록
[부가설명]
Fido 프로토콜 규격은 등록, 인증, 해지로 되어있습니다.
0) 사용자는 인증수단을 바이오 정보로 변경요청
5) FIDO 서버는 공개키의 증명 정보를 인증장치 메타데이터를 이용해 확인하고, 사용자 공개키를 FIDO 서버에 저장한 후, 그 결과를 반환한다.
2.2 인증
[부가설명]
다음은 인증입니다.
0) 응용 앱을 통해 인증을 요청한다.
1) 응용 앱은 응용 서버에 FIDO 인증을 요청하고 응용 서버는 FIDO 서버에 FIDO 인증 요청 메시지를 요청 한다.
2) FIDO 서버는 FIDO 인증 요청 메시지를 생성하고 FIDO 서버 -> 응용 서버 -> 응용 앱을 통해 FIDO 클라이언트에 전달한다.
3) FIDO 인증장치는 지문을 입력 받고 등록된 지문과 일치하면 FIDO 인증 장치는 등록 프로토콜에서 생성했던 개인키를 이용해 전자서명을 생성한다.
4) FIDO 인증장치는 전자서명이 포함된 FIDO 인증 응답 메시지를 응용 앱과 응용 서버를 통해 FIDO 서버에 전달한다.
5) FIDO 서버는 등록 프로토콜 수행중에 FIDO에 저장되었던 공개키를 이용하여 전자서명을 확인하고 인증 결과를 반환한다.
2.3 해지
사실 해지와 같은 경우에는 FIDO 표준 규격에 해당은 안됩니다.
[부가설명]
해지는 간단합니다.
03. 응용 API와 전송 바인딩 규격
[부가설명]
- FIDO 인증장치와 FIDO 클라이언트가 통신하기 위해서 ASM API가 필요하고
- 응용클라이언트와 FIDO클라이언트 간에는 UAF API를 제공하여 조회, 등록,인증, 거래 확인, 해지 기능을 처리한다.
- 물리적으로 분리된 응용 서버와 응용 클라이언트간에 안전한 UAF 프로토콜 통신을 위해서 TLS통신 방식을 이용합니다.
04. ASM(인증장치 인터페이스 모듈 API)
[부가설명]
FIDO 클라이언트가 인증장치의 상세한 구현 방식을 이해할 필요 없도록
FIDO 인증장치 배포자는 FIDO ASM이라는 표준화된 소프트웨어 인터페이스, 즉 인증장치 인터페이스 모듈 API를 제공 합니다.
FIDO ASM에서 FIDO 클라이언트에게 제공하는 API 기능은 다음과 같습니다.
정보조회, 인증장치 등록, 인증, 인증장치 해지, 인증장치 등록조회, 인증장치 설정
05. 인증장치 명령어
[부가설명]
FIDO 인증장치는 SP, USB, 블루투스 등 다양한 물리적 인터페이스를 통해서 사용자 기기에 연결될 수 있다.
Fido 인증장치는 다양한 인증장치들이 공통적으로 제공해야 하는 명령어와 명령어 구조 및 처리 절차를 정의한다.
인증장치는 ASM에서 제공하는 인터페이스와 Attestation key 및 authentication keys 관리, 사용자 확인 모듈 등으로 구성된다.
06. 인증장치 메타데이터 서비스 접근
[부가설명]
메타데이터는 fido 클라이언트와 서버가 인증장치를 이해할 수 있도록 정의한 것입니다.
서비스 기관(rp)은 fido 등록 및 인증 프로토콜을 수행하기 위해서 인증장치의 메타 데이터를 필요로 합니다.
서비스 기관의 정책에 따라서 1) 메타데이터를 미리 등록하고 관리 하거나 2) 실시간으로 조회해서 사용할 수 있다.
그림은 메타데이터를 실시간으로 조회해서 사용하는 서비스 과정입니다.
07. 인증장치 메타데이터
[부가설명]
FIDO Aliance MDS URL(https://mds.fidoalliance.org/)을 입력함으로써 인증장치 메타데이터를 실시간으로 다운받을 수 있으나, 폐쇄망에 있는 경우가 많아 사용을 거의 하지 않고, 이미 다운로드된 TXT 형식의 메타데이터를 등록하는 형식으로 인증장치 메타데이터를 관리하는 경우가 많습니다.
08. AppID와 Facet 규격
[부가설명]
Appid와 facet를 이용하여 서비스 기관이 제공하는 서로 다른 애플리케이션을 하나의 등록된 키로 사용할 수 있습니다
Appid는 서비스 기관을 대표하는 id이며, facetid는 서비스 기관이 제공하는 애플리케이션 각각에 대한 id를 의미한다.
(클릭)예를 들어 카카오가 하나의 서비스 기관이라고 가정한다면 카카오를 대표하는 하나의 appid가 부여되고,
카카오가 제공하는 안드로이드 앱, ios 앱 또는 안드로이드 앱 중에서도 표준 앱, 인증 앱 등 각각의 앱별로 FacetID를 부여할 수 있다.
(클릭)FacetID는 응용 애플리케이션에 대한 신뢰성을 확인하기 위한 용도로 사용될 수 있다.
FacetID 목록을 FIDO 클라이언트에 전달하여 FIDO 클라이언트를 호출한 응용 애플리케이션이 신뢰하는 응용 애플리케이션인지 확인할 수 있게 된다.
AppID와 Facet 규격 - 2
[부가설명]
AppID 정보의 형태는 3가지로 구분할 수 있습니다.
'Security' 카테고리의 다른 글
[CentOS7] SSL 설치 및 SSL 적용 (4) | 2021.12.24 |
---|---|
FIDO (0) | 2020.08.06 |
CA (0) | 2020.07.10 |
Certificate(인증서) (0) | 2019.10.02 |
Encrypt virtual disk(가상 디스크 암호화) (0) | 2019.09.18 |
댓글