[생활보안] 은행용 OTP는 정말 안전한가요?
상태바
[생활보안] 은행용 OTP는 정말 안전한가요?
  • 석주원 기자
  • 승인 2020.11.13 10:24
  • 댓글 0
이 기사를 공유합니다

높은 보안성의 일회용 비밀번호, OTP

과거에는 인터넷 뱅킹을 사용하기 위해 PC에 온갖 보안 프로그램을 설치해야 했고, 공인인증서 인증을 필수로 요구해 접근성이 떨어졌다. 요즘은 스마트폰의 등장과 규제 완화 등으로 스마트폰 생체인증만으로도 간단한 은행 업무는 모두 소화할 수 있게 됐다. 하지만 고액을 온라인으로 송금하기 위해서는 아직도 하나의 안전 장치를 더 거쳐야 한다. 바로 OTP다.

OTP는 One Time Password의 약자로, 의미 그대로 한 번만 사용하고 버리는 비밀번호다. OTP의 개념 자체는 100년도 훨씬 전인 1880년대 이미 고안됐다. 역사가 오래된 만큼 여러 형태의 OTP 시스템이 사용되고 있다. 예를 들면 특정 사이트에 접속 권한을 획득하기 위해 1회성 비밀번호를 이메일로 전송받는 것도 OTP에 해당한다. 기본적으로 1회만 사용되고 폐기되는 비밀번호는 전부 OTP의 범위에 들어간다고 볼 수 있다.

우리가 일상에서 가장 흔하게 접하는 OTP는 아마도 은행 거래용 보안 장치일 것이다. 보통 인터넷 뱅킹 거래 한도를 1천만 원 이상으로 올릴 때 필수적으로 사용하게 된다. 은행에서 OTP를 신청하면 OTP 생성기를 제공받으며, 이후 일정 금액 이상을 이체할 때는 OTP 생성기를 이용해 인증을 받아야 한다.

은행용 OTP는 여러 OTP 방법 중에서 시간 동기화 방식을 채용하고 있다. 시간 동기화 방식은 인증번호를 입력하는 쪽과 검증하는 쪽이 같은 시간에 동일한 코드를 생성해 비교하는 방식이다. 즉 고객이 은행에서 받은 OTP 생성기의 버튼을 눌러 번호를 생성할 때 은행 서버에서도 동시에 같은 번호가 생성되어야 한다. 이 방식은 OTP에 내장된 시계의 시간과 은행 서버의 시간이 동일해야만 인증이 가능하다.

단, 이때 서버와 OTP 생성기 사이에는 어떠한 통신도 이루어지지 않는다. 애초에 우리가 사용하는 은행용 OTP 생성기에는 통신을 위한 부품 자체가 탑재되지 않는다. OTP 생성기의 시간은 처음 발급될 때 서버와 동일하게 맞추어 나오고, 이후 발생하는 오차에 대해서는 인증을 할 때마다 서버에서 자체 보정으로 같은 시간대를 맞춘다.

그렇다면 OTP 생성기는 어떻게 동작할까? OTP 생성기의 역할은 인증을 위한 무작위 수, 난수를 생성하는 데 있다. 사용하는 시간, 버튼을 누르는 횟수, 기타 생성기 고유 번호 등을 조합해 일정한 알고리즘이 탑재된 비밀키로 연산되어 난수(실제로는 의사난수)를 생성한다. 이 작업은 서버에서도 똑같이 이루어져 OTP 생성기가 만드는 난수와 동일한 난수를 생성한다. 이 난수가 일치하면 인증이 성공하고, 아니라면 실패하게 된다.

서버와 OTP 생성기는 서로 통신을 하지 않지만 인증을 할 때마다 난수 생성에 필요한 정보(시간 등)를 자체적으로 보정해 다음 인증에 반영한다. 즉 우리가 사용하는 은행용 OTP 생성기는 정밀한 계산기와 초소형 시계의 결합체라고도 할 수 있다.

현재 은행권에서 제공하는 OTP 생성기는 무선호출기가 생각나는 단말기 형태의 토큰형과 신용카드 형태의 카드형이 있으며, 일부 은행은 스마트폰 앱으로 OTP 서비스를 제공하기도 한다. 형태는 달라도 기본 동작 원리는 모두 동일하다. 또한, OTP 생성기에는 배터리가 내장되어 있으며, 배터리 수명이 다하면 교체가 안되기 때문에 새로 발급받아야 한다. 단말기형은 약 5년, 카드형은 약 3년이면 배터리 수명이 다하는 것으로 알려져 있다.

구글 플레이 스토어에 등록된 수많은 모바일용 OTP
구글 플레이 스토어에 등록된 수많은 모바일용 OTP

OTP는 이론적으로 완벽에 가까운 보안성을 자랑하기 때문에 은행권 외에도 신원 인증이 필요한 다른 분야에서 자주 사용되고 있다. 기업에서 기밀 정보의 접속 권한을 제한하기 위해 사용하기도 하고, 계정 관리가 특히 중요한 온라인게임에서는 일상적으로 사용되고 있다.

하지만 OTP가 100% 안전하다고 장담할 수는 없다. OTP로 사용된 값이 짧은 시간 동안은 유효한 인증 값으로 유지되기 때문에 이 빈틈을 노려 인증값을 탈취하는 공격도 고려해야 한다. 실제로 한 게임에서는 이런 방식으로 다른 사용자의 계정을 해킹한 사례가 있었으므로 OTP 사용 시에는 인증값이 다른 곳에 노출되지 않도록 주의해야 한다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.