기사 주소: http://www.dt.co.kr/contents.html?article_no=2006040302011260713003
[알아봅시다] 일회용 비밀번호(OTP)

2006040302011260713003.jpg



시스템 접근 때마다 새 번호 입력
해킹ㆍ정보노출 막는 사용자 인증



일회용비밀번호(OTP)는 1회에 한해 사용할 수 있는 비밀번호 시스템으로 매번 다른 비밀번호를 이용하여 사용자를 인증하는 방식입니다. 현재의 비밀번호에서 다음의 비밀번호를 유추하는 것이 굉장히 어려운 비밀번호 생성방법입니다.

일정 시간마다 전용 단말기 등에 새로운 비밀번호가 생성되어 시스템에 접근할 때마다 새로운 비밀번호를 입력해야 하기 때문에 해킹이나 사용자의 관리소홀 등으로 비밀번호가 노출되는 것을 방지할 수 있습니다. 35개의 정해진 범위에서 비밀번호를 입력하는 기존의 인쇄된 보안카드에 비해 OTP는 사용자 비밀번호가 노출되더라도 새로 생성된 비밀번호를 입력해야 하기 때문에 훨씬 강력한 보안성을 제공할 수 있습니다.

대부분의 모든 OTP 생성 알고리즘은 일방향 함수(출력 값을 통해 입력 값을 유추할 수 없는 함수)에 기반을 두고 있습니다. 거의 모든 유닉스(UNIX) 운영체제(OS)에 구현되어 있는 S/Key 시스템(RFC1760)이 그 예입니다. 이 시스템은 다음과 같은 절차를 통해서 수행됩니다.

1) 서버는 비밀 값 w를 1번, …, n번 해쉬하여 n개의 비밀번호들을 얻고 w는 삭제한다.

2) 생성된 n개의 비밀번호를 사용자에게 역순으로 출력해서 준다. 서버는 n번 해쉬한 값만을 남기고 모두 지운다.

3) 사용자는 출력된 순서대로 비밀번호를 제시한다.(즉, w를 n-1번 해쉬한 값, n-2번 해쉬한 값, …)

4) 서버는 사용자가 제시한 값을 한 번 해쉬하여 가지고 있는 값과 비교한다. 일치하면 수신한 값을 저장하고 이전 값은 삭제한다. 그리고 사용자를 인증한다.

이 절차를 통해 알 수 있는 것처럼 특정 시점에서 사용자가 전송한 비밀번호를 알고있다고 하더라도 다음에 전송할 비밀번호는 유추할 수 없습니다. 왜냐하면 다음에 전송될 비밀번호는 w를 한 번 덜 해쉬한 값인 데, 해쉬함수의 특성상 출력 값을 통해 입력 값을 유추할 수 없기 때문입니다. 게다가 현재 운용되고 있는 OTP 알고리즘들은 S/Key보다 상당히 더 복잡하게 구현되어 있습니다.

2003년에 발생한 은행 현금카드 비밀번호 유출 사고나 폰뱅킹 인출 사고를 비롯해 지난해 6월에 있었던 인터넷뱅킹 예금 인출 사건까지 전자금융거래시 본인 확인 장치에 대한 문제가 지속적으로 발생함에 따라 OTP에 대한 수요는 증가하고 있는 추세입니다. 또 날이 갈수록 전자금융거래가 증가하고 있어 OTP의 도입은 현재의 수요 이상으로 크게 늘어날 것으로 예상됩니다. 한편 정부에서도 더욱 강화된 보안을 제공하는 OTP의 필요성을 공감하고 있어 전자금융거래 안전성 강화 대책을 통해 장기적으로 OTP 도입을 권장하고 있습니다.

◇모바일(Mobile) OTP란=모바일OTP(MOTP)는 휴대전화에 탑재 가능한 일회용 비밀번호 생성 SW로 공개키기반(PKI) 솔루션 업체인 이니텍에서 개발했습니다. OTP SW가 매번 다른 비밀번호를 생성해 주기 때문에 강력한 보안성을 제공받을 수 있다는 것 외에 휴대전화에 OTP SW를 탑재함으로써 휴대전화 사용자는 언제 어디서든 사용자 인증을 할 수 있다는 장점이 있습니다.

인터넷 서비스 업체는 MOTP를 이용, 사용자에게 편리하고 강력한 사용자 인증 서비스를 제공함으로써 서비스 품질을 한 단계 높일 수 있습니다. 시간 방식과 이벤트 방식을 결합, 보안을 강화한 MOTP는 주기적으로 교체해야 하는 HW 토큰(Token)과 달리 영구적인 사용이 가능한 SW 토큰 방식이기 때문에 운영비용을 절감할 수 있으며 현재 엔씨소프트의 온라인게임 리니지에 제공되고 있다.

이홍석기자@디지털타임스



일회용 비밀번호

위키백과, 우리 모두의 백과사전.

일회용 비밀번호(영어: One-Time Password; OTP)는 일회성으로 사용하는 비밀번호이다.

용도[편집]

OTP는 주로 높은 수준의 보안을 유지하며 사용자를 인증해야 할 필요가 있을 때 사용되며, 그 일반적인 경우는 아래와 같다.[1][2]

도입 배경[편집]

OTP 이외의 사용자 인증 수단으로는 사용자 아이디 및 암호를 이용한 방식, 추가적인 질의응답을 이용한 방식 등 여러 가지가 있는데, 대부분 한 번 인증값이 유출되고 나면 인증값을 바꾸기 전에는 해킹을 당하기 쉽다는 문제점을 가지고 있다. 이를 보완하기 위한 인증 수단으로 보안 카드가 있지만, 이 역시 정해진 수십여 개의 번호를 사용할 뿐이므로 여전히 유출에 의한 위험성을 가지고 있다.[3](신한은행의 경우 1년에 1회씩 보안 카드를 교체하라고 연락이 오며, 분실하지 않은 이상 일반적인 교환시 교체 수수료는 없다.)
이에 따라, 한 번 생성되면 그 인증값이 임시적으로 한 번에 한해서만 유효한 OTP 방식을 도입하게 되었다.

생성 및 인증 방식[편집]

S/KEY 방식[편집]

벨 통신 연구소에서 개발한 OTP 생성 방식으로, 유닉스 계열 운영 체제에서 인증에 사용되고 있다. 그 생성 알고리즘은 아래와 같다.

  1. 클라이언트에서 정한 임의의 비밀키를 서버로 전송한다.
  2. 클라이언트로부터 받은 비밀키를 첫 값으로 사용하여, 해시 체인 방식으로, 이전 결과 값에 대한 해시 값을 구하는 작업을 n번 반복한다.
  3. 그렇게 생성된 n개의 OTP를 서버에 저장한다.

또한 이를 통해, 클라이언트에서 i번째로 서버에 인증을 요구할 때의 인증 방식은 아래와 같다.

  1. 클라이언트에서 정한 OTP에 해시 함수를 n-i번 중첩 적용하여 서버로 전송한다.
  2. 서버에서는 클라이언트로부터 받은 값에 해시 함수를 한 번 적용하여, 그 결과가 서버에 저장된 n-i+1번째 OTP와 일치하는지 검사한다.
  3. 일치하면 인증에 성공한 것으로, 카운트를 1 증가시킨다.

해시 체인에 기반하고 있는 이 알고리즘은, 해시 함수의 역연산을 하기 어렵다는 점에 착안하여 만들어졌다.
해킹에 의해 클라이언트에서 서버로 전송되는 값이 노출된다 해도, 그 값은 일회용이므로 다시 사용될 수 없다. 또한 그 다음 인증을 위해서는 그 전에 전송된 값보다 해시 함수가 한 번 적게 적용된 값을 사용해야 하는데, 그 값을 유추하는 것 또한 매우 어렵다.
다만 생성했던 OTP를 모두 소진하면 다시 새로 설정을 해야 하며, 서버에 저장돼 있는 OTP 목록이 유출될 경우 보안에 대단히 취약해진다는 단점이 있다.[4]

시간 동기화 방식[편집]

OTP를 생성하기 위해 사용하는 입력 값으로 시각을 사용하는 방식이다. 클라이언트는 현재 시각을 입력값으로 OTP를 생성해 서버로 전송하고, 서버 역시 같은 방식으로 OTP를 생성하여 클라이언트가 전송한 값의 유효성을 검사한다.
임의의 입력값이 필요하지 않다는 점에서 사용하기 간편하고, 클라이언트가 서버와 통신해야 하는 횟수가 비교적 적다. 또 서버에서 클라이언트에 입력값을 보내는 방식이 아니므로, 여타 OTP 생성 방식에 비해 피싱에 안전하다. 한편 클라이언트에서 시각 정보를 이용해 OTP를 생성하므로, 스마트폰 등의 모바일 기기도 클라이언트로 사용되기 적합하다는 점 역시 비용 절감 측면에서 장점이다.
하지만 클라이언트와 서버의 시간 동기화가 정확하지 않으면 인증에 실패하게 된다는 단점이 있으며, 이를 보완하기 위해 일반적으로 1~2 분 정도를 OTP 생성 간격으로 둔다.
미국 RSA사에서 만든 '시큐어 ID'가 이 방식을 사용한다.[5]

챌린지•응답 방식[편집]

서버에서 난수 생성 등을 통해 임의의 수를 생성하고 클라이언트에 그 값을 전송하면, 클라이언트가 그 값으로 OTP를 생성해 응답한 값으로 인증하는 방식이다.
입력값이 매번 임의의 값이 된다는 측면에서는 안전성을 갖추고 있으나, 네트워크 모니터링에 의해 전송되는 값들이 노출될 경우 매우 취약해진다는 단점이 있다. 또 서버와 클라이언트 사이의 통신 횟수도 비교적 많이 요구된다.[6]

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

이벤트 동기화 방식[편집]

서버와 클라이언트가 카운트 값을 동일하게 증가시켜 가며, 해당 카운트 값을 입력값으로 OTP를 생성해 인증하는 방식이다.[7]
다만 클라이언트에서 OTP를 생성하기만 하고 인증에 사용하지 않으면, 서버와 클라이언트의 카운트 값이 불일치하게 된다는 문제점이 있다. 이러한 문제를 보완하기 위해 어느 정도 오차 범위 내에서는 인증을 허용하는 방법이나, 카운트가 어긋났다고 판단될 경우 연속된 OTP를 받아 유효성을 판별하는 방법 등이 사용된다.

전달 방식[편집]

OTP는 사용자 인증에 사용되므로, 기본적으로 서버와 클라이언트 사이에 통신 및 전달 수단이 필요하다. 이러한 수단으로는, 아래와 같은 것들이 있다.

OTP 토큰[편집]

OTP 토큰이라 불리는 별도의 하드웨어를 클라이언트로 사용하는 방식이다. 기기 자체에서 해킹이 이루어지기는 힘들지만, 토큰을 구입해야 하므로 추가 비용이 필요하며 휴대하기에 불편하다는 단점이 있다.

카드형 OTP 토큰[편집]

기존의 토큰의 불편한 휴대성을 개선하기 위해, 얇은 두께로 휴대하기에 편리한 카드형 토큰도 출시된 바 있다. 일반 카드에 비해 별로 두껍지 않아 지갑에도 휴대가 가능하지만, 처리 속도가 느려 OTP 생성에 시간이 더 걸리고 수명이 짧으며 가격도 비싸다는 단점이 있다.

스마트폰 앱[편집]

별도의 하드웨어 장비를 필요로 하지 않아서 추가 비용 없이도 OTP 서비스를 이용할 수 있는 방식이다. 해당 스마트폰에 맞게 제공되는 앱을 설치함으로써 이용할 수 있다. 물론 서버 측에서 이 방식을 지원하지 않으면 이용할 수 없으며, 스마트폰 OS에 따라 이용이 제한될 수 있다는 단점이 있다. 또 스마트폰 환경인 만큼 해킹의 위험성이 비교적 높다.

SMS[편집]

SMS로 OTP를 전달하는 방식이다. 스마트폰이 아닌 어떤 종류의 휴대전화만 있어도 이용 가능하다는 장점이 있지만, SMS 자체의 해킹 위험성에 의해 현재는 거의 사용되지 않고 있다.[8]

안전성 논란[편집]

대표적 해킹 사례[편집]

미국 RSA사 OTP 해킹 사건[편집]


여파
[편집]2011년 3월, 미국 RSA사의 OTP 제품인 ‘시큐어 ID’의 기술 정보가 해킹돼, 비밀번호 생성에 쓰이는 계산식 등의 주요 정보가 유출되었다.[9]

RSA의 고객사인 군수업체 록히드 마틴(Lockheed Martin)과 L-3 커뮤니케이션즈(L-3 Communications)의 전산망이 해킹 공격을 받았다. 록히드 마틴의 전산망에는 군사 기술과 개발 중인 무기에 대한 정보가, L-3 커뮤니케이션즈의 전산망에는 미 국방부에 공급하는 각종 통신 및 정찰 기술 등에 관한 정보가 담겨 있어 국제 안보가 우려되었다. 당시 해킹 공격으로 인한 직접적인 피해는 없었으나, 두 업체는 결국 시큐어 ID 사용을 중단하였다. [10]
조치[편집]

2011년 6월, RSA는 시큐어 ID 4천만대를 전면 리콜 조치하였다. [11]

디아블로 III 유저 계정 해킹 사건[편집]

디아블로 III에서 OTP를 사용해 사용자 인증을 하던 유저들이 해킹을 당한 사례이다.
단순히 키로깅을 통해서 입수한 OTP를 수 분 내에 그대로 사용해도 로그인에 성공한다는 실험 결과가 있다.[12]

허술한 OTP 시스템 운용[편집]

이 사건에서 주로 문제의 원인이 되었던 점은, OTP 시스템을 운용함에 있어서 아래와 같은 허술함이 많았다는 사실이다.

  • 한 번 로그인에 성공한 OTP가 즉각 폐기되지 않고, 동일한 OTP를 유효시간 내에 입력하면 아무 문제 없이 로그인에 성공하게 됨.
  • 앱에 표시되는 유효시간이 지나 OTP가 교체된 이후 1~3분 동안에도 이전 OTP로 인증이 가능함.
  • OTP를 키보드로 입력해야 함.
  • OTP 입력 내용이 화면에 노출됨.

이는 블레이드 앤 소울과 같은 게임에서의 OTP 시스템 운용 방식과 비교해 봤을 때 명확히 드러났다.[12]

규격화[편집]

수많은 OTP 및 관련 암호학에 관한 규격들이 만들어지고 있으며, 이는 여러 RFC 문서들을 통해 확인할 수 있다.

주석[편집]

  1. 이동 허미혜. "당신의 비밀번호를 지켜 준다, OTP", 《IT동아》, 2012년 7월 19일 작성. 2012년 11월 30일 확인.
  2. 이동 One Time Password (OTP). 2012년 11월 30일에 확인.
  3. 이동 공인인증/OTP안내. 2012년 12월 3일에 확인.
  4. 이동 Chris Walsh. The S/Key Password System. 2012년 12월 7일에 확인.
  5. 이동 One-time password. 2012년 12월 13일에 확인.
  6. 이동 공인 인증서 방식 대체수단 OTP. 2012년 12월 13일에 확인.
  7. 이동 이창희. 인증의 마법사, OTP. 게임어바웃. 2012년 12월 13일에 확인.
  8. 이동 Mischel Kwon (2010년 1월 22일). SMS or Not to SMS – Why Should I Care?. RSA공식블로그. 2012년 12월 13일에 확인.
  9. 이동 김희연 (2011년 3월 18일). 'OTP 뚫렸다'…RSA 시큐어ID 사이버 공격당해. 지디넷코리아. 2012년 12월 11일에 확인.
  10. 이동 호애진 (2011년 6월 3일). 잇따른 미 군수업체 해킹...RSA 해킹 여파. 보안뉴스. 2012년 12월 11일에 확인.
  11. 이동 김희연 (2011년 6월 8일). 美RSA, 해킹파문 OTP 4천만대 전면리콜. 지디넷코리아. 2012년 12월 11일에 확인.
  12. ↑ 이동:  드러난 OTP의 맹점, 이대로 괜찮은가?. 디스이즈게임닷컴 (2012년 7월 3일). 2012년 12월 13일에 확인.




본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 침투테스트(취약점검점검, 모의해킹) 문의 / 답변 졸리운_곰 2017.12.10 28360
21 BIND DNS와 DHCP 보안 취약점 발견...업데이트 필수 file 졸리운_곰 2018.03.11 261
20 인텔 칩 내에서 설계 오류 발견된 이후 이틀간의 기록 file 졸리운_곰 2018.01.04 226
19 [4.28 버그리포트] CVE-2017-8301 外 file 졸리운_곰 2017.04.28 133
18 [4.24 버그리포트] CVE-2015-1521 外 file 졸리운_곰 2017.04.25 108
17 모의해킹 보고서 [2호]_주간취약점동향리포트_20120925.pdf file 졸리운_곰 2014.11.12 360
16 GNU Bash 원격명령 실행 취약점 대응방안 권고.pdf file 졸리운_곰 2014.10.27 266
15 Wordpress Frontend Upload Plugin - Arbitrary File Upload 졸리운_곰 2014.02.17 914
14 Wordpress Buddypress Plugin 1.9.1 - Privilege Escalation 졸리운_곰 2014.02.17 868
13 Daum Game 1.1.0.5 - ActiveX (IconCreate Method) Stack Buffer Overflow 졸리운_곰 2014.02.09 779
12 Android Browser and WebView addJavascriptInterface Code Execution 졸리운_곰 2014.02.09 1375
11 Apache Tomcat Manager Application Upload Authenticated Code Execution 졸리운_곰 2014.02.09 3157
10 NETGEAR ReadyNAS Perl Code Evaluation 졸리운_곰 2014.01.07 2016
9 Adobe Reader ToolButton - Use After Free 졸리운_곰 2014.01.07 1342
8 Moodle Remote Command Execution 가을의 곰을... 2013.11.06 1588
7 Apache + PHP 5.x - Remote Code Execution (Multithreaded Scanner v2) 가을의 곰을... 2013.11.06 1420
6 MS13-080 Microsoft Internet Explorer CDisplayPointer Use-After-Free 가을의 곰을... 2013.10.18 1536
5 Apple iOS 7.0.2 - Sim Lock Screen Display Bypass Vulnerability 가을의 곰을... 2013.10.17 1191
4 XAMPP 1.8.1 (lang.php, WriteIntoLocalDisk method) - Local Write Access Vulnerability 가을의 곰을... 2013.10.17 1260
3 Micorosft Internet Explorer SetMouseCapture Use-After-Free file 가을의 곰을... 2013.10.13 1151
2 Apache Tomcat/JBoss EJBInvokerServlet / JMXInvokerServlet (RMI over HTTP) Marshalled Object file 가을의 곰을... 2013.10.13 4162
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED