[시장 동향]FIDO 인증, 공개 키 암호 방식을 이용한 웹 인증 프로세스

조회수 3139

공개키 암호방식

FIDO 표준 웹 인증의 중요한 개념 중 하나는 공개 키 암호 방식(Public Key Cryptography) 입니다. 

공개 키 암호 방식은 공개 키와 개인 키 한 쌍으로 이루어져 있으며 공개 키는 자유롭게 공유 될 수 있지만 그에 상응하는 개인 키는 소유자만이 가지고 있습니다. 공개 키 자체는 그에 대응하는 개인 키 없이는 큰 의미를 가지지 않고 개인 키는 사용자의 기기에 안전하게 저장되어 있기 때문에 뛰어난 보안을 가지고 있습니다.

뿐만 아니라 브라우저 정보와 짝을 이루기 때문에 다른 웹 사이트에서는 사용할 수 없어 피싱의 위험으로부터 안전합니다.

다음 예시를 통해 공개 키 암호 방식이 어떻게 이루어지는지 알아보겠습니다.



  • 회원 가입시


1. 유저는 회원 가입 요청을 서버로 보내고 서버는 임의로 생성된 키값을 브라우저로 반환해 줍니다.

2. 브라우저는 반환 받은 키값을 Credentials API에 브라우저 정보(Web Origin)와 함께 전송합니다.

(navigator.credentials.create 메쏘드를 사용). 브라우저 정보를 전송함으로써 추후 생성될 공개 키/개인 키를 도메인에 고정시킬 수 있습니다.

3.  (a) FIDO Security Key는 새로운 공개키/개인키 쌍을 만든 후 전송 받은 키값을 서명 후 공개 키와 함께 브라우저로 반환해 줍니다. 

(b) 개인 키는 기기 자체에 저장한 후 추후의 인증정보들을 서명하는데 사용됩니다.

4. 브라우저는 공개 키와 서명한 키값을 서버로 전달해줍니다.

5. 서버는 공개 키, 공개 키의 ID, 그리고 회원가입 정보를 DB에 저장합니다.



  • 로그인시


1. 유저가 로그인 요청을 보내면 서버는 키값과 회원가입시에 저장한 공개 키의 ID를 브라우저로 전송해줍니다.

2. 브라우저는 반환 받은 키값과 브라우저 정보(Web Origin), 그리고 공개 키의 ID를 Credentials API에 전송합니다.

3. FIDO Security Key는 전송 받은 공개 키의 ID를 이용해 공개키와 짝을 이루는 개인 키를 꺼낸 후 인증정보에 서명을 합니다.

 (navigator.credentials.create 메쏘드) 

4. 개인 키는 다시 기기에 저장한 후 서명된 인증정보만 브라우저로 반환 하고 브라우저는 그대로 서버로 전송해줍니다. 



#공개키 #암호방식 #FIDO인증 #회원가입시 #로그인시 #웹인증프로세스



참고 자료



이데아텍(주) | 대표이사 : 이정수, 어윤호 | 사업등록번호 : 458-81-00362 | 통신판매신고번호 : 제 2021-서울강남-02553호

TEL : 02-6952-9160 | EMAIL : contact@ideatec.co.kr | ADDRESS : 서울시 서초구 서운로 6길 21-6 (서초동, 이데아텍 사옥)

COPYRIGHT IDEATEC ALL RIGHTS RESERVED

본 사이트의 모든 콘텐츠는 저작권법의 보호를 받는 바 무단 전재, 복사, 배포 등을 금합니다.