OTP
One-Time Password
일회용 암호
1. 설명
무작위 번호약속 알고리즘에 따라 매 시간마다 변경되는 추정 할 수 없는 비밀번호 생성을 이용하는 보안 시스템.
아이디어 자체는 100년도 넘은, 그리고 그만큼 검증된 기술이다. Multi-Factor authentication[1] 체계의 인증 요소중 하나로 즐겨 사용된다. 인증 요소 분류중 소유물 인증 요소에 해당한다.
대한민국의 경우, 금융기관의 오픈뱅킹을 사용해야 할 때 OTP 토큰이나 시각장애인 전용 점자 보안카드가 반드시 필요해서 찾게 되는 물건이기도 하다. 보안카드를 사진 찍어서 보관하는 등 허술하게 보관하는 사람도 많고, 이걸 어떻게든 빼가서 장난치려는 악의적인 사기가 많아졌기 때문.
다이렉트 뱅킹은 OTP가 필수다. 웬만한 은행들의 오픈뱅킹은 OTP를 강제하고 있으며, 보안카드는 오픈뱅킹에서 계좌 조회만 가능하다.
나무위키 등의 the seed에서는 사용자가 로그인할 경우 이메일 방식이나 Google Authenticator의 시간 동기화 방식의 OTP를 반드시 사용해서 인증해야 한다. 물론 평소 사용하는 브라우저와 기기에서 로그인하는 경우에는 이 과정이 필요없다.
접속시마다 그때그때 필요한 비밀번호를 생성하여 그 번호를 통해 사용자 본인 확인을 하는 방식이다. 대개는 주로 난수 발생기에 현재 시간을 넣어 비밀번호를 생성한다. 서버와 사용자의 생성기는 서로 교류하지 않지만, 시간을 seed로 하여 같은 알고리즘으로 생성 매칭을 하므로 서로 시간이 동기화되는 것이 중요하다. seed 시간은 초단위가 아닌 특정 time window 유닛으로 작동하므로 적정 수준의 톨러런스가 있다 (서로 몇초 차이가 나도 맞춰 동작된다.). 사용자 단말기 쪽 시계가 많이 달라져서 차이가 나게 되어도 서버쪽에서 해당 단말기에 대한 seed 차이 offset 보정 기능을 갖추면 여전히 동작한다. 타임스탬프에서 나머지 연산을 하게되면 원하는 시간단위로 분할하여 처리하게 할 수 있다. 예를들면 DB에서 흔하게 쓰이는 UNIX_TIMESTAMP modify 300 의 경우 5분 단위로 나머지를 구하게된다. 여기서 UNIX_TIMESTAMP 에 다시 빼주면 현재 시간이 속한 시작시각을 나타내준다. 여기서 예의 300으로 몇번 더 더하게 되면 더 나중에 시간이되고 빼게되면 이전의 시간을 구할 수 있게된다.
비밀번호가 1회용이라 노출되어도 재사용이 불가능하며, 비밀번호를 숨겨진 알고리즘을 이용하여 생성해내므로 서버와의 접속 없이도 생성이 가능하여 중간 과정에서 패킷이 유출되거나 하는 위험이 없다. 보안의 주안점을 방어력에서 기동성(?)으로 바꿔버린 체계.[2] 보통 시간 동기나 해시 체인을 사용한다. 참고로 금융기관에서 흔히 사용하는 시간 동기(Time OTP) 방식을 사용하는 OTP 토큰이 아닌, 비밀번호 생성 횟수(서버쪽은 사용 횟수)에 기반하는 Event OTP 방식 토큰을 사용하는 경우 비밀번호 생성 버튼을 신나게 누르다가 어느 순간부터 해당 OTP 토큰을 못쓰게 될 수도 있으니 주의해야 한다.
OTP 하나를 여러 은행에다가 등록해 놓았다면, OTP를 분실했다가 회수하였을 때 일일이 등록한 은행에 가서 정지를 풀어야 한다. 그리고 은행마다 다를 수 있겠지만 타행 OTP를 연결해서 쓰는데 그 OTP 유효기간이 다 되어서 갱신하게 될 일 등이 생기면 갱신 전에 OTP 등록을 해지하고 새 OTP를 다시 등록해야 하는 경우가 생길 수 있다.
특히 타행 OTP를 사용할 때, OTP와 공인인증서의 만료가 겹치게 되면 골때리는 교착 상황이 발생하는 경우도 있다. 운좋게 수명이 다한 OTP 외에 여분의 OTP를 갖고 있었던 경우, 원래는 타행 OTP 등록을 해서 사용하면 되는데, 공인인증서까지 만료된 상황이라면 1. 공인인증서를 다시 받으려고 하면 OTP 번호를 요구한다 2. 여분의 타행 OTP를 등록하려고 하니 공인인증서 인증을 요구한다. 이렇게 공인인증서를 해결하려면 OTP가, OTP를 해결하려면 공인인증서가 필요한 무한루프에 빠지게 되는 것. 결국 은행에 방문해야 한다. 'OTP 무한루프'로 검색해보면 이 무한루프를 당해서 어쩔 수 없이 은행을 방문한 사람들이 수두룩하다.
당행에서 발급받고 등록한 OTP를 해지하거나 다른 OTP로 교체하면 그 당행 OTP는 배터리가 남아있어도 타행등록이 불가능해진다. 단, 해지하기 전에 미리 타행등록이 되어있다면 계속 쓸 수는 있고 해지한 당행 OTP를 재등록하면 다시 타행등록이 가능해진다.
기본적으로 하나의 은행 당 1개의 보안매체만 보유할 수 있다. 그러므로 하나의 은행에서 2개의 OTP를 사용하거나 OTP와 보안카드를 병행해 사용할 수 없다. 만약 OTP를 등록하게 되면 기존의 보안카드는 사용이 해지되어 영구적으로 등록이 불가능해진다.[3]
접속시마다 새로 생성된 번호를 입력해야 하므로 번거로우며(그래도 보안카드보다는 훨씬 덜 번거롭다), 흔히 사용되는 시간 기반 하드웨어 OTP 토큰의 경우 내장된 시계의 품질이 좋지 않으면 내부 시계에 오차가 생길 수 있어서, 서버와 시간을 자주 동기화해 줘야 한다는 점이 단점이다. 게임에 한정된 이야기일 수 있지만, 막 점검이 끝난 게임 등 사람들이 몰려 서버의 상태가 좋지 않을 때 OTP를 이용해서 접속을 하려고 하면 비이용자의 두 배 이상의 시간이 걸리게 된다.
하지만 보안이라는 것은 귀찮음을 대가로 안전을 보장받는 것이라서, 귀찮지 않은 보안이란 이 세상에 존재하지 않는다.
'''컴퓨터를 이용하여 OTP 토큰이 만들어낸 비밀번호를 입력하는 일을 할 경우에는 자신이 쓰는 컴퓨터의 관리를 잘 하는 것도 중요하다.''' PC·휴대폰용 소프트웨어 OTP를 안 쓰는 금융 거래에선 이런 일이 없지만, PC·휴대폰용 소프트웨어 OTP를 활용하는 온라인 게임의 해킹에 다음의 기법이 실제로 사용된 적도 있다.
사용자가 올바른 OTP를 입력하긴 했는데 여러가지 방법을 써서[4] 정상적인 로그인 과정을 방해한 뒤 해커의 컴퓨터로 올바르게 입력한 OTP를 보낸 후 해커의 컴퓨터에서 사용자의 OTP를 자동으로 대신 입력해서 해커가 로그인한다.
위의 방법 이외에도 미처 OTP와 연결해놓지 못한 채 잊고있는 부분에서 넥슨의 캐쉬 털이 사건같은 색다른 해킹이 발생할 수 있으므로 자기 PC의 보안을 잘 지키는 것이 최우선이며, PC방 등지의 불안한 장소에서 쓸 보안수단으로 OTP를 사용하는 것이 바람직하다. 결국 OTP 하나만 걸었다고 안심하지 말고 추가적인 보안 수단을 사용할 수 있다면 그것도 같이 사용하는 것이 좋다.
OTP 토큰의 알고리즘을 만든 곳이 해킹 당해서 한방에 모든 사용자가 노출되는 경우도 있다. OTP 토큰을 만들던 美 RSA社가 해킹을 당해서 알고리즘이 털린 적이 있었는데 나중에 해킹 당한 RSA의 알고리즘이 적용된 OTP 토큰을 사용했던 록히드 마틴이 해킹당한 적이 있었다. 이에 따라 금융 당국에서 RSA社의 알고리즘을 사용한 OTP 토큰를 무상으로 급히 교체했던 적이 있다.[5]
2. OTP 발생기의 종류
2.1. 하드웨어 OTP
2.1.1. 토큰형 OTP
[image]
원래의 OTP는 일회용 비밀번호를 생성할 수 있도록 제작된 OTP 토큰이란 이름의 특수 하드웨어 장치나 카드를 사용하는 형태이다. 금융기관용 OTP 토큰이 가장 많이 쓰이며, 이 외에도 블리자드 로그인용이나 정부기관용 OTP 토큰 등도 있다. 여기선 금융기관용 OTP 토큰을 중점으로 설명하기로 한다.
흔히 볼 수 있고 흔히 사용하는 금융기관용 OTP 토큰은 은행이나 증권사에서 2000~5000원[6] 에 구입할 수 있다. 당연하지만 일단 한 번 OTP 토큰을 구입해 두면 금융기관별로 OTP 토큰을 다시 구매할 필요 없이 해당 금융기관에 방문하여 자신이 구입한 OTP 토큰을 등록할 수 있다. 심지어 금융 공동망으로 OTP 발급내역이 조회되어서 텔러가 "XX은행에서 받으신 OTP로 등록해 드릴까요?"라고 물어본다. 보통 금융기관이나 기타 OTP를 지급하는 곳에서는 미래테크놀러지와 바스코 OTP를 많이 주는데, 미래 OTP는 유리몸 수준의 품질과 바스코에 비해 짧은 배터리 수명으로 악명 높다.
배틀넷 2.0(월드 오브 워크래프트, 스타크래프트, 스타크래프트 2, 디아블로 3, 하스스톤, 오버워치 등) 로그인 전용 하드웨어 OTP 토큰인 'Battle.net 인증기'는 블리자드 홈페이지에서 7000원에 구입할 수 있다. 소프트웨어 OTP 토큰도 있으며, OTP를 사용하면 월드 오브 워크래프트에서 사용할 수 있는 '새끼 심장부 사냥개'를 선물로 준다. 단, 말 그대로 배틀넷 2.0 로그인 전용 OTP 토큰이라서 금융기관에선 사용할 수 없다.
보통 금융거래용으로 많이 쓰는 금융기관용 OTP 토큰을 잃어버리거나 배터리가 방전된 경우, OTP 토큰을 새로 구입하는 것으로 끝나는 것이 아니다. 보안상 배터리를 바꾸는 순간 OTP 토큰의 생성값(시드)이 바뀌어 버리게 설계되어 있어서 배터리 교체는 불가능하다. 보통 구입 후 2~3년 정도 이용할 수 있고, 거의 안쓰면 4년 이상 사용할 수도 있다. 그러나 OTP 토큰이 신기하거나 심심하다고 매일 시도때도 없이 OTP 토큰의 전원 버튼을 누르면 배터리가 빨리 방전된다.
금융기관용 OTP 토큰을 배터리 방전 등의 이유로 재발급하려는 경우, 은행마다 다르지만 우량 고객 등 지극히 한정적인 조건을 갖추지 않은 이상 재발급 비용이 필요하다. 인터넷으로도 타기관 OTP 등록이 가능한 은행이 있지만, 없거나 연동이 불안한 곳도 많아 은행 지점을 방문해야 하는 경우가 많다. 다른 용도의 OTP 토큰인 경우는 다를 수도 있기 때문에 해당 OTP 토큰을 사용하는 해당 기관의 설명을 참조하자.('''범용'''이 아닌 한정용으로 발급한 경우 타 은행에 등록을 못할 수 있다.) 다만, OTP는 몇 개를 받건 상관없지만 반드시 1기관 1OTP. 이를테면 보안카드와 같이 쓴다거나 여러 개를 걸어놓고 쓰는 것은 안 된다.
하드웨어 OTP를 사용할 경우 소액의 장치 구입 비용과 유지 비용이 발생하기 때문에 OTP 토큰 구입 비용을 들이면서까지 돈과 크게 관련없는 서비스에 로그인할 필요가 없다고 생각하지만 그래도 OTP는 필요한 업체/사람을 위한 소프트웨어 OTP란 것이 있다.
가장 일반적인 형태의 OTP지만 어느정도의 크기가 있기 때문에 지갑에 넣고 다닌다는 건 사실상 불가능하며 휴대하려면 파우치나 가방에 넣고 다녀야 한다는 불편함이 있다. 고리를 걸 수 있는 구멍이 있기는 하지만 보안매체라는 점에서 대놓고 보이게 갖고 다닐 수는 없는 노릇. 이러한 점을 개선해서 나온 것이 바로 카드형 OTP이다.
2.1.2. 카드형 OTP
둥글넙적한 기존 OTP 토큰의 불편한 휴대성을 개선하여 나온 OTP 토큰으로, 신용카드처럼 생겨서 카드형 OTP라고 불린다. 금융기관용은 은행이나 증권사에서 6,150원[7] ~20,000원[8] 정도에 구입할 수 있다. 하지만 카드형 OTP라고 해서 우리가 보아왔던 플라스틱 카드처럼 얇고 잘 휘어지는 건 아니었다. 카드형 OTP는 교통카드·IC현금카드처럼 CPU와 RAM이 내장되어 있는 건 같지만, 외부 요인과 완전히 독립적인 장치라서 외부로부터 전원을 공급받는 카드와는 달리 자체 배터리가 장착되어 있고, 1회용 암호를 보여줄 디스플레이까지 장착되어 있기 때문에 폭과 너비만 신용카드 크기였지 꽤 두꺼웠다. 처음에는 흑백 패시브 LCD 액정이 달려 있었는데, 카드가 휘어지면 액정이 손상된다는 큰 문제가 있었다. 이런 이유로 초기의 카드형 OTP는 거의 사장되었다.
이런 단점을 개선하고자 디스플레이에 전자잉크를 쓴 제품이 나왔다. 두께도 신용카드와 거의 비슷할 정도로 얇아지고, 휘어지기도 잘 휘어진다. 전자잉크는 LCD에 비해서 휨에 훨씬 더 강할 뿐만 아니라 배터리 소모도 적어서 수명도 길고(사용자에 따라 다르나 약 2년에서 4년정도 지속된다. 거의 안쓰는편이면 7년정도도 사용 가능하다고.) 흑백 LCD보다 훨씬 더 잘 보인다는 장점도 가지고 있다.
모든 은행에서 카드형 OTP를 취급하는 것은 아니며, 일반적인 동글형보다 비싸다.[9] 게다가 지점에 따라서는 카드형 OTP가 없을 수도 있으므로, 방문하려는 지점에 전화로 재고를 확인하고 찾아가야된다.
전자잉크를 기반으로 OTP 기능을 넣은 신용카드가 기업은행와 SC제일은행, 우리은행에서 출시되었다. NH투자증권, 케이뱅크에서는 체크카드로 발행된다. 이후 스마트 OTP 기반으로 OTP 기능을 넣은 신용카드도 국민카드, 신한카드에서 출시되었다. 심지어 카카오뱅크에서는 라이언 캐릭터가 그려진 OTP도 발급해준다. 발급시 라이언 스티커(안전제일 스티커)도 덤. 특히 카카오뱅크 OTP 카드는 등기 우편으로 배송되기 때문에 은행 방문 없이도 OTP를 받을 수 있다는 게 최대 장점.
BNK 부산은행 카드형의 경우 2018년 1월 30일 기준으로 미니OTP를 발급하기 시작하였고 일반 카드형OTP보다 사이즈가 작아진 형태로 발급비용은 기존발급비용보다 저렴한 7,000원으로 발급을 받을수 있다.
[image]
2.2. 하이브리드 OTP (스마트 OTP)
[image]
국민은행의 스마트 OTP 카드[10]
기존에 사용되던 하드웨어형 토큰(토큰형, 카드형)은 배터리가 닳으면 사용이 불가능하고 휴대하기에도 까다롭다는 단점이 있었고, 소프트웨어형 토큰(모바일 OTP)은 보안이 취약하여 은행 거래에 사용하기에 불안하다는 단점이 있었다. 하이브리드 OTP 토큰은 이 두가지 시스템을 절충하여 만든 것으로 실질적으로는 하드웨어 토큰에 가까운 방식이다. NFC를 이용하기 때문에 현재는 안드로이드 단말기에서만 이용할 수 있고,[11] 본인 명의 USIM이 장착된 기기여야 한다는 약점이 있다.[12] 다만 단순히 NFC만 지원하면 되므로 구글 넥서스에서도 문제 없이 쓸 수 있다.
이 방식은 은행이 고객에게 비밀번호 발생에 필요한 정보가 담긴 IC카드를 발급하고, 고객이 비밀번호가 필요할 때마다 전용 프로그램에 IC카드를 읽혀서 비밀번호를 생성하는 방식이다. 배터리의 교체가 필요없어 고장나거나 파손되지만 않으면 반영구적으로 사용이 가능하며, 기존 카드형 OTP보다 튼튼하고 저렴하다.[13] 다만 타행은행에서 사용하려면 별도의 코드와 앱이 필요한 경우가 있으며, 사용법 또한 기존 OTP에 비하여 비교적 직관적이지 못하다는 단점이 있다.[14] 또한 스마트 OTP를 발급받으면 기존의 보안카드나 하드웨어형 OTP의 사용이 중지되는 경우가 있어 발급할 때 잘 생각해보고 결정하자.[15]
은행권에서는 '''스마트 OTP'''라고 부르며 현재 국민은행과 신한은행[16] , KDB산업은행, IBK기업은행, 케이뱅크 그리고 우리은행이 발급하고 있다.
타기관(타행)으로 스마트 OTP를 등록할 수 있는 곳은 KB국민은행, 신한은행, KDB산업은행, IBK기업은행, 우리은행, 하나은행, NH농협은행, 우체국, 수협은행, 산림조합, 새마을금고, 신협, 제주은행, 전북은행, 광주은행, 대구은행, 경남은행, SC제일은행, 한국씨티은행, 케이뱅크 등 대부분의 은행에서 등록이 가능하지만, 아직까지 부산은행, 카카오뱅크는 등록이 불가능하다.
종금사인 우리종합금융도 스마트 OTP 등록이 가능하다.
저축은행의 경우, 신한저축은행 등에서는 등록이 가능하나, KB저축은행, NH저축은행 등에서는 스마트 OTP 등록이 불가능하다.
증권사의 경우, 한국투자증권, 삼성증권, 메리츠증권, KB증권, 미래에셋대우, 대신증권, 키움증권, 교보증권 등 대부분의 증권사에서 타기관 등록이 가능하다.
장단점을 보면
- 장점: 배터리가 필요없어 사실상 반영구적, 보안카드와는 다르게 타행은행과 호환이 가능, 카드형이기 때문에 휴대성이 좋음, 하드웨어 형태라 보안성이 우수. 일반 OTP에 비해 가격이 다소 저렴.
- 단점: 일반 OTP에 비해 사용과정이 다소 복잡함[17] , NFC 기능이 있는 휴대폰에서만 사용이 가능, 타기관 은행을 등록하고 사용 시 별도의 앱 설치를 요구받을 수도 있음, 아직 스마트 OTP를 지원하지 않는 금융기관이 있음.
2.3. OTP 프로그램, 모바일 OTP
[image]
[18]
외부와 완전히 독립적인 장치인 OTP 토큰과는 달리 소프트웨어 OTP는 보통 휴대폰이나 PC에 OTP 프로그램을 설치하여 번호를 생성하는 방식을 이용한다. 처음 사용할 때 최대 5000원의 비용이 발생하는 OTP 토큰과 달리 별도의 비용이 요구되지 않는 것이 보통이며 보통은 스마트폰을 이용해 발급받아 사용하기 때문에 '''모바일 OTP'''라고도 부른다.
대한민국에서 소프트웨어 OTP 토큰이 보안계의 무적 치트와 비슷한 위력을 가져온다는 것을 깨달아 본격적으로 도입된 이후로부터 대부분의 온라인 프로그램(대표적으로 게임)들의 로그인 메뉴를 살펴보면 OTP 로그인 서비스를 찾아볼 수 있고 금융사에도 도입되어 대부분의 금융기관에서도 지원되고 있다.
하지만 OTP만 걸어놓으면 보안 문제가 해결될 것 같은 희망과는 다르게, 소프트웨어적인 OTP는 독립된 하드웨어 토큰에 비해 시드가 외부로 유출되기 대단히 쉽기 때문에 보안상 매우 취약하다. 따라서 금융거래에서는 PC·휴대폰용 소프트웨어 OTP 프로그램은 사용하지 않으며 사이트 로그인 시 2단계 인증으로 주로 사용된다.
스마트폰 OTP 프로그램의 경우에는 운영체제 업데이트만 잘 해주면 시드가 해킹 당할 위험이 상대적으로 적다. 안드로이드 계열이라면 iOS에 비해 약간 더 신경을 써줘야 하지만, 관리만 잘해주면 대체로 안전한 편. PC 운영체제의 경우 스마트폰의 운영체제보다 권한 관리 등이 느슨함으로 OTP 프로그램의 시드를 읽어내어 해킹한다던가 하는 위험성이 존재한다. 그러니까 PC OTP 프로그램을 쓴다면 자신의 컴퓨터를 잘 관리하자. 다른 단점으로는 비밀번호를 맞게 쳤는데도 접속이 안 되는 말도 안되는 상황도 존재한다. OTP의 불안전성에 대한 구체적인 원리를 설명하는 글@
보통 금융기관에서 소프트웨어 OTP를 발급받으면 기존의 보안카드나 하드웨어형 OTP의 사용이 중지되는 경우가 대부분이므로 잘 생각해보고 사용하도록 하자.
하나은행은 모바일OTP라는 이름으로 소프트웨어 OTP를 사용하고 있다. 하지만, 이체 한도가 1회 1000만원/1일 5000만원 까지가 한계라서 보안코드를 기입하는 과정이 생략된 보안카드라고 봐도 무방하다.
KDB산업은행은 TZ-OTP라는 이름으로 소프트웨어 OTP를 2018년부터 2019년 12월 말 까지 사용했다. TZ는 ARM칩의 TEE[19] 기능인 Trust Zone의 약자. 따라서 이런 보안 기능을 이용할 수 있는 일정 버전 이상의 모바일 OS가 설치된 스마트폰에서만 사용 가능하다. 그럼에도, 이 조건을 만족하는 스마트폰을 보유하고 있음에도 불구하고 여전히 TZ-OTP를 지원하지 않는 스마트폰 들이 2019년 8월 까지도 여전히 차고 넘쳐난다. 왜이리도 지원을 안하는 단말기들이 넘쳐나나 했더니, 산은 인터넷뱅킹 홈페이지 공지사항에는 6월 27일자와 7월 25일자에 올라온 공지문을 살펴보면 기술 라이선스 비용 급등에 따른 제조사의 사업포기 등으로 인하여[20] 2019년 7월 1일 부터는 신규 발급을 중단하고, 이미 발급된 OTP는 2019년 9월 18일 부터 TZ-OTP 재발급 중단 + 금융결제원 TZ-OTP 공동앱 설치중단, 2020년 1월 1일 부터는 모든 금융기관에서 TZ-OTP 인증중단 + 타기관 OTP 등록중단, 2020년 1월 2일에는 TZ-OTP 일괄폐기 순으로 사용 자체가 중단될 수 밖에 없는 사유로 지원중인 단말기들이 별로 없었을 것이다.
KB국민은행의 경우 KB모바일인증서가 모바일OTP의 기능을 한다. 다른 기관들이 모바일OTP로 보안매체를 완전히 대체하는 반면 국민은행은 모바일인증서와 기존 인증서+보안매체의 투트랙으로 사용할 수 있다.
금융권 밖에서는 구글의 OTP 앱이 잘 알려져 있으며, 이것은 공개 표준을 사용하기 때문에 호환되는 타사 생성기(Authy나 마이크로소프트 인증기 등)도 존재한다. 사이트마다 토큰을 문자열 혹은 QR코드로 등록해 두면 대개 6자리의 숫자가 생성되는 방식.
하지만 구글 인증기가 아닌 앱을 쓸 경우 조심해야 하는데, 신뢰성 있는 앱이 아닌이상 절대 깔아서 쓰면 안된다. 현재는 authy 같은 경우 비밀번호를 입력해야 하는 식으로 바뀌어서 문제가 개선되었다. 그래도 찝찝하면 클라우드를 끌지 말지는 위키러들의 선택
신용카드 국제브랜드에서도 이용한다. 현재 JCB가 일본에서만 서비스를 제공하고 있으며 전용 앱을 인스톨해야한다.
패스워드 관리 앱인 원패스워드의 경우 로그인 정보에 OTP 정보를 등록해놓으면 로그인 시 자동으로 OTP 번호를 클립보드에 복사해둔다. 사용자는 붙여넣기만 하면 되므로 OTP 노출을 최소화할 수 있는 장점이 있다.
현재 대부분의 금융사에서는 자체적인 모바일 OTP를 도입하여 서비스하고 있지만 기존 OTP와는 다르게 서로 호환되지 않는다. 이러한 단점을 개선하여 나온 것이 바로 위 이미지의 금융결제원에서 운영하는 디지털 OTP이다.
디지털 OTP는 모바일OTP를 공동으로 사용할 수 있게 한 모바일 어플로 현재 신한은행, 우리은행, 수협은행, IBK기업은행, 한국씨티은행, KDB산업은행, 대구은행, 경남은행, 전북은행, 신협에서 디지털 OTP 이용이 가능하며 향후 금융사들이 추가될 예정이다. 단 신한은행의 경우 디지털OTP를 보안카드로 취급해서 이체한도가 1회 500만원/1일 1,000만원밖에 안 된다는 치명적인 단점이 있다.
모바일 OTP의 장단점을 보면
- 장점: 물리적 매체가 필요없어 매우 편리하고 이는 모바일 금융 시대에 매우 적합하다.[21] 발급비용이 거의 무료이고 사용기간이 사실상 반영구적이다. 모바일로도 발급이 가능하여 영업점을 방문할 필요가 없다.
- 단점: 물리적 매체에 비해 보안성이 다소 취약하여 해킹 등의 위험이 있다. 각 금융사마다 자사의 모바일 OTP를 가지고 있어 서로 호환되지 않거나, 공용 모바일 OTP의 경우 아직까지는 일부 금융사들만 지원하고 있어 호환성 문제가 아직 해결되지 않았다. 휴대전화가 고장나거나 초기화될 경우 OTP 정보가 지워질 수도 있다.
2.4. 이메일형 OTP
인터넷뱅킹에서 특정 거래를 하려고 할때 사전에 등록한 이메일로 1회용 비밀번호가 보내지는 방식이다. 일본의 금융기관에서 주로 쓰인다. メール通知パスワード(메일 통지 패스워드)라고도 한다.
이메일형 OTP를 쓸 수 있는 일본의 주요 금융기관 리스트
- 유쵸은행 - 1일 누계 금액 5만엔 이상을 자주 송금하는 계좌에 등록을 하지 않은 계좌로 즉시 송금하려면 휴대전화 이메일이거나 자주 송금하는 계좌 등록을 해야 된다. 일반적인 웹메일은 5만엔까지만 송금이 가능하고 5만엔 이상은 창구나 ATM에서 하거나 당일 즉시 송금이 아닌 송금 예약(X일 뒤)을 하거나 하드웨어형 OTP를 이용하면 제한이 없어진다. 아무래도 보이스피싱 대책인 거 같다. ゆうちょダイレクトのセキュリティを強化します
- 미츠비시UFJ은행
- 미즈호 은행
- 이온은행
등 이메일형 OTP를 쓸 수 있는 금융기관이 상당히 많다.
은행 홈페이지의 설명 페이지를 참조미츠비시UFJ은행의 설명페이지
미즈호 은행의 설명페이지
스팀에서도 로그인시에 이 방법을 사용한다. 스팀 가드(Steam Guard)라고 불리며, 새로 다른 곳에서 로그인하거나 이전 로그인시 해당 컴퓨터 등록을 하지 않았다면, 사용자가 가입시 등록한 이메일로 영문/숫자 조합의 5글자로 된 코드를 보내준다. 소프트웨어 OTP를 이용한 스팀 가드를 사용 안하면 거래가 72시간동안 지연된다.
신용카드 국제브랜드인 아멕스도 일부국가에서만 사전에 등록한 이메일 주소로 1회용 비밀번호가 보내지는 OTP 서비스를 제공하고 있다.
2.5. 거래연동 OTP
시간만이 아닌 거래 정보(상대방 계좌번호, 금액)을 추가로 이용해 코드를 생성하는 OTP이다. OTP토큰에 금액과 계좌 정보를 넣는 키패드가 달린 것이 특징이다. 인터넷 뱅킹이 실행되는 브라우저를 해킹해 입력된 계좌번호와 금액을 변조해 해커에게 돈이 송금되도록 하는 사기를 막을 수 있다. 브라우저에 보안 프로그램을 설치하는 것 보다 더 확실하고 간편한 방법이기 때문에 많은 금융기관에서 도입하고 있다.[22]
3. 인터넷뱅킹으로 OTP 등록하기
- SC제일은행 : 서비스 및 설정 - 인터넷뱅킹관리 - OTP이용등록/해제
- BNK경남은행 : My Banking - 인터넷뱅킹관리 - OTP이용등록
- 광주은행 : 사용자관리 - 전자금용조회/변경 - 타기관 OTP 등록
- KB국민은행 : 보안센터 - 안심보안서비스 - 일회용비밀번호생성기(OTP) - 타기관 OTP/ 스마트OTP 등록
- NH농협은행 : 공인인증센터 - OTP이용등록
- 대구은행 : 개인뱅킹 - 종합정보관리 - 보안매체관리 - OTP - 등록 해지
- BNK부산은행 : 뱅킹관리 - 인터넷뱅킹관리 - OTP관리 - OTP이용등록/해지
- KDB산업은행 : 개인뱅킹 - 뱅킹관리 - OTP관리 - OTP이용등록
- MG새마을금고 : 개인인터넷뱅킹 - 뱅킹관리 - OTP서비스 - 타기관OTP등록
- Sh수협은행 : 개인뱅킹 - My정보 - 고객정보관리 - 타기관OTP등록
- 신용협동조합 : 개인뱅킹 - 부가서비스 - 온라인OTP타기관 등록
- 신한은행 : 개인 - 사용자관리 - 인터넷뱅킹관리 - OTP이용등록
- 한국씨티은행 : 유틸(톱니바퀴) - 환경설정 - OTP등록/관리
- 한국증권금융 : 개인뱅킹 - 고객정보관리 - OTP 인증센터 - OTP(타기관) 이용등록
- 우리은행 : 전체 서비스 - 보안센터 - OTP발생기 - 당행/타기관 OTP 등록 서비스
- 우리종합금융 : 인터넷뱅킹 - 부가서비스 - OTP - OTP타기관등록/변경
- 우정사업본부#s-6.2 : 보안센터 - 금융보안서비스 - 타기관OTP등록
- 전북은행 : 뱅킹관리 - 사용자관리 - OTP이용등록
- 제주은행 : 사용자관리 - 고객정보 - OTP타기관이용등록. 스마트폰 앱에서는 등록이 불가능하여 영업점 방문 필요.
- IBK기업은행 : 개인뱅킹 - 뱅킹관리 - 보안관리 - OTP발생기 관련 거래 - OTP발생기 등록[23]
- 하나은행 : 보안센터 - OTP(타기관)등록
4. OTP 취급 금융기관 및 배터리 확인법
- 업체코드 001 (제조사・공급사 :미래테크놀로지)
별도의 확인 방법은 없으나 배터리 잔량이 얼마 남지 않았을 때엔 화면에 Lo_bat 표시가 나타난다.
품질이 유리몸 수준이고 배터리 수명이 짧으므로 주의해야 한다. 특히 신형인 MRT-700NP 모델은 설계 미스가 있는지 버튼을 세게 누르면 고장나기 쉽다고 한다. 무료로 뿌릴 때 받는 건 몰라도 타행 연결해서 쓰거나 작정하고 오래 쓰기에는 부적합하다.
취급 금융기관 : 우리은행, 우체국금융[24] , 하나은행, SC제일은행, 한국씨티은행, 한국산업은행, 수협은행, 새마을금고, 카카오뱅크, 전북은행, SBJ은행, 신한금융투자 등
품질이 유리몸 수준이고 배터리 수명이 짧으므로 주의해야 한다. 특히 신형인 MRT-700NP 모델은 설계 미스가 있는지 버튼을 세게 누르면 고장나기 쉽다고 한다. 무료로 뿌릴 때 받는 건 몰라도 타행 연결해서 쓰거나 작정하고 오래 쓰기에는 부적합하다.
취급 금융기관 : 우리은행, 우체국금융[24] , 하나은행, SC제일은행, 한국씨티은행, 한국산업은행, 수협은행, 새마을금고, 카카오뱅크, 전북은행, SBJ은행, 신한금융투자 등
- 업체코드 002 (제조사: 코마스(RSA코리아), 공급사: 인네트)
상시 전원이 켜져있는 제품이므로 별도의 조작은 필요하지 않다. 1회용 암호 우측 옆에 작게 3자가 나오고 화살표가 깜빡이면 배터리 수명이 얼마 남지 않았다는 의미이다. 참고로 OTP 후면에 보증기한이 mm/dd/yy의 형식으로 새겨져 있다.
취급 금융기관 :
취급 금융기관 :
- 업체코드 003 (제조사:인터넷시큐리티, 공급사: 인터넷시큐리티)
취급 금융기관 :
- 업체코드 004 (제조사 : OneSpan(舊 VASCO), 공급사 : OTP멀티솔루션)
① OTP 버튼을 길게 누른다
② 화면에 battery 라는 문자가 표시되면 버튼을 놓는다.
③ 화면 오른쪽에 표시된 숫자가 배터리 잔여량이다.
이 회사의 토큰형 OTP는 배터리가 매우 길다. 2013년 6월이 제조일이고 4년정도 지난 사용빈도 1개월 10번 미만인 토큰형 OTP의 배터리 잔량이 90% 이상이였다. 5년째 시점인 2018년 7월에도 배터리가 무려 84%나 남아있었다. 제조사 공식 홈페이지에는 아예 최소 7년 보장이라고 되어 있다. 기기 자체의 내구성이 좋아서 좀처럼 고장도 나지 않는다. 공급사 직원의 이야기로는 1개월에 1번정도 사용해주면 시간 보정이 어긋나는 것도 방지된다고 한다. 금융덕들 사이에서는 오파츠 내지는 금강불괴 취급받는다. 하나의 제품을 오래 쓰고 싶다면 이 회사의 OTP로 할 것
취급 금융기관 : 신한은행, 국민은행, 중소기업은행, 부산은행, NH농협은행 및 농·축협(2020년부터), 대우증권, 유안타증권 등
② 화면에 battery 라는 문자가 표시되면 버튼을 놓는다.
③ 화면 오른쪽에 표시된 숫자가 배터리 잔여량이다.
이 회사의 토큰형 OTP는 배터리가 매우 길다. 2013년 6월이 제조일이고 4년정도 지난 사용빈도 1개월 10번 미만인 토큰형 OTP의 배터리 잔량이 90% 이상이였다. 5년째 시점인 2018년 7월에도 배터리가 무려 84%나 남아있었다. 제조사 공식 홈페이지에는 아예 최소 7년 보장이라고 되어 있다. 기기 자체의 내구성이 좋아서 좀처럼 고장도 나지 않는다. 공급사 직원의 이야기로는 1개월에 1번정도 사용해주면 시간 보정이 어긋나는 것도 방지된다고 한다. 금융덕들 사이에서는 오파츠 내지는 금강불괴 취급받는다. 하나의 제품을 오래 쓰고 싶다면 이 회사의 OTP로 할 것
취급 금융기관 : 신한은행, 국민은행, 중소기업은행, 부산은행, NH농협은행 및 농·축협(2020년부터), 대우증권, 유안타증권 등
- 업체코드 005 (제조사: Incard(인카드), 공급사: 인네트)
취급 금융기관 :
- 업체코드 006 (제조사:시큐어컴퓨팅, 공급사 : ???)
취급 금융기관 :
- 업체코드 007 (제조사:Activeidentity(액티브아이덴티티), 공급사: 인네트)
취급 금융기관 :
- 업체코드 008 (제조사:Identita(아이덴티타), 공급사: 테트라플러스, 예스컴)
취급 금융기관 :
- 업체코드 009 (제조사:토탐폼즈, 공급사:?)
취급 금융기관 :
- 업체코드 010 (제조사・공급사 :스마트크리에이티브)
취급 금융기관 :
- 업체코드 011 (제조사:스마트이노베이션, 공급사:?)
취급 금융기관 :
- 업체코드 012 (제조사: 에이티솔루션즈, 공급사:?)
취급 금융기관 :
- 업체코드 016 (카드형 OTP) (제조사: 코나아이(코나씨), 공급사:?)
취급 금융기관 : 카드형 OTP를 취급하는 은행 대부분.
- 업체코드 018 (제조사: 이트리즈시스템, 공급사:?)
취급 금융기관 :
- 업체코드 019 (제조사: 엠파이브, 공급사:?)
취급 금융기관 : 우체국 (카드형 OTP)
- 업체코드 301 (스마트 OTP) (미래테크놀로지)
- 업체코드 310 (스마트 OTP) (스마트크리에이티브)
- 업체코드 312 (스마트 OTP) (제조사: 에이티솔루션즈, 공급사:?)
- 업체코드 401 (모바일 OTP(TRUST)) (미래테크놀로지)
- 카드형 OTP : 디스플레이가 초기에 구매했을때보다 흐려지면 배터리 수명이 다한 것으로 은행에 가서 교체하면 된다.
5. 여담
- 한국의 OTP는 타국의 것보다 엄청나게 편리한 거다. 1대의 OTP를 여러 금융기관에서 사용할 수 있는 국가는 절대 흔치 않다. 유일한 단점은 무료로 배포하는 행사는 가뭄에 콩나듯이 하는 기본적 유료인 것으로, 장점이 단점을 상쇄하고도 남으니 긍정적으로 생각하자.
- 위의 예시로 일본은 하드웨어 OTP가 금융기관마다 따로따로이므로 한국과 같은 OTP 1대로 여러 금융기관을 이용하는 편리함은 생각할 수가 없다. 그리고 신규[25] 발행과 OTP 고장 및 배터리 수명으로 인하는 교환시에만 무료이다. 도난, 분실로 인하는 재발행이면 수수료가 반드시 발생한다. 꽤나 비싸므로[26] 도난, 분실되지 않게 주의하자.
- 접속하는 시스템의 시간이 엄청나게 틀릴 경우 해킹 시도로 오인되어 OTP가 자동 폐기되는 수가 있다.# 다만 XP 이후로 윈도우는 대략 2주에 한 번씩 MS의 타임서버를 통해 자동으로 시간 정보를 동기화하기 때문에, 단순 PC의 관리 부실로 저런 문제가 생길 가능성은 거의 없으니 안심하자.[27]
- 2019년 1월, 충전해서 쓰는 OTP 카드를 개발했다고 했다. 현재 금융결제원의 OTP공동센터 수용 적합성 테스트를 통과했다고 밝혔다. 하지만 언제 상용화될지는 미지수이다. 사실, 은행을 비롯한 금융기관들 입장에선 OTP 발급으로 버는 수수료 금액이 상당하기 때문에 상용화하기가 굉장히 껄끄러울 것이다.
- 시드값이 노출되지 않는다는 전제하에 무작위 대입공격에 사실상 완전 면역이라고 봐도 무방하다. 은행 OTP의 경우 6자리 10진수를 사용하고 있기 때문에 각 공격시도가 허용될 확률은 0.0001%(1/1,000,000)에 해당하며 다른 보안 단계가 돌파당해 OTP만이 남은 취약한 표본이 약 1만개라 하더라도 무작위 코드를 집어넣었을때 단 하나의 표본이라도 해킹당할 확률은 1%(0.999999^10000)가 채 되지 않는다. [28] 또한 금융 OTP는 인증 횟수가 제한되어 있어 일정 횟수를 연속으로 틀릴 경우 해당 OTP 자체가 무효화되고 이러한 사실이 사용자에게 고지되는 등의 안전장치를 마련해 두었기에 시드값 노출 및 그와 관련한 정보(시드값에 대한 힌트가 될수 있는 기기 시리얼 넘버 등)에만 신경쓴다면 안심하고 사용해도 괜찮다.
[1] 다요소 인증, 다중 인증[2] 기존 보안방식이 암호를 푸는 데 시간이 걸리게 보안체계를 만든다면, OTP는 입에 단내가 날 정도로 고생해서 암호를 푼다 해도 이미 그 암호는 쓸모없게 된 후이다.[3] 단, 우리은행은 예외적으로 OTP와 보안카드 병행사용이 가능하다.[4] 내부적으로 틀린 값을 더 넣어서 오류를 내거나 혹은 렉으로 위장한 지연 등[5] 농협, 수협, 우체국, 새마을금고, 기업은행, 삼성증권에서 2011년 3월 17일 이전에 OTP를 발급받은 사람이라면 교체 대상자인지 확인하고, 아직 교체를 받지 않았으면 반드시 교체를.....이라 말하기엔 이젠 배터리가 먼저 다 닳았을 것으로 보인다.[6] 간혹 계좌를 새로 열 경우 계좌 개설 기념(아니면 무료 증정 행사 등)으로 OTP 토큰을 무료로 주는 경우도 있다. 우체국 쪽은 OTP 무료 발급 행사를 많이 하는 편.[7] 무료이벤트나 할인을 다 무시한 것을 기준으로 하나은행이 6,150원으로 가장 쌌다.[8] 우체국이 20,000원으로 비싸다.[9] 국민은행 기준 토큰형이 5000원 카드형이 만원이다. 또한 배터리 방전시 교체비용은 5000원에서 우수고객이면 무료.[10] 포스트잇으로 가려진 부분은 OTP 일련번호와 업체의 벤더 코드번호가 적혀있다.[11] iPhone에서는 NFC를 쓸 수 없어 사용이 불가능하다.[12] 스마트 OTP를 발급하면 사용할 휴대폰을 등록하게 되는데 만약에 휴대폰의 번호를 바꾸거나 휴대폰을 교체하였을 경우 스마트 OTP를 등록한 휴대폰(등록폰)을 다시 재등록해야 하는 상황이 생길 수도 있으니 잘 알아볼 것.[13] 보통 3000원 정도.[14] 일반 OTP는 그저 버튼을 누르고 번호를 입력하면 끝이지만, 스마트 OTP는 NFC를 활성화한 다음 카드를 휴대폰에 태그해야 하며 타행은행에서 사용 시 별도의 앱에서 진행해야 하는 경우도 있다.[15] 이는 타기관으로 스마트 OTP를 등록해도 마찬가지이다. 보안카드는 폐기되고, 하드웨어형 OTP나 모바일 OTP도 등록이 해지된다. 즉, 2가지 보안매체를 동시에 사용할 수 없다.[16] Vender Code 312, 일부 거점 지점에서만 발행함[17] 각 금융사별로 인증법이 다양한데, 단순히 태그만 해서 인증이 되는 경우도 있지만, 태그 후 나오는 핀번호를 입력해야 하거나, 임시 핀번호를 입력하고 태그한 뒤 나오는 핀번호를 또 입력해야 하는 복잡한 경우도 있다.[18] 해당 이미지는 금융결제원이 운영하는 디지털 OTP 앱이다.[19] Trusted Execution Environment. 매우 간단하게 설명하면 보안 토큰이나 IC카드를 폰 안에 내장시킨 것과 비슷한 기능이다.[20] # 기사내용에는 이미 금융결제원이 서비스 중인 디지털 OTP 라는 대체제가 존재한다는 것 또한 한몫한다고도 나와있다.[21] 모바일 OTP를 사용하는 가장 큰 이유이다. 기존의 하드웨어 OTP를 소지할 필요도, 관리할 필요도 없기 때문.[22] 특히 비대면 계좌개설 때 많이 활용한다. 자신이 기존에 보유하고 있던 다른 은행계좌를 입력하면 해당 계좌로 1원을 보내주고 적혀있는 코드번호를 확인하여 입력하는 방식.[23] 다만 디지털 OTP 공동앱은 영업점을 방문하여 등록하여야 한다.[24] 원래 스마트이노베이션에서 OTP를 공급 받았으나 OTP가 대량으로 불량이 발생하여 교체를 한 이후에는 여기서 공급 받는다.[25] 몇몇 금융기관은 하드웨어 OTP는 신규라도 유료거나 조건을 만족시켜야만 무료가 된다.[26] 기본적으로 1000엔 + 세금[27] 그 외에도 TLS 인증서 만료 기간 등에 관한 오류로 https 사이트 정상 접속이 불가능해지기도 한다. 다만 강제 폐기당한 OTP를 제외하고는 시간 설정을 정정하면 바로 정상으로 되돌아온다.[28] 기존 서술에서는 취약 표본이 1만개일 경우 무작위 대입공격에 의해 1대가 털릴 수 있다고 되어 있었으나 확률적으로 각 계정에 대한 공격 시도는 모두 독립시행이기에 이는 틀린 서술이다.