NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

일회용 암호의 모든 것, OTP에 대하여

OTP는 일회용 암호(One Time Password)의 약자로, 일회용 암호를 만들어주는 생성기와 1회용 인증을 포함한 개념을 말합니다. 주로 금융권이나 게임사 등, 보안인증이 중요한 경우에 주로 사용하게 됩니다. 

OTP는 파고들어보면 매우 단순한 구조로 되어있습니다. 이 과정을 알기 쉽게 풀어서 말해보자면 다음과 같습니다. 

 

  1. 믿을 수 있는 사람에게 비밀번호 뭉치를 맡깁니다.
  2. 로그인을 할 때마다 그 사람에게 찾아가서, 비밀번호를 받아옵니다.
  3. 매번 랜덤 한 비밀번호를 하나 건네주며, 일정 시간이 지나면 암호는 사라집니다.

 

OTP는 간단히 말해, 암호를 맡긴 사람과 나만 알 수 있는 추가적인 암호문을 만들어내는 것입니다. 그래서 내가 만들어 둔 1차 암호가 노출되더라도 계정에 접속할 수 없도록 막는 역할을 해줍니다. 

과거에는 은행에서 별도로 건전지가 들어가는 OTP를 사용하거나, 보안카드라는 개념으로 플라스틱 카드 안에 수많은 숫자들을 써서 배포하기도 했습니다. 다만 무료도 아니었고, 분실 시 재발급하기가 매우 어려웠습니다. 그래서 스마트폰이 이 자리를 대체하게 되었죠. 

 

요즘은 구글이나, 네이버 등에서 OTP를 발급해주기도 하는데, 이런 스마트폰 기반의 OTP들의 특징은 본인인증 과정이 별도로 필요하지 않습니다. 대신 스마트폰에 로그인하는 계정과, 스마트폰의 고유 기기 정보를 엄격하게 확인합니다. 특히 기기 정보를 기반으로 비밀번호를 발급하는 구글 OTP의 경우, 이런 기기 정보 확인에 철저한 제한을 둡니다.

 

네이버 OTP의 사례도 이와 비슷합니다. 네이버 로그인 시 스마트폰으로 인증번호를 보내줍니다. 이후 이 인증 번호를 확인해야 로그인이 진행되는 방식이죠. 결국 내가 나임을 증명하는 방식을 스마트폰을 통해 만들어 두었음을 알 수 있습니다.

 

 

이메일과 SMS 인증

우리에게 익숙한 이메일 인증이나, SMS 번호 인증도 일종의 OTP의 개념이라고 볼 수 있습니다. 1회성 인증이 일어나고, 그 번호는 아무나 확인할 수 없고 시간제한도 걸려있으니까요. 하지만 이메일과 SMS 인증은 각각 큰 문제가 있습니다. 바로 해킹 위험성과, 가격 문제입니다.

 

  • 이메일 인증: 비용은 저렴하나, 웹 기반인 경우가 많아 해킹이 쉬움
  • SMS 인증: 한 통에 10~ 20원 정도의 비용이 발생함. 해킹에는 상대적으로 강한 편

 

각각의 인증번호 전송에는 돈이 들어갑니다. 그래서 앱 기반의 인증으로 대체하는 서비스가 늘어난 것이고, 그중에는 구글 같은 외부 OTP 서비스를 끌어다 사용하는 곳도 생겨난 것이죠.

 

 

OTP도 완벽하진 않아요

OTP는 기술적으로 보았을 때, 매우 안전한 기술입니다. 비밀번호가 계속 고정되지 않는 데다, 시간제한까지 걸려있어 해킹이 쉽지 않죠. 게다가 사용자가 입력한 키 값은 암호화 처리되기 때문에, 더욱 안전하죠. 

게임 회사들처럼 OTP 서비스를 자체적으로 만드는 회사도 있지만, 구글같이 공개된 OTP 서비스를 가져다 사용하는 경우도 있습니다. 이 경우, 서비스를 만드는 사람에겐 매우 편리한 선택이 될 겁니다. 하지만 사용자가 비밀번호를 잃어버리면, 복구하기가 어려워집니다.

 

구글의 OTP 앱은 스마트폰의 고유 ID(UDID)를 확인합니다. 온 세상에 이 번호는 단 하나뿐이기 때문에, 이 번호로 사용자를 구분하죠. 만약 스마트폰을 교체하는 경우, 이 정보를 인식할 수 없게 됩니다. 그러면 OTP를 재설치할 수도, 리셋할 수도 없는 상태가 되죠.

이런 OTP를 끌어다 사용한 서비스 회사는 이 정보를 알 수 없습니다. 안전해지는 만큼, 문제를 해결할 방법도 적어지는 것이죠.

 

또한 OTP를 설정했음에도 해킹을 당하는 사례가 생기기도 합니다. 대부분의 OTP가 스마트폰 안에 들어가고 있는 요즘 이메일이나 문자 등으로 추가 인증을 하게 됩니다. 그러니 스마트폰 자체를 해킹해서, 암호를 가로채는 방식으로 해킹을 하기도 합니다. 그 과정은 다음과 같습니다.

 

1. 사용자가 OTP를 입력하려 합니다.

2. OTP가 발행이 되었을 때 해커는 네트워크를 끊어버립니다.

3. OTP는 발급되었지만 접속은 못하는 상태가 됩니다.

4. 이때 해커는 이 OTP를 통해 접속을 합니다.

5. 이후 OTP를 해제하거나, 사용자의 계정을 맘대로 사용합니다.

 

스마트폰 OTP는 겉으로 보기엔 안전해 보이지만 충분히 해킹이 가능합니다. 또한 기기 UDID 같은 지점을 기반으로 검증을 할 경우, 기기이동이 불가능하거나 비밀번호 찾기가 어려워지는 등 한계가 많은 기술이기도 하죠. 그래서 이 문제를 해결하기 위해 나온 것이, 메신저 기반 OTP 서비스입니다.

메신저 기반 OTP는 보안 비밀번호를 입력해야 진행이 가능합니다. 그리고 그 인증 과정을 카카오톡 같은 메신저 기업이 담당하게 되죠. 가격도 SMS 인증에 비해 저렴하고. 해킹 위험성도 상대적으로 낮습니다. 추가로 앱을 설치할 필요도 없으니 서비스를 만드는 기업들이라면, 한 번쯤 고민해 볼만한 선택지입니다. 이런 식으로 ‘메신저’를 통해 인증하는 방식은 아직 많이 대중화되지 않았지만, 미래에는 더 자주 만나보게 될 겁니다.

 

지금까지 OTP에 대해서 알아보았습니다. 만약 메신저 기반 인증에 대해 좀 더 알고 싶다면, 참고자료를 확인해보세요!

 

<참고자료>

https://blog.kakaopay.com/96

https://news.joins.com/article/23668128

댓글 0

리플러스

웹개발과 UI를 연구하는 리플러스입니다. 현재 UD LAB이라는 채널을 운영하고있고, 디자이너를 위한 개발 공부법을 만들고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.