OTP > 자료실

본문 바로가기

OTP

페이지 정보

작성자 천안장애인성폭력상담소 조회 88회 작성일 23-03-20 16:32

본문

1. 개요[편집]

일회용 비밀번호 / One-Time Password (OTP)[1]

무작위 번호약속 알고리즘에 따라 매 시간마다 변경되는 추정 할 수 없는 비밀번호 생성을 이용하는 보안 시스템.

아이디어 자체는 100년도 넘은, 그리고 그만큼 검증된 기술이다. Multi-Factor authentication(다요소 인증, 다중 인증) 체계의 인증 요소중 하나로 즐겨 사용된다. 인증 요소 분류중 소유물 인증 요소에 해당한다.

다이렉트 뱅킹은 OTP가 필수다. 웬만한 은행들의 오픈뱅킹은 OTP를 강제하고 있으며, 보안카드는 오픈뱅킹에서 계좌 조회만 가능하다.

나무위키 등의 the seed에서는 사용자가 로그인할 경우 이메일 방식이나 Google Authenticator의 시간 동기화 방식의 OTP를 반드시 사용해서 인증해야 한다. 물론 평소 사용하는 브라우저와 기기에서 로그인하는 경우에는 이 과정이 필요없다.

2. 특징[편집]

접속시마다 그때그때 필요한 비밀번호를 생성하여 그 번호를 통해 사용자 본인 확인을 하는 방식이다.[2] 대개는 주로 난수 발생기에 현재 시간을 넣어 비밀번호를 생성한다. 서버와 사용자의 생성기는 서로 교류하지 않지만, 시간을 seed로 하여 같은 알고리즘으로 생성 매칭을 하므로 서로 시간이 동기화되는 것이 중요하다. seed 시간은 초단위가 아닌 특정 time window 유닛으로 작동하므로 적정 수준의 톨러런스가 있다. (서로 몇초 차이가 나도 맞춰 동작된다.)[3] 사용자 단말기 쪽 시계가 많이 달라져서 차이가 나게 되어도 서버쪽에서 해당 단말기에 대한 seed 차이 offset 보정 기능을 갖추면 여전히 동작한다.[4] 타임스탬프에서 나머지 연산을 하게되면 원하는 시간단위로 분할하여 처리하게 할 수 있다. 예를들면 DB에서 흔하게 쓰이는 UNIX_TIMESTAMP modify 300 의 경우 5분 단위로 나머지를 구하게된다. 여기서 UNIX_TIMESTAMP 에 다시 빼주면 현재 시간이 속한 시작시각을 나타내준다. 여기서 예의 300으로 몇번 더 더하게 되면 더 나중에 시간이되고 빼게되면 이전의 시간을 구할 수 있게된다.

비밀번호가 1회용이라 노출되어도 재사용이 불가능하며, 비밀번호를 숨겨진 알고리즘을 이용하여 생성해내므로 서버와의 접속 없이도 생성이 가능하여 중간 과정에서 패킷이 유출되거나 하는 위험이 없다. 보안의 주안점을 방어력에서 기동성(?)으로 바꿔버린 체계로, 기존 보안방식이 암호를 푸는 데 시간이 걸리게 보안체계를 만든다면, OTP는 입에 단내가 날 정도로 고생해서 암호를 푼다 해도 이미 그 암호는 쓸모없게 된 후이다. 보통 시간 동기나 해시 체인을 사용한다. 참고로 금융기관에서 흔히 사용하는 시간 동기(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는 배터리가 남아있어도 타행등록이 불가능해진다. 단, 해지하기 전에 미리 타행등록이 되어있다면 계속 쓸 수는 있고 해지한 당행 OTP를 재등록하면 다시 타행등록이 가능해진다.

기본적으로 하나의 은행 당 1개의 보안매체만 보유할 수 있다. 그러므로 하나의 은행에서 2개의 OTP를 사용하거나 OTP와 보안카드를 병행해 사용할 수 없다. 만약 OTP를 등록하게 되면 기존의 보안카드는 사용이 해지되어 등록이 불가능해진다.[5] 다시 보안카드를 사용하려면 영업점을 방문해 OTP 사용을 해지하고 보안카드를 새로 받아야 하며, 해지된 보안카드는 재사용이 불가능하니 주의. 특히 보안카드 발급비를 별도로 징수하는 대구은행.

접속시마다 새로 생성된 번호를 입력해야 하므로 번거로우며(그래도 보안카드보다는 훨씬 덜 번거롭다), 흔히 사용되는 시간 기반 하드웨어 OTP 토큰의 경우 내장된 시계의 품질이 좋지 않으면 내부 시계에 오차가 생길 수 있어서, 서버와 시간을 자주 동기화해 줘야 한다는 점이 단점이다. 게임에 한정된 이야기일 수 있지만, 막 점검이 끝난 게임 등 사람들이 몰려 서버의 상태가 좋지 않을 때 OTP를 이용해서 접속을 하려고 하면 비이용자의 두 배 이상의 시간이 걸리게 된다.

하지만 보안이라는 것은 귀찮음을 대가로 안전을 보장받는 것이라서, 귀찮지 않은 보안이란 이 세상에 존재하지 않는다.

컴퓨터를 이용하여 OTP 토큰이 만들어낸 비밀번호를 입력하는 일을 할 경우에는 자신이 쓰는 컴퓨터의 관리를 잘 하는 것도 중요하다. PC·휴대폰용 소프트웨어 OTP를 안 쓰는 금융 거래에선 이런 일이 없지만, PC·휴대폰용 소프트웨어 OTP를 활용하는 온라인 게임의 해킹에 다음의 기법이 실제로 사용된 적도 있다.
사용자가 올바른 OTP를 입력하긴 했는데 여러가지 방법을 써서[6] 정상적인 로그인 과정을 방해한 뒤 해커의 컴퓨터로 올바르게 입력한 OTP를 보낸 후 해커의 컴퓨터에서 사용자의 OTP를 자동으로 대신 입력해서 해커가 로그인한다. 두번 입력받게하면 무력화 된다고한다

위의 방법 이외에도 미처 OTP와 연결해놓지 못한 채 잊고있는 부분에서 넥슨의 캐쉬 털이 사건같은 색다른 해킹이 발생할 수 있으므로 자기 PC의 보안을 잘 지키는 것이 최우선이며, PC방 등지의 불안한 장소에서 쓸 보안수단으로 OTP를 사용하는 것이 바람직하다. 결국 OTP 하나만 걸었다고 안심하지 말고 추가적인 보안 수단을 사용할 수 있다면 그것도 같이 사용하는 것이 좋다.

OTP 토큰을 만든 곳이 해킹 당해서 한방에 모든 사용자의 정보가 노출되는 경우도 있다. OTP 토큰을 만들던 미국의 RSA Security사가 해킹을 당해서 시드값과 알고리즘이 털린 적이 있었는데 나중에 해킹 당한 RSA의 OTP 토큰을 사용했던 록히드 마틴이 해킹당한 적이 있었다. 이에 따라 금융 당국에서 RSA社의 알고리즘을 사용한 OTP 토큰를 무상으로 급히 교체했던 적이 있다.[7] 

3. OTP 발생기의 종류[편집]

3.1. 하드웨어 OTP[편집]

3.1.1. OTP 토큰[편집]

토큰형 OTP

원래의 OTP는 일회용 비밀번호를 생성할 수 있도록 제작된 OTP 토큰이란 이름의 특수 하드웨어 장치나 카드를 사용하는 형태이다. 금융기관용 OTP 토큰이 가장 많이 쓰이며, 이 외에도 블리자드 로그인용이나 정부기관용 OTP 토큰 등도 있다. 여기선 금융기관용 OTP 토큰을 중점으로 설명하기로 한다.

흔히 볼 수 있고 흔히 사용하는 금융기관용 OTP 토큰은 은행이나 증권사에서 2000~5000원[8]에 구입할 수 있다. 당연하지만 일단 한 번 OTP 토큰을 구입해 두면 금융기관별로 OTP 토큰을 다시 구매할 필요 없이 해당 금융기관에 방문하여 자신이 구입한 OTP 토큰을 등록할 수 있다. 심지어 금융 공동망으로 OTP 발급내역이 조회되어서 텔러가 "XX은행에서 받으신 OTP로 등록해 드릴까요?"라고 물어본다. 보통 금융기관이나 기타 OTP를 지급하는 곳에서는 미래테크놀러지와 바스코 OTP를 많이 주는데, 미래 OTP는 유리몸 수준의 품질과 바스코에 비해 짧은 배터리 수명으로 악명 높다.

배틀넷 2.0(월드 오브 워크래프트스타크래프트스타크래프트 2디아블로 3하스스톤오버워치 등) 로그인 전용 하드웨어 OTP 토큰인 'Battle.net 인증기'는 블리자드 홈페이지에서 7000원에 구입할 수 있다. 소프트웨어 OTP 토큰도 있으며, OTP를 사용하면 월드 오브 워크래프트에서 사용할 수 있는 '새끼 심장부 사냥개'를 선물로 준다. 단, 말 그대로 배틀넷 2.0 로그인 전용 OTP 토큰이라서 금융기관에선 사용할 수 없다. 2019년 7월에 공식적으로 판매 중단되었다.

보통 금융거래용으로 많이 쓰는 금융기관용 OTP 토큰을 잃어버리거나 배터리가 방전된 경우, OTP 토큰을 새로 구입하는 것으로 끝나는 것이 아니다. 보안상 배터리를 바꾸는 순간 OTP 토큰의 생성값(시드)이 바뀌어 버리게 설계되어 있어서 배터리 교체는 불가능하다. 보통 구입 후 2~3년 정도 이용할 수 있고, 거의 안쓰면 4년 이상 사용할 수도 있다. 그러나 OTP 토큰이 신기하거나 심심하다고 매일 시도때도 없이 OTP 토큰의 전원 버튼을 누르면 배터리가 빨리 방전된다.

금융기관용 OTP 토큰을 배터리 방전 등의 이유로 재발급하려는 경우, 은행마다 다르지만 우량 고객 등 지극히 한정적인 조건을 갖추지 않은 이상 재발급 비용이 필요하다. 인터넷으로도 타기관 OTP 등록이 가능한 은행이 있지만, 없거나 연동이 불안한 곳도 많아 은행 지점을 방문해야 하는 경우가 많다. 다른 용도의 OTP 토큰인 경우는 다를 수도 있기 때문에 해당 OTP 토큰을 사용하는 해당 기관의 설명을 참조하자.(범용이 아닌 한정용으로 발급한 경우 타 은행에 등록을 못할 수 있다.) 다만, OTP는 몇 개를 받건 상관없지만 반드시 1기관 1OTP. 이를테면 보안카드와 같이 쓴다거나 여러 개를 걸어놓고 쓰는 것은 안 된다.

하드웨어 OTP를 사용할 경우 소액의 장치 구입 비용과 유지 비용이 발생하기 때문에 OTP 토큰 구입 비용을 들이면서까지 돈과 크게 관련없는 서비스에 로그인할 필요가 없다고 생각하지만 그래도 OTP는 필요한 업체/사람을 위한 소프트웨어 OTP란 것이 있다.

가장 일반적인 형태의 OTP지만 어느정도의 크기가 있기 때문에 지갑에 넣고 다닌다는 건 사실상 불가능하며 휴대하려면 파우치나 가방에 넣고 다녀야 한다는 불편함이 있다. 고리를 걸 수 있는 구멍이 있기는 하지만 보안매체라는 점에서 대놓고 보이게 갖고 다닐 수는 없는 노릇. 이러한 점을 개선해서 나온 것이 바로 카드형 OTP이다.

3.1.2. 카드형 OTP 토큰[편집]

BNK MINI

둥글넙적한 기존 OTP 토큰의 불편한 휴대성을 개선하여 나온 OTP 토큰으로, 신용카드처럼 생겨서 카드형 OTP라고 불린다. 후술할 스마트 카드형과 달리 전자잉크나 LCD 액정이 달려있고 여기에 비밀번호가 표시된다.

금융기관용은 은행이나 증권사에서 6,150원[9]~20,000원[10] 정도에 구입할 수 있다.

초기 카드형 OTP는 흑백 패시브 LCD 액정이 달려 있었는데, 카드가 휘어지면 액정이 손상된다는 큰 문제가 있었다. 그리고, 교통카드·IC현금카드처럼 CPU와 RAM이 내장되어 있는 건 같지만, 외부 요인과 완전히 독립적인 장치라서 외부로부터 전원을 공급받는 교통카드와는 달리 자체 배터리가 장착되어 있고, 그리고 폭과 너비만 신용카드 크기였지 꽤 두꺼웠다. 이런 이유로 초기의 카드형 OTP는 거의 사장되었다.

이런 단점을 개선하고자 디스플레이에 전자잉크를 쓴 제품이 나왔다. 두께도 신용카드와 거의 비슷할 정도로 얇아지고, 휘어지기도 잘 휘어진다. 전자잉크는 LCD에 비해서 휨에 훨씬 더 강할 뿐만 아니라 배터리 소모도 적어서 수명도 길고(사용자에 따라 다르나 약 2년에서 4년정도 지속된다. 거의 안쓰는편이면 7년정도도 사용 가능하다고.) 흑백 LCD보다 훨씬 더 잘 보인다는 장점도 가지고 있다.

모든 은행에서 카드형 OTP를 취급하는 것은 아니며, 일반적인 동글형보다 비싸다.[11] 게다가 지점에 따라서는 카드형 OTP가 없을 수도 있으므로, 방문하려는 지점에 전화로 재고를 확인하고 찾아가야된다.

전자잉크를 기반으로 OTP 기능을 넣은 신용카드가 중소기업은행와 SC제일은행우리은행에서 출시되었다. 하나금융투자NH투자증권케이뱅크에서는 체크카드로 발행된다. 이후 스마트 OTP 기반으로 OTP 기능을 넣은 신용카드도 국민카드신한카드에서 출시되었다. 심지어 카카오뱅크에서는 라이언 캐릭터가 그려진 OTP도 발급해준다. 발급시 라이언 스티커(안전제일 스티커)도 덤. 특히 카카오뱅크 OTP 카드는 등기 우편으로 배송되기 때문에 은행 방문 없이도 OTP를 받을 수 있다는 게 최대 장점.

BNK 부산은행 카드형의 경우 2018년 1월 30일 기준으로 미니OTP를 발급하기 시작하였고 일반 카드형OTP보다 사이즈가 작아진 형태로 발급비용은 기존발급비용보다 저렴한 7,000원으로 발급을 받을수 있다.

3.1.3. 스마트(하이브리드) OTP 카드[편집]

국민은행 스마트OTP

국민은행의 스마트 OTP 카드[12]

은행이 고객에게 비밀번호 발생에 필요한 정보가 담긴 NFC 카드를 발급하고, 고객이 비밀번호가 필요할 때마다 스마트폰에 내장된 NFC(SIM SE) 리더기로 카드를 읽혀서 비밀번호를 생성하는 방식이다.

기존 하드웨어 토큰과 달리 배터리의 교체가 필요없어 고장나거나 파손되지만 않으면 반영구적으로 사용이 가능하며, 기존 카드형 OTP보다 튼튼하고 저렴하다.[13]

다만 타행은행에서 사용하려면 별도의 코드와 앱이 필요한 경우가 있으며, 사용법 또한 기존 OTP에 비하여 비교적 직관적이지 못하다는 단점이 있다. 일반 OTP는 그저 버튼을 누르고 번호를 입력하면 끝이지만, 스마트 OTP는 NFC를 활성화한 다음 카드를 휴대폰에 태그해야 하며 타행은행에서 사용 시 별도의 앱에서 진행해야 하는 경우도 있다.

또한 스마트 OTP를 발급받으면 기존의 보안카드나 하드웨어형 OTP의 사용이 중지되는 경우가 있어 발급할 때 잘 생각해보고 결정하자. 이는 타기관으로 스마트 OTP를 등록해도 마찬가지이다. 보안카드는 폐기되고, 하드웨어형 OTP나 모바일 OTP도 등록이 해지된다. 즉, 2가지 보안매체를 동시에 사용할 수 없다.

아직 안드로이드 단말기에서만 이용할 수 있다. iPhone에서는 HCE를 쓸 수 없어 사용이 불가능하다. 단순히 HCE만 지원하면 되므로 구글 넥서스에서도 문제 없이 쓸 수 있다.

본인 명의 USIM이 장착된 기기여야 한다. 스마트 OTP를 발급하면 사용할 휴대폰을 등록하게 되는데 만약에 휴대폰의 번호를 바꾸거나 휴대폰을 교체하였을 경우 스마트 OTP를 등록한 휴대폰(등록폰)을 다시 재등록해야 하는 상황이 생길 수도 있으니 잘 알아볼 것.

현재 KB국민은행신한은행[14]하나은행우리은행NH농협은행KDB산업은행IBK기업은행케이뱅크가 발급하고 있으며, 주로 아톤(구 에이티솔루션즈)(Vender No. 312)의 '통합인증 카드' 제품이 발급되고 있다. 이 카드의 경우 본연의 스마트 OTP 기능 외에도 공동인증서 저장(HSM), 지급결제, 본인인증 등의 기능이 탑재되어 있다.

타기관(타행)으로 스마트 OTP를 등록할 수 있는 곳은 KB국민은행신한은행KDB산업은행IBK기업은행우리은행하나은행NH농협은행우체국수협은행산림조합새마을금고신협제주은행전북은행광주은행DGB대구은행경남은행SC제일은행한국씨티은행케이뱅크 등 대부분의 은행에서 등록이 가능하지만, 아직까지 BNK부산은행토스뱅크카카오뱅크는 등록이 불가능하다.

종금사인 우리종합금융과 증금사인 한국증권금융도 스마트 OTP 등록이 가능하다.

저축은행의 경우, 신한저축은행 등에서는 등록이 가능하나, 사이다뱅크(SBI저축은행), KB저축은행NH저축은행 등에서는 스마트 OTP 등록이 불가능하다.

증권사의 경우, 미래에셋증권한국투자증권

대표자 : 박두순대표전화 : 041-592-6500팩스 : 041-592-6666이메일 : cdassd6500@hanmail.net
주소 : 충남 천안시 서북구 두정역서5길 4, 두정프라자 301호사업자등록번호 : 312-80-13827

Copyright © (사)충남장애인복지정보화협회부설 천안장애인성폭력상담소. All rights reserved.