본문 바로가기

카테고리 없음

패스키(Passkeys) 비밀번호를 대체한다

애플이 WWDC 2022에서 Passkeys라는 이름의 패스워드를 대체한다는 기능을 소개했었죠.

애플은 iOS 16부터 이 패스키 기능을 적용했고 이제는 구글 크롬 108 버전에서도 패스키를 정식 지원하기 시작했습니다.

패스키는 비밀번호를 대체합니다

애플, 구글 그리고 FIDO Alliance에서 패스키를 설명하는 문구입니다.

비밀번호를 기억하고 입력하거나 비밀번호를 저장해두지 않아도 된다는 이야기입니다.
비밀번호를 없애버리겠다는거죠.

패스키는 FIDO2 또는 WebAuthn(Web Authentication) 기술을 기반으로 합니다. 애플이 WWDC 2022에서 이 기술이 적용될 것이라고 공개하면서 좀 더 널리 알려지기 시작했죠.

비싼 보안키

예전에는 이런 USB 스틱형태의 장치인 보안키로 이용할 수 있었죠. 대략 3~8만원 더 비싼 것은 10만원을 넘기도하는 보안키를 따로 구매해서 사용해야했고 휴대하고 다녀야했기 때문에 널리 사용되지는 못했습니다. 이걸 잃어버리면 내 돈 8만원도 날리는 거지만 보안키를 새로 구매해서 모두 다시 등록해야하는 불편도 있죠. 신용카드를 분실해서 재발급 받으면 결제 정보를 전부 바꿔줘야하는 것처럼 말이죠.

이런 보안키의 불편함을 해소하고 웹에서 보다 쉽게 사용할 수 있도록 휴대폰 등 다양한 인증장치를 지원하고, 인증장치를 PC와 연결해야하는 불편도 없애고 이렇게 저렇게 좋게 만든 것을 부르는 이름이 Passkeys입니다. FIDO2, WebAuthn 이런건 개발자가 알면되는 이름이고 모두가 기억하기좋게 지은 이쁜 이름이 Passkeys이죠. 패스키. 알아듣기 쉽죠. 키는 열쇠.

이 글에서는 Passkeys라는 이쁜 이름만 알아보기로하고, 기술적인 내용은 아래 링크의 글을 읽어보시면 좋습니다.

FIDO Alliance의 Passkyes 소개 : https://fidoalliance.org/passkeys/
Apple의 Passkeys 소개: https://developer.apple.com/kr/passkeys/
Google의 Passkeys 소개 : https://developers.google.com/identity/passkeys

패스키는 어떻게 다른가 비교해보죠

비밀번호를 없앤다고하는데 우리는 이미 소셜로그인이라는 기능으로 비밀번호를 입력하지않고 네이버 아이디로 로그인, 카카오톡으로 로그인, 페이스북으로 로그인하기 같은 버튼으로 클릭 한 번으로 비밀번호 입력없이 로그인을 해왔었습니다.

 

소셜로그인과 무엇이 다른가

소셜로그인 기능은... 일명 '네아로'로 불리는 '네이버 아이디로 로그인'처럼 '네아로' 버튼을 누르면 네이버 로그인 창이 뜨고, 네이버 아이디로 로그인해두면 네이버 계정 정보를 활용해 새로운 사이트에 가입하고 로그인할 때도 아주 쉽게 동작합니다.

소셜로그인으로 이미 비밀번호 없는 로그인이 됐었네?!

하지만 소셜로그인을 이용하기위해서는 해당 소셜서비스에 먼저 로그인해야만 합니다. 내 휴대폰이나 PC에서는 자동로그인을 해두면 편리하죠. PC방이나 도서관, 친구의 PC 등 내 기기가 아닌 공용PC에서 소셜서비스에 로그인하면서 계정의 비밀번호가 유출될 우려가 있죠. 공용PC가 바이러스 범벅되어 키보드 입력을 가로채서 빼간다면 내 소셜 계정도 털리고 소셜로그인 연동한 사이트들의 계정까지 다 털리는거죠. 허접한 A사이트에서 틀린 정보를 보고 못참고 댓글 하나 달려고 소셜로그인 했더니 더 중요한 소셜서비스 계정이 털릴 수도 있는거죠. (이 글에 보완해야 할 정보가 있거나 오류가 있거나 오타가 있거나 뭔가 괜히 뭐가 좀 그러면 댓글 남겨주세요)

소셜로그인 기능은 소셜서비스에 기재한 개인정보가 가입하려는 사이트에 전달되기도 합니다. 이름(실명)이나 이메일 주소, 휴대폰 번호 같은 것들도요. 패스키는 내 개인정보를 중계하거나 보내지 않습니다. 또한 소셜로그인을 사용한 사이트가 소셜서비스에서 저장되기 때문에 내가 이용하는 사이트를 파악할 수 있고 이를 이용해 나를 분석하거나 추적하는데 이용될 수 있습니다.


비밀번호와 무엇이 다른가

내 개인정보를 중계하거나 보내지도 않음은 물론 비밀번호를 입력하거나 비밀번호가 어딘가로 전송되지도 않고 서버에 저장되지도 않습니다.

패스키는 "공개키"라는 영어, 숫자로 된 뭔가 컴퓨터만 알아볼 수 있을 것 같은 글자들을 보냅니다. 이런거죠.

-----BEGIN PUBLIC KEY-----
MFkwEwYHKsZIzj0CAQYIKoZIzj0DAQcDQgAEpqZR9WMqphEqGf0WY2gBv6ysrpdc
A+a1sDuKkfCQMH9qPW7kdL5O+nM8zMFo0BnFWNXuuBgdwb2uX1HtPkcnEA==
-----END PUBLIC KEY-----

저기에 뭔가 내 개인정보가 숨어있을 것 같지만 그렇지는 않습니다. 믿으셔야 합니다.

우리가 겪어왔듯이 비밀번호 유출 사고는 생각보다 자주 일어나기도하고 사실 우리가 알지 못하게 유출되고 있습니다. 웹사이트 운영자도 서버가 해킹이 됐는지~ 서버 정보를 누가 탈탈 털어갔는지~ 모르는 경우도 많습니다. 해마다 한 두 번은 비밀번호 털려서 일단 미안하고 고갱님의 개인정보는 소중하니 비밀번호 바꾸세요~하는 이메일을 받기도 하죠. 이런 안내를 하는 서비스는 그나마 관리되고있는 겁니다. 관리가 허술한 사이트는 해킹을 당했는지 조차도 모르거나 정보유출 사고를 숨기기도하죠.

비밀번호는 8자리 이상이어야하고 특수문자도 넣어야하고 숫자도 꼭 하나 이상 넣어야하고... 아! 대소문자 섞어서 입력하라고 개답답하게 구는 이유가 q1w2e3 이딴 이런 비밀번호나 너무 쉬운 비밀번호를 사용하면 마구잡이로 때려맞추기가 가능하기 때문이죠. 비밀번호 하나 때려맞추기 성공하면 같은 아이디나 이메일로 가입된 사이트를 돌면서 로그인 시도해서 털어가기 때문에 사이트 마다 전부 다 다른 비밀번호를 사용해야 더 안전하다고하는데 메모장으로 비밀번호아니고떡볶이레시피니까절대열어보지마.txt 파일을 만들어서 적어놓을 수도 없고 말이죠.

그래서 개인정보나 비밀번호 관리에 민감한 분들은 무작위로 비밀번호를 만들어주는 기능을 이용하죠. 브라우저 자체에서 제공하기도하고 1Password, LastPass 같은 서비스를 이용 할 수도 있는데 LastPass는 잊을만하면 데이터 털렸다는 기사가 나오네요. 패스워드 관리 기능을 사용하기도 하지만 공용PC 등 여기저기에 자주 비밀번호를 입력해야하는 서비스는 기억해놔야 편하니 자신만의 패턴으로 비밀번호를 만들어 사용하기도하죠. 네이버는 Nav12kki-gomi@er, 구글은 Goo12kki-gomi@gle 뭐 이런식으로(제가 실제 사용하는 패턴은 아니니 털어가지 마세요ㄷㄷ) 패턴을 만들어서 사이트 이름을 섞어 변형하는 방식으로요. 적당히 기억하기 쉽죠. 근데 이게 또 어떤 사이트는 골뱅이는 입력할 수 없다하고 12자리 넘으면 안 된다고하고 아오 뭐시기가 뭐가해서 패턴을 바꿔야하는 경우도 있죠. 승질나게.

아무튼 비밀번호는 유출되거나 때려 맞춰서 유추할 수 있어서 복잡하게 만들어야하고 사이트마다 다르지만 내가 어느정도 기억 할 수 있을 정도의 비밀번호를 사용해야 그나마 안전해서 복잡한 패스워드 기억하느라 머리가 아픕니다. q1w2e3 이런거 사용하지 말라는 얘기죠.


읽을 필요도 없는데 읽으면서 내려오셨을 쓸데없이 길어진 위 문장과 같은 고통을 패스키로 해결할 수 있습니다.
패스키가 서버에 등록하는 공개키는 내 정보를 담고있지도 않으며 무작위이며 재사용되지도 않습니다.

사이트가 털려서 공개키가 유출되더라도 같은 키를 사용하지 않기 때문에 다른 사이트에서 이 공개키를 사용할 수도 없습니다. 공개키는 단순히 비밀번호의 다른 형태가 아니며 비밀번호 때려 맞추기처럼 공개키를 때려 맞춰서 로그인하는 방식이 아닙니다.

공개키가 유출되거나 내 공개키를 여기저기 뿌리고 다녀도 공개키로 할 수 있는 것은 아무것도 없으며 아무것도 알아낼 수도 없습니다. 공개키를 훔쳐가서 피싱 사이트를 만들고 내가 거기에 속에 패스키 인증을 해버려서 인증한 정보를 가로채가더라도 말이죠. 매번 다른 요청을 보내기 때문에 인증한 정보를 재사용 할 수 없습니다.

위키피디아 공개키 설명 : https://ko.wikipedia.org/wiki/공개_키_암호_방식

 

이중인증과는 무엇이 다른가

2단계 인증, 이중인증, OTP인증 등으로 부르는 것들은 비밀번호로 로그인한 후에 비밀번호가 유출되었을 수도 있으니 정말 네가 맞는지를 확인해달라는 절차죠.

물리적인 OTP 장치나 앱, 또는 문자메시지로 보낸 인증코드를 입력하게 하거나 구글은 지메일, 유튜브 앱으로 알림을 보내서 예/아니오를 선택하게하거나 숫자 3개 중 하나를 고르라고하죠. 네이버도 네이버 앱으로 알림을 보내서 '이거 네가 로그인하려는거 맞아?'라고 물어보죠.

알려주지 말라는데도 알려줘서 털리는 사람이 있는 OTP

이런 이중인증 방식은 여전히 비밀번호를 사용하면서 이 인증코드는 다른 사람이 알려달라고하면 절대 알려주면 안 되고 내가 로그인 하려는 것이 아니면 확인 버튼을 누르지 말고 취소를 눌러야하고 실수로 확인 누르지 않게 조심해야하는 방식을 사용합니다. 보이스 피싱처럼 "인증코드 보낼테니 불러주세요~ 안전합니다~"하며 나를 속여서 코드를 빼가거나 인증 요청을 수락하게해서 내 정보를 탈취하려는 공격에 취약합니다.

패스키는 이러한 피싱이 통하지 않습니다. 패스키 인증을 할 때 블루투스로 기기가 근처에 있는지 확인하기 때문에 내 정보를 빼가려는 사람이 나에게 인증 요청을 보내는 것 자체가 불가능해서 피싱 공격으로부터 안전하고 인증요청에 실수로 확인을 누르거나 뭔가에 홀려 코드를 불러줘버리는 것으로부터도 안전합니다. 애초에 인증 요청이 오지도 않고 불러줄 코드 자체가 없으니까요.


보안키와는 무엇이 다른가

맨 처음에 봤던 몇 만원하는 보안키는 패스키 이전부터 강력한 보안 인증을 이용할 수 있었습니다. 패스키나 보안키나 인증을 처리하는 기술 자체나 보안성도 동일합니다.

앞서 말했듯이 보안키는 적지않은 금액으로 구입해야하고 분실하면 다시 구매해서 다시 등록해야하는 과정도 거쳐야하는 불편함이 있습니다. 패스키는 휴대폰 자체가 보안키 역할을 담고 있고 이 키(개인키)를 애플, 구글, MS 등 지원하는 서비스의 계정으로 동기화되어 보관되기 때문에 휴대폰을 잃어버려도 새로 구매해서 동기화하면 쉽게 복원이 되어 다시 등록할 필요가 없죠.

계정을 통해 여러 기기에 동기화 되기 때문에 보안키처럼 무언가 하나를 항상 휴대하고 다니지 않아도 아이폰, 아이패드, 맥, 윈도우에서 자유롭게 패스키를 사용할 수 있고 안드로이드도 크롬 브라우저를 기반으로 안드로이드 휴대폰, 윈도우, iOS 그리고 크롬OS와 리눅스 등에서 동기화되어 자유롭게 오가며 사용할 수 있게 됩니다. 보안키보다 편리하고 추가 지출이 없고 분실 시 발생하는 추가 비용이 없죠.

패스키도 생체인증 뿐만 아니라 보안키를 이용할 수도 있습니다. 패스키 인증창에서 보안키 로그인을 선택하고 보안키를 USB 포트에 꽂거나 NFC를 지원하는 보안키로 휴대폰에 갖다 대면 됩니다.

NFC 지원하는 건 조금 더 비싸긴합니다. 쪼금 욕심냈더니 8만원 결제됐어요. 한 달 전에 주문했는데 안 와요. 이번 달에 온다더니 그마저도 다음달로 딜레이 됐어요. 맘에 안들면 취소하라네요. 왜. 난 기다릴거야. NFC로 써보고 싶다고.

 

패스키는 완벽하다는거네?

패스키는 유출돼도 악용 자체가 불가능합니다. 말빨에 홀렸더라도 피싱으로부터도 안전합니다. 사이트 운영자도 비밀번호를 암호화해서 보관해야하는 수고와 유출될 걱정을 안 해도 되고요.

하지만 개인키를 보관하고 동기화해주는 애플, 구글, MS 등의 계정을 안전하게 관리하지 못해 이들의 계정이 유출되거나 기기를 도난당하면 패스키 인증에 핵심이자 절대절대절대절대 털리면 안 되는 개인키가 털리면 패스키로 등록한 사이트 전체가 털리는 불상사가 일어납니다. 이거 하나 털리면 비밀번호 털리는거 보다 위험한거 아닌가?

하지만 이 개인키 또한 기기의 생체인증 등으로 보호 받습니다. 정말 중요한 개인키가 털린다해도 보호되고 있기 때문에 악용의 우려는 크지 않습니다. 불가능하죠.

완벽한가? 싶기는 하지만 그렇지는 않겠죠. 지문, 얼굴, 홍체, 정맥 그리고 목소리 등의 다양하고 보안성이 높은 생체인증으로 이용할 수 있겠지만 지문을 본떠서 위조하거나 비슷한 얼굴로 인증이 되어버리거나 자고 있을 때 몰래 인증을 할 수도 있고 손가락을 잘라갈 수도 있죠.

눈을 뽑...


인증의 핵심인 인증장치인 휴대폰 또는 노트북, 태블릿 등에 생체인증 설정을 해두지 않고 4자리 6자리 정도의 짧은 숫자로만 락을 걸어두었다면 조금 더 위험할 수도 있습니다. 분실에 대비해 인증장치 그 자체인 휴대폰, 태블릿 등의 기기의 보안에는 조금 더 신경을 써야한다는 얘기죠.

지금은 애플, 구글, MS를 주축으로 지원하지만 1Password, Bitwarden 등의 패스워드를 관리해주는 서비스들도 패스키를 지원하기 시작했거나 지원 할 예정입니다. 앞으로도 더 많은 서비스들이 나오겠죠. 애플이나 구글에 종속되지 않고 이런 서비스 또는 앱을 이용할 수도 있습니다. 애플, 구글 등의 보안이 못미덥거나 클라우드에 데이터가 올라가는 것이 싫다면 기기에만 보관해주는 서비스를 이용할 수도 있습니다. 편의성은 조금 떨어질 수는 있겠지만요.

아무튼 좋은 기술입니다. 비밀번호의 여러 문제로부터 완전히 벗어날 수 있고 보안키로 제공했던 뛰어난 보안성에 편리함을 더한거죠.

아직은 많은 사이트가 지원하지는 않지만 이번 구글 크롬 108 버전에서 정식 지원으로 앞으로 이 기술을 적용하는 사이트가 좀 더 빠르게 늘어나기를 기대합니다.

스파클 무라벨 생수, 2L, 6개

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.