본인확인(본인인증)에 대한 이야기

Published: Jan 29, 2020 by

본인확인 방법의 종류

우리나라에서 개발을 할 때 본인확인을 도입하는 방법은 아래와 같이 크게 두 가지로 나눌 수 있다.

  1. 직접 이메일이나 휴대폰 등의 수단으로 인증하는 시스템을 구축하는 방법 (직접 구축)

  2. 다른 하나는 인증된 업체들의 본인확인 시스템을 가져와서 구축하는 방법 (외부 시스템 도입)

위와 같은 두 가지 방법에는 각각 뚜렷한 장점과 단점들이 있다. 먼저 직접 구축 방법부터 설명을 해보겠다.

직접 구축

직접 구축을 할 시, 가장 큰 장점은 UI나 인증방식을 입맛에 맞게 만들 수 있다는 점이다. 보통 직접 본인확인을 구축할 때에는 이메일 혹은 휴대폰SMS를 사용하는데, 이메일의 경우 activation 링크를 보내서 링크를 클릭하면 확인이 되는 방식으로 구축하기도 하고, SMS의 경우 6자리 정도의 인증번호를 보내서 인증하는 방식으로 구축하기도 한다. SMS의 경우 요금이 들긴하지만 외부 시스템을 도입하는 것보다 훨씬 저렴하다.

위와 같은 시스템을 도입하는 것은 개발적으로 크게 어려운 것도 아니며 자유도가 높다. 이메일을 보내는 시스템이나 SMS를 보내는 시스템을 구축하면 그 이후에는 각자 시스템에 맞게 알아서 만들어주면 될 일이다. 하지만 이메일이든 휴대폰SMS든, 직접 구축했을 때의 가장 치명적인 단점이 있다. 바로 실질적인 “본인확인”을 할 수 없다는 것이다.

이게 무슨 말인가, 본인을 확인하기 위해서 이메일이나 휴대폰으로 인증을 하는 번거로운 방법을 동원하는 것인데…. 본인확인을 못한다니….

이유는 간단하다.

이메일의 경우, 본인의 명의와 관계없는 이메일 계정이더라도 로그인만 되면 확인을 할 수 있다. 또한 이메일은 쉽게 공유할 수 있다. 공유할 이메일을 따로 생성하면 그만이기 때문이다. 이러한 점을 고려했을 때, 이메일을 개인을 특정하는 진정한 본인확인의 수단으로 쓰기에는 허점이 꽤나 있어보인다.

SMS의 경우도 문제가 있다. SMS는 공유도 불가능하고 대포폰을 만들지 않는 이상 쉽게 본인의 명의와 관계없는 번호로 인증하기는 어렵다. 그럼 왜 SMS는 개인을 특정하는 본인확인 수단으로써 완벽하지 않을 것일까? 간단한 이유다. 휴대폰번호는 바뀔 수 있는 것이기 때문이다.

예를 들자면 A라는 사람이 “코바이”라는 서비스에 2017년에 010-1111-1111이라는 번호로 SMS인증을 통해 가입했다고 하자. 후에 A라는 “코바이”라는 서비스를 2019년까지 사용하지 않게 되었는데, 그사이에 휴대폰 번호를 010-2222-2222로 바꿨다. 2019년이 끝날 때쯤 A라는 사람은 “코바이”라는 서비스를 이용할 의향이 생겨서 로그인을 하려는데 비밀번호가 기억이 안나서, SMS본인확인을 통해 비밀번호를 초기화 시키려고 한다. 이 때 A는 본인의 휴대폰번호인 010-2222-2222를 입력할 것이다. 010-2222-2222는 분명히 존재하는 휴대폰이기에 인증은 완료될 것이지만 기존에 “코바이”가 가지고 있던 A라는 사람의 휴대폰 번호인 010-1111-1111과 일치하지 않게 된다. 따라서 “코바이”의 DB에는 010-2222-2222라는 번호가 존재할 리 없으므로 인증에 실패하게 된다.

위의 경우에서 “그럼 이전번호를 입력하게 하면 되지않느냐”라고 한다면, “이전번호를 모른다면?”이라고 말해줄 수 있다. A라는 사람이 010-1111-1111에서 번호를 5번을 바꾸고 다시 서비스에 들어오게 되었다고 한다면, 당연히 제대로된 인증을 힘들다. 이러한 간단한 경우뿐만 아니라, 기존 회원이 본인확인을 할 때 이용한 휴대폰 번호를 해지하고, 그 번호를 다른사람이 가져갔다면, 번호를 가져간 다른 사람이 기존 회원으로 인증을 해버릴 수도 있는 문제가 있다. 마지막으로 “실명도 받으면 해결되지 않느냐”라고 한다면, “실명또한 바뀔 수 있는 정보다”라고 답해줄 수 있다.

즉 정리하자면,

직접 구축의 장점 : 입맛에 맞게 UI를 꾸밀 수도 있고, 인증방식도 다양하게 선택할 수 있다.

직접 구축의 단점 : “실질적인 본인확인”이 어렵다. 이유는 이메일의 경우 개인을 특정하기 어렵고, SMS의 경우 휴대폰번호와 실명이 가변성있는 정보이기 때문이다.

외부 시스템 도입

그래서 일반적으로 사용하는 것이 다날, 이니시스, 케이지모빌리언스 등의 업체에서 제공해주는 본인확인 서비스이다. 한국인이라면 살면서 한번쯤 통신사를 선택하고 자동가입방지문자를 입력하며 SMS를 인증하는 “그 팝업”을 봤을 것이다. UI가 이쁜 사이트에서 갑자기 어울리지않는 휴대폰 본인확인 화면이 뜨면 한번쯤 “왜 이런 방식을 쓰지?”하는 의문을 가질 수 있겠다. 이유는 “직접 구축”으로는 힘든 실질적인 본인확인을 할 수 있는 수단이기 때문이다.

헌데 휴대폰 번호나 이름이 가변성 있는 정보라는 것은 분명한데, 왜 외부 시스템에서는 이러한 문제가 해결되는 것일까? 외부 시스템에서는 휴대폰번호나 실명, 생년월일로 유니크한 값이나 기본키를 설정하지 않는다. 흔히 개인에게 무조건 한개만 부여되는 CI값이나 DI값 등으로 사람을 판별한다. CI는 모든 사이트가 공통적으로 사용할 수 있는 개인인증번호이고(주민번호 대체라고 생각하면 편하다.) DI는 특정 사이트의 중복가입방지를 위해서만 쓰이는 값으로 한 개인에 대해 사이트별로 값이 모두 다르다(우연히 같은 경우 제외).

즉, 내가 휴대폰번호를 바꾸거나 개명을 해도 그 정보는 CI값과 DI값을 가진 레코드에 모두 업데이트 되므로 사용자는 언제나 자신의 명의로 된 휴대폰만 있으면 정확한 본인확인이 가능해지는 것이다.

외부 시스템 도입의 장단점을 이야기해보자, 장점은 위와 같은 이유로 “실질적인 본인확인”이 가능한 것이다. 특히 휴대폰 본인확인 시스템은 공인인증서나 신용카드 본인확인 같은 시스템에 비하면 엄청 간편하면서도 쉽게 개인정보를 조회할 수 있는 방법이다. 개발자입장에서는 너무나도 구축하기 간편하다.

단점은 외부 시스템은 역시 UI를 꾸밀 수 없고, 번거로운 UX를 가지고 있다는 것이다. 앱이나 웹의 디자인 코드로 오토포커싱을 하며 애니메이션을 주며 아름답게 본인확인을 구현하고 싶은데, 그렇게 할 수 없다. 그런데 가끔 보면 통신사 인증도 예쁜 UI로 진행하는 앱이 있기도 하다. “차이”라는 금융앱이 그렇다. 그래서 나도 서비스에 예쁜 UI로 본인확인을 도입하기 위해 “차이”앱에 본인확인 서비스를 제공하는 “케이지모빌리언스”에게 문의해본 결과, 2019년 하반기에 신청하는 업체들에게는 커스터마이징 기능을 주지 않는다고 한다…. ㅡㅡ^ 그리고 기존에 커스터마이징 한 업체들도 원래 UI로 돌려놓도록 할 것이라고 한다…. 이 무슨…. 어쨌든 결론은 UI는 힘없는 우리로써는 못꾸민다.

정리하자면,

외부 시스템 도입의 장점 : “실질적인 본인확인”이 가능하다. 이유는 CI, DI등 가변성없는 개인식별정보로 개인을 구분하기 때문이고, 가변성있는 휴대폰정보나 실명정보는 항상 업데이트 되기 때문.

외부 시스템 도입의 단점 : UI를 손볼 수 없기에 UX를 조정할 수 없다.