One step closer to a passwordless future
Over the next year all major device platforms have committed to building in support for passwordless FIDO Sign-in standards.
blog.google
위 글을 읽고 개인적으로 정리한 글입니다.
1. 현재 구글에서 개인정보 보호를 위해 무엇을 시행하고 있는가?
현재 구글은 2단계 인증, google 비밀번호 관리자 등을 활용하고 있다.
2. FIDO(Fast IDentity Online) alliance
FIDO는 온라인 환경에서 비밀번호를 대체하는 안정성이 있는 인증방식인 FIDO 기술표준을 정하기 위해 설립된 협의회이다.
이곳에서 표준화하는 인증기술에는 대표적으로 생체인증기술이 있다.
3. 왜 FIDO 는 비밀번호를 없애려고 하는가 ?
공개키 암호화는 현대 대부분의 보안 인터넷 통신의 기반 역할을 하고 있다. 웹 브라우저에 비밀번호를 입력할 때, 입력되는 비밀번호가 암호화된 형태로 네트워크에 전송된다. 공개키 암호화가 강력하다고 해도, 네트워크(즉, 인터넷)을 이용하여 클라이언트와 서버에서 비밀번호를 교환해 인증을 수행하는 경우에 전송 도중 비밀번호를 가로챌 수 있다.
FIDO는 인증을 사용자의 로컬 기기에 전적으로 맡기기 때문에 근본적인 취약점을 모두 해결한다.
3. FIDO Framework
핵심 아이디어 : 인증 기법과 그 인증 정보를 주고 받기 위한 인증 프로토콜을 분리하는 것
FIDO 는 UAF(Universal Authentication Framework), U2F(Universal 2nd Facor) 두가지로 나뉜다.
UAF : 비밀번호 없이 인증
U2F : 비밀번호를 보완해서 인증
FIDO 는 크게 클라이언트 , 서버 그리고 두 개체 간에 주고 받는 프로토콜로 구성
FIDO 클라이언트
- 인종토큰 추상화 단계에서 연동
- FIDO 서버와 프로토콜 송수신
FIDO 서버
- 클라이언트와 UAF 프로토콜 주고받음
- 클라이언트가 제시하는 인증토큰 검증, 등록
- 등록된 인증토큰 관리
FIDO 프로토콜
- 사용자 디바이스 - 서버 간 등록 메시지, 인증 메시지, 안전거래 확인 메시지 전달
- 등록 메시지 : 사용자 디바이스 내 인증토큰 조회, 검증, 등록
- 인증 메시지 : challenge, response 로 이뤄진 프로토콜 수행 -> 사용자 인증
- 안전거래 확인 메시지 : 특정 거래에 대해 서버가 클라이언트에게 전자서명으로 거래 내용 확인
패스워드 없는 인증기술-FIDO
패스워드 없는 인증기술-FIDO Passwordless Authentication Technology-FIDO 조상래 (Cho S.R.) 인증기술연구실 책임연구원 최대선 (Choi D.S.) 인증기술연구실 실장 진승헌 (Jin S.H.) 사이버보안기반연구부 부장 이
ettrends.etri.re.kr
4. FIDO의 장점
FIDO는 간편 + 보안 두 가지 토끼를 모두 잡았다.
복잡한 비밀번호를 입력하는 과정에서 지친 유저가 구매 혹은 가입을 포기할 수 있다. 이를 방지하는 장점이 될 수 있다고 생각한다.
5. FIDO의 단점
UAF 는 모바일 기기에 특화되었기 때문에 PC의 경우 도움이 되지 않음.
U2F는 PC에서도 사용가능하지만 별도의 하드웨어 인증키가 필요
6. 이러한 단점을 해결하기 위해 FIDO2
개발
- 모바일 기기에 국한되지 않음
- 웹인증은 오픈 자바스크립트 API를 통해 최종 사용자와 서비스 제공업체 간의 통신 규정
7. 웹사이트 제작 때 고민했던 부분들
- RSA 암호화
작년에 제작했던 웹사이트는 jsp로 구현한 식당 관련 웹서비스였다. 로그인하는 과정에서 어떻게 하면 개인정보 보호를 할 수 있을지 고민했었다. 완성도가 높지 않은 사이트에 가입을 할까? 라는 의문에서 시작되어 과정에서 개인정보에 대한 걱정이 있었다. 그래서 jsp 암호화에 rsa 암호화를 하고자 시도했었다.
RSA암호화를 위해 공개키와 개인키를 생성하여 암호화와 복호화를 실행하는 부분이었다. RSA가 많이 사용된다는 것은 알고 있었으나 실제로 적용해본 유익한 시도였다고 생각한다.
- http, https
s는 secure
로써 보안의 차이이다.
https 프로토콜은 전송되는 데이터를 암호화해서 보낸다. 그래서 데이터 노출의 안전이 보장된다.
SSL 프로토콜을 적용하기 위해서 SSL 인증서를 발급받을 때 Git 을 사용하여 적용할 수 있었다.
당시 다른 기능을 구현하느라 알아보기만 하고 따로 구현 해보지 못해서 아쉬웠다.
'개발관련' 카테고리의 다른 글
[MAC, Pycharm] 가상환경 구축하기 (0) | 2023.06.10 |
---|---|
도커로 MAC ELK 설치 (jdk 오류, brew 설치 오류) (0) | 2023.06.01 |
지속가능한 SW 개발을 위한 코드 리뷰 :: 4월 우아한테크세미나 (0) | 2022.05.14 |
[MySQL] Error 2002 해결 (0) | 2021.12.02 |