2019.03.11

WebAuthn, 암호 없는 웹의 미래에 대해 알아야 할 내용들

Mark Hachman | PCWorld
WebAuthn(Web Authentication, 웹 인증)은 새로운 웹사이트 로그인 방법이다. 마침내 암호를 기억해야 하는 번거로움에서 해방될 수도 있는 방법으로, 암호 대신 지문이나 얼굴, 또는 하드웨어 토큰을 사용한다.

지난 3월 4일 W3C는 WebAuthn API를 공식 표준으로 승인했다. 실제로 WebAuthn은 윈도우 10을 포함한 많은 인기 브라우저에 구현되어 있는 상태이다. 이제 웹이 이를 수용하는 일만 남은 상태. 조만간 보편적인 사용자 인증 방식으로 자리 잡을 WebAuthn에 대해 알아보자.
 
ⓒ GettyImagesBank
 

WebAuthn의 장점은?

수천만 명의 사용자 이름과 패스워드가 유출된 컬렉션의 데이터 침해 사고는 잘 알려져 있다. 이런 일이 일어나는 이유는 현재의 웹사이트는 사용자에게 로그인을 요구하고, 로그인에 사용된 사용자 이름과 암호를 사이트 내부에 저장하기 때문이다. 이런 데이터가 유출되거나 공개되면, 악당들은 이 정보를 사용해 침해당한 사용자가 다른 장소에서도 이런 암호를 사용하고 있는지 파악할 수 있다. 이런 식으로 연쇄 반응이 일어나면서 해커들은 점점 더 많은 개인 정보를 입수할 수 있다. 

WebAuthn은 암호를 요구하지 않는다. 사용자가 로그인할 때마다 1회용 인증 토큰을 생성한다. 기본적으로 웹사이트 별로 고유한 암호를 생성해 사용하라는 ‘권장 보안 실천 행동’을 적용하는 방식이다. 더구나 사용자에게 무엇을 기억하도록 강요하지도 않는다.
 

암호가 필요 없다면, 사용자는 무엇을 사용하는가?

WebAuthn은 2가지 주요 인증 방식을 지원하는데, 생체인식과 하드웨어 보안 토큰이 그것이다. 생체인식은 잘 알려져 있고, 또 많은 곳에서 실제로 사용하고 있다. 예를 들어, 스마트폰이나 컴퓨터에서 센서를 통해 지문 인증을 하거나 PC의 윈도우 헬로우 지원하는 심도 카메라를 통해 얼굴 인식 및 인증을 한다. 
 
윈도우 헬로는 윈도우 10 PC의 전면 심도 카메라를 이용해 사용자의 얼굴을 인식한다. ⓒ IDG / Mark Hachman

하드웨어 토큰은 이보다는 모호한 개념이다. 대표적인 사례 가운데 하나로 유비코(Yubico)의 유비키(YubiKey)를 들 수있다. 암호나 생체인식 대신, 유비키를 PC의 USB 포트에 연결하는 방식이다. 심도 카메라가 장착되어 있지 않은 PC에 유용한 방식이다. 유비키는 기본적으로 사용자가 항상 휴대하는 복잡한 암호라고 말할 수 있다. 잃어버린 경우, 사이트에 분실했다고 알려 키를 비활성화시킨 후, 새 키를 구입해 활성화시켜야 한다.
 

WebAuthn의 작동 방식

소포스 네이키드 시큐리티(Sophos Naked Security) 블로그에 WebAuthn 프로세스가 간략히 잘 정리되어 있다. WebAuthn을 지원하는 웹사이트에 로그인을 하는 경우, 브라우저는 PC(또는 스마트폰)에 사용자의 신원을 증명하라고 요구한다. 다르게 설명하면, 브라우저는 사용자의 신뢰할 수 있는 인증자에게 증명 제공을 요구한다. 여기에서 인증자란 스마트폰의 지문 리더, 윈도우 헬로, 하드웨어 토큰 같은 것을 의미한다.

인증자가 신뢰된 상태이기 때문에 암호를 사이트에 저장하는 지금 방식과 다르게 웹사이트에 지문 데이터, 기타 고유 데이터를 저장할 필요 없다. 기본적으로 인증자는 새로운 누구를 만났을 때 소개 및 추천을 해주는 친구 같은 ‘중재인’ 역할을 한다. 
 
유비코의 유비키는 이렇게 USB 포트에 꽂는 것으로 사용자를 인증한다. ⓒYubico

웹사이트가 사용자에게 로그인을 요구할 때, 브라우저는 인증자에게 사용자가 지문 등을 이용해 자신을 증명하도록 요청하라고 요구하는 것이다. 인증자는 이런 방식을 통해 사용자를 확인시켜주고, 브라우저는 사용자 확인에 대한 정보를 암호화해 웹 서버로 다시 보낸다. 

여기에 추가되는 것들이 있다. 공개 키를 이용한 사용자 데이터 암호화와 이를 푸는 사용자의 개인 키로 로그인하는 과정이다. 그렇지만 자신의 기밀(지문, 얼굴, 토큰)이 PC 내부에만 유지되도록 안전하게 커뮤니케이션을 하는 것이 기본적인 개념이다.

다르게 설명을 할 수도 있다. 은행 직원이 차를 운전해 사용자의 집을 방문해서 현금을 전달한다고 가정하자. 이 경우, 사용자는 자신의 신원을 증명해야 한다. 운전대를 잡은 은행 직원에게 큰 소리로 개인 정보와 암호를 알려줘 신원을 증명할 수도 있지만, 이 경우 이웃들이 엿듣게 된다. 이 경우, 당신의 신원을 증명할 수 있는 친구가 집에 있다면, 이 친구가 밖에 나가 은행 직원에게 신원이 증명되었다고 알려주는 것이 더 나은 방법이 될 것이다. WebAuthn이 여기에 해당된다.
 

WebAuthn 시연

WebAuthn에 대해 알아볼 수 있는 시연이 있다. 꽤 느리고, 공개 키가 실제 생성되지 않는 것으로 보이기는 하지만, Webauthn.org에서 WebAuthn의 작동 방식을 확인할 수 있다. 
 

WebAuthn과 이중 인증의 차이점은?

기본적으로 WebAuthn은 단일 요소를 이용한 인증, 신원 식별 방법이다. 꽤 엄격한 사용자 인증 방식이지만 단일 요소만 사용한다. 사용자가 기절을 했다고 가정하자. 다른 사람이 기절한 사용자의 지문으로 은행에서 신원을 증명할 수 있을까? 그것이 유일한 신원 증명 방법이라면(예를 들어, 암호를 사용하지 않는다면), 그렇게 할 수 있다. 기존의 이중 인증 방법과 연결해 사용할 수 있을지는 아직 확실하지 않다.

이중 인증은 일반적으로 ‘사용자가 알고 있는 무엇(암호)’, ‘사용자가 갖고 있는 무엇(스마트카드 또는 토큰)’, ‘사용자 자체’라는 3가지 요소 가운데 2가지를 결합해 이용한다. 다시 말해, 은행들이 보안을 더욱 강화하기 위해 WebAuthn 생체 인증과 함께 암호를 사용하는 것을 장려할 수도 있다.
 
WebAuthn은 PC만이 아니라 모바일 사이트에서도 동작한다. ⓒGettyImagesBank
 

WebAuthn이 실현되기 위해 필요한 것들은 무엇일까?

WebAuthn의 토대는 거의 완성이 되어 있는 상태이다. 윈도우 10, 안드로이드, 구글 크롬, 모질라 파이어폭스, 마이크로소프트 에지, 애플 사파리(프리뷰)에서 이미 WebAuthn을 지원한다.

따라서 웹사이트들이 WebAuthn를 지원하기만 하면 된다. 여기에는 WebAuthn 로그인이 허용되도록 코드를 바꾸는 것 이상이 필요할 수도 있다. 예를 들면, 윈도우 헬로가 사용자를 인식할 수 없는 경우, 또는 지문 리더의 지문 인식이 실패된 경우 웹사이트가 WebAuthn 대신 덜 안전한 암호 방식을 사용하게 될지 확실하지 않다. 또 웹사이트들은 사용자에게 WebAuthn 사용의 이점을 알려야 하고, 로그인 페이지 등을 바꿔야 할 수도 있다. 구형 PC를 갖고 있는 사용자는 하드웨어 토큰을 구매해야만 할까? 아마 아니겠지만, 이에 대해 결정은 내려야 한다.

이제 중요한 발전을 위한 변화가 진행되고 있다. W3C는 웹 표준도 만든다. WebAuthn이 궤도에 진입했기 때문에, 사이트들도 이제 이를 구현할 준비에 착수할 것이다.  editor@itworld.co.kr


2019.03.11

WebAuthn, 암호 없는 웹의 미래에 대해 알아야 할 내용들

Mark Hachman | PCWorld
WebAuthn(Web Authentication, 웹 인증)은 새로운 웹사이트 로그인 방법이다. 마침내 암호를 기억해야 하는 번거로움에서 해방될 수도 있는 방법으로, 암호 대신 지문이나 얼굴, 또는 하드웨어 토큰을 사용한다.

지난 3월 4일 W3C는 WebAuthn API를 공식 표준으로 승인했다. 실제로 WebAuthn은 윈도우 10을 포함한 많은 인기 브라우저에 구현되어 있는 상태이다. 이제 웹이 이를 수용하는 일만 남은 상태. 조만간 보편적인 사용자 인증 방식으로 자리 잡을 WebAuthn에 대해 알아보자.
 
ⓒ GettyImagesBank
 

WebAuthn의 장점은?

수천만 명의 사용자 이름과 패스워드가 유출된 컬렉션의 데이터 침해 사고는 잘 알려져 있다. 이런 일이 일어나는 이유는 현재의 웹사이트는 사용자에게 로그인을 요구하고, 로그인에 사용된 사용자 이름과 암호를 사이트 내부에 저장하기 때문이다. 이런 데이터가 유출되거나 공개되면, 악당들은 이 정보를 사용해 침해당한 사용자가 다른 장소에서도 이런 암호를 사용하고 있는지 파악할 수 있다. 이런 식으로 연쇄 반응이 일어나면서 해커들은 점점 더 많은 개인 정보를 입수할 수 있다. 

WebAuthn은 암호를 요구하지 않는다. 사용자가 로그인할 때마다 1회용 인증 토큰을 생성한다. 기본적으로 웹사이트 별로 고유한 암호를 생성해 사용하라는 ‘권장 보안 실천 행동’을 적용하는 방식이다. 더구나 사용자에게 무엇을 기억하도록 강요하지도 않는다.
 

암호가 필요 없다면, 사용자는 무엇을 사용하는가?

WebAuthn은 2가지 주요 인증 방식을 지원하는데, 생체인식과 하드웨어 보안 토큰이 그것이다. 생체인식은 잘 알려져 있고, 또 많은 곳에서 실제로 사용하고 있다. 예를 들어, 스마트폰이나 컴퓨터에서 센서를 통해 지문 인증을 하거나 PC의 윈도우 헬로우 지원하는 심도 카메라를 통해 얼굴 인식 및 인증을 한다. 
 
윈도우 헬로는 윈도우 10 PC의 전면 심도 카메라를 이용해 사용자의 얼굴을 인식한다. ⓒ IDG / Mark Hachman

하드웨어 토큰은 이보다는 모호한 개념이다. 대표적인 사례 가운데 하나로 유비코(Yubico)의 유비키(YubiKey)를 들 수있다. 암호나 생체인식 대신, 유비키를 PC의 USB 포트에 연결하는 방식이다. 심도 카메라가 장착되어 있지 않은 PC에 유용한 방식이다. 유비키는 기본적으로 사용자가 항상 휴대하는 복잡한 암호라고 말할 수 있다. 잃어버린 경우, 사이트에 분실했다고 알려 키를 비활성화시킨 후, 새 키를 구입해 활성화시켜야 한다.
 

WebAuthn의 작동 방식

소포스 네이키드 시큐리티(Sophos Naked Security) 블로그에 WebAuthn 프로세스가 간략히 잘 정리되어 있다. WebAuthn을 지원하는 웹사이트에 로그인을 하는 경우, 브라우저는 PC(또는 스마트폰)에 사용자의 신원을 증명하라고 요구한다. 다르게 설명하면, 브라우저는 사용자의 신뢰할 수 있는 인증자에게 증명 제공을 요구한다. 여기에서 인증자란 스마트폰의 지문 리더, 윈도우 헬로, 하드웨어 토큰 같은 것을 의미한다.

인증자가 신뢰된 상태이기 때문에 암호를 사이트에 저장하는 지금 방식과 다르게 웹사이트에 지문 데이터, 기타 고유 데이터를 저장할 필요 없다. 기본적으로 인증자는 새로운 누구를 만났을 때 소개 및 추천을 해주는 친구 같은 ‘중재인’ 역할을 한다. 
 
유비코의 유비키는 이렇게 USB 포트에 꽂는 것으로 사용자를 인증한다. ⓒYubico

웹사이트가 사용자에게 로그인을 요구할 때, 브라우저는 인증자에게 사용자가 지문 등을 이용해 자신을 증명하도록 요청하라고 요구하는 것이다. 인증자는 이런 방식을 통해 사용자를 확인시켜주고, 브라우저는 사용자 확인에 대한 정보를 암호화해 웹 서버로 다시 보낸다. 

여기에 추가되는 것들이 있다. 공개 키를 이용한 사용자 데이터 암호화와 이를 푸는 사용자의 개인 키로 로그인하는 과정이다. 그렇지만 자신의 기밀(지문, 얼굴, 토큰)이 PC 내부에만 유지되도록 안전하게 커뮤니케이션을 하는 것이 기본적인 개념이다.

다르게 설명을 할 수도 있다. 은행 직원이 차를 운전해 사용자의 집을 방문해서 현금을 전달한다고 가정하자. 이 경우, 사용자는 자신의 신원을 증명해야 한다. 운전대를 잡은 은행 직원에게 큰 소리로 개인 정보와 암호를 알려줘 신원을 증명할 수도 있지만, 이 경우 이웃들이 엿듣게 된다. 이 경우, 당신의 신원을 증명할 수 있는 친구가 집에 있다면, 이 친구가 밖에 나가 은행 직원에게 신원이 증명되었다고 알려주는 것이 더 나은 방법이 될 것이다. WebAuthn이 여기에 해당된다.
 

WebAuthn 시연

WebAuthn에 대해 알아볼 수 있는 시연이 있다. 꽤 느리고, 공개 키가 실제 생성되지 않는 것으로 보이기는 하지만, Webauthn.org에서 WebAuthn의 작동 방식을 확인할 수 있다. 
 

WebAuthn과 이중 인증의 차이점은?

기본적으로 WebAuthn은 단일 요소를 이용한 인증, 신원 식별 방법이다. 꽤 엄격한 사용자 인증 방식이지만 단일 요소만 사용한다. 사용자가 기절을 했다고 가정하자. 다른 사람이 기절한 사용자의 지문으로 은행에서 신원을 증명할 수 있을까? 그것이 유일한 신원 증명 방법이라면(예를 들어, 암호를 사용하지 않는다면), 그렇게 할 수 있다. 기존의 이중 인증 방법과 연결해 사용할 수 있을지는 아직 확실하지 않다.

이중 인증은 일반적으로 ‘사용자가 알고 있는 무엇(암호)’, ‘사용자가 갖고 있는 무엇(스마트카드 또는 토큰)’, ‘사용자 자체’라는 3가지 요소 가운데 2가지를 결합해 이용한다. 다시 말해, 은행들이 보안을 더욱 강화하기 위해 WebAuthn 생체 인증과 함께 암호를 사용하는 것을 장려할 수도 있다.
 
WebAuthn은 PC만이 아니라 모바일 사이트에서도 동작한다. ⓒGettyImagesBank
 

WebAuthn이 실현되기 위해 필요한 것들은 무엇일까?

WebAuthn의 토대는 거의 완성이 되어 있는 상태이다. 윈도우 10, 안드로이드, 구글 크롬, 모질라 파이어폭스, 마이크로소프트 에지, 애플 사파리(프리뷰)에서 이미 WebAuthn을 지원한다.

따라서 웹사이트들이 WebAuthn를 지원하기만 하면 된다. 여기에는 WebAuthn 로그인이 허용되도록 코드를 바꾸는 것 이상이 필요할 수도 있다. 예를 들면, 윈도우 헬로가 사용자를 인식할 수 없는 경우, 또는 지문 리더의 지문 인식이 실패된 경우 웹사이트가 WebAuthn 대신 덜 안전한 암호 방식을 사용하게 될지 확실하지 않다. 또 웹사이트들은 사용자에게 WebAuthn 사용의 이점을 알려야 하고, 로그인 페이지 등을 바꿔야 할 수도 있다. 구형 PC를 갖고 있는 사용자는 하드웨어 토큰을 구매해야만 할까? 아마 아니겠지만, 이에 대해 결정은 내려야 한다.

이제 중요한 발전을 위한 변화가 진행되고 있다. W3C는 웹 표준도 만든다. WebAuthn이 궤도에 진입했기 때문에, 사이트들도 이제 이를 구현할 준비에 착수할 것이다.  editor@itworld.co.kr


X