일회용 비밀번호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
일회용 비밀번호(OTP)는 사용자 계정 및 비밀번호 인증 방식의 보안 취약점을 보완하기 위해 개발된 인증 수단으로, 한 번만 유효한 임시 비밀번호를 사용하여 무단 접근 시도를 어렵게 한다. OTP는 시간 동기화, 챌린지•응답, 이벤트 동기화 방식 등 다양한 생성 및 인증 방식을 가지며, 보안 토큰, 스마트폰 앱, SMS 등 여러 전달 방식을 통해 사용자에게 제공된다. S/KEY, 시간 동기화 방식, 챌린지•응답 방식 등이 있으며, S/KEY는 해시 체인을 기반으로, 시간 동기화 방식은 시간 동기화를, 챌린지•응답 방식은 서버의 난수 생성에 기반한다. OTP는 소셜 엔지니어링 공격이나 중간자 공격에 취약할 수 있으며, 해킹 사례도 존재한다. 대한민국에서는 금융권 중심으로 OTP 사용이 의무화되었으며, 다양한 규격 문서들을 통해 표준화가 진행되고 있다.
더 읽어볼만한 페이지
- 컴퓨터 접근 제어 - 로그인
로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다. - 컴퓨터 접근 제어 - SIM 카드
SIM 카드는 이동통신 장치에서 가입자 정보를 저장하고 네트워크를 인증하는 스마트 카드로, 가입자 식별 정보, 인증 정보, 전화번호부 등을 저장하며, 최근에는 내장형 eSIM으로 발전하고 있다. - 보안 - 금고
금고는 현금, 귀중품, 중요 문서 등을 도난, 화재, 외부 위협으로부터 안전하게 보관하기 위한 잠금장치가 있는 견고한 상자 또는 보관 시설로, 기원전 13세기 이집트에서 기원하여 다양한 재료와 잠금 방식으로 발전해왔으며, 내화 금고, 방도 금고, 대여 금고 등 다양한 종류와 UL, EN 등의 국제적인 표준에 따른 성능 등급이 존재한다. - 보안 - 경비원
경비원은 시설 및 인력을 보호하고 출입을 통제하며 순찰, 위험 감지 및 보고 등의 업무를 수행하는 직업으로, 화재, 도난, 침입 등으로부터 보호하며 방문객 안내, 배달물 접수 등의 부가적인 서비스를 제공하기도 한다.
일회용 비밀번호 | |
---|---|
개요 | |
유형 | 인증 |
목적 | 사용자 인증 |
보안 | 보안 강화 |
사용법 | 한 번만 사용 가능한 비밀번호 |
상세 정보 | |
장점 | 피싱 공격 방어 키로깅 방어 어깨 너머 공격 방어 |
단점 | 생성 및 전달 메커니즘 필요 사용자 불편 초래 가능성 |
생성 방법 | 난수 생성기 해시 함수 암호화 알고리즘 |
전달 방법 | SMS 이메일 전용 애플리케이션 |
예시 | OTP (One-Time Password) TOTP (Time-based One-Time Password) HOTP (HMAC-based One-Time Password) |
2. 도입 배경
기존의 사용자 계정 및 암호를 이용한 인증 방식은 한 번 인증값이 유출되면 인증값을 바꾸기 전에는 해킹을 당하기 쉽다는 문제점을 가지고 있었다.[38][39] 이를 보완하기 위한 인증 수단으로 보안 카드가 있지만, 이 역시 정해진 수십여 개의 번호를 사용할 뿐이므로 여전히 유출에 의한 위험성이 존재한다.[38][39]
일회용 비밀번호(OTP) 알고리즘은 세부 사항에서 크게 다르며, 다양한 생성 방식이 존재한다.
이에 따라, 한 번 생성되면 그 인증값이 임시적으로 한 번에 한해서만 유효한 OTP 방식을 도입하게 되었다. 일회용 비밀번호는 접근이 제한된 자원에 대한 무단 접근을 더욱 어렵게 만들고, 정기적으로 비밀번호를 변경하거나, 한 번만 유효한 일회용 비밀번호를 사용함으로써 무단침입의 위험을 크게 줄일 수 있다.
3. 생성 및 인증 방식
일회용 비밀번호는 기본적으로 5가지 유형이 있다.
# 수학적 알고리즘에 기반하여, 이전 비밀번호로부터 새로운 비밀번호를 생성하는 방식
# 인증 서버와 클라이언트 간의 시각 동기를 통해 비밀번호를 제공하는 방식 (시각 동기 유형)
# 수학적 알고리즘에 기반하여, 챌린지(인증 서버 또는 트랜잭션의 세부 사항에 따라 선택되는 난수 등)와 이전 비밀번호를 대신하는 카운터를 기반으로 새로운 비밀번호를 생성하는 방식 (챌린지 응답 유형)
# 종이에 인쇄된 비밀번호 목록을 사용하는 방식 (거래 인증 번호 유형)
# 일회용 비밀번호를 휴대폰 등 "대역 외(out-of-band)"(액세스에 사용하는 네트워크와는 별도의 대역)를 사용하는 방식
거래 인증 번호(TAN)는 일부 온라인 뱅킹 서비스에서 은행 거래를 인증하기 위해 단독으로 사용되는 일회용 비밀번호이다. 전형적인 TAN 시스템에서 고객은 은행에 가서 본인 인증을 한 후, 은행에서 50개의 고유하고 무작위로 생성된 비밀번호 목록을 종이에 인쇄하여 받는다. 고객은 온라인 뱅킹 거래 시 비밀번호 목록 중 하나를 사용하여 서명하고 사용한 비밀번호를 목록에서 삭제한다. 은행은 고객에게 발행한 TAN 목록에 대해 사용된 TAN을 확인하여 일치하면 거래를 처리하고, 일치하지 않으면 거래를 거부한다. 한 번 사용된 TAN은 소모되며 이후 거래에서는 사용할 수 없다.
== S/KEY 방식 ==
벨 통신 연구소에서 개발한 OTP 생성 방식으로, 유닉스 계열 운영 체제에서 인증에 사용된다.[40] S/KEY 방식은 해시 체인에 기반하며, 해시 함수의 역연산을 하기 어렵다는 점을 이용한다.[40]
클라이언트에서 서버로 전송되는 값이 노출되어도 일회용이므로 다시 사용될 수 없고, 다음 인증에 필요한 값을 유추하기도 어렵다.[40] 그러나 서버에 저장된 OTP 목록이 유출되면 보안에 취약해진다는 단점이 있다.[40]
S/KEY 방식은 레슬리 램포트가 고안한 일방향 함수를 사용한 방식으로, 초기 시드 값에 해시 함수를 반복 적용하여 비밀번호를 생성하고, 생성된 순서와 반대로 사용한다.
서버의 카운터 값은 OTP 인증 성공 후에만 증가하지만, 토큰의 카운터는 사용자가 새로운 비밀번호를 요청할 때마다 증가하여 동기화되지 않을 수 있다. 이를 위해 서버에 룩어헤드 매개변수를 설정하여 클라이언트를 인증하는 것이 권장된다.[3]
만약 침입자가 생성된 비밀번호를 알게 되더라도 유효 기간이 정해져 있어 제한된 시간 동안만 접근 가능하다. 그리고 암호화 해시 함수를 사용하면, 역함수 산출이 실용적으로 불가능하여 다음 유효한 비밀번호를 알아내기 어렵다.
대부분의 시간 동기 방식 일회용 비밀번호 기술은 특허 대상이며, 상세 내용이 공개되지 않아 보안 전문가에 의해 이론적인 안전성이 확인되지 않았다. 이는 난해성에 의한 보안에 의존하고 있음을 보여주며, 수학 알고리즘형 일회용 비밀번호가 좋은 대안이 될 수 있다.
== 시간 동기화 방식 ==
시간 동기화 방식은 OTP를 생성하기 위해 클라이언트와 서버 간의 시간 동기화를 이용한다. 클라이언트는 현재 시각을 OTP 생성에 사용하고, 서버는 동일한 방식으로 OTP를 생성하여 클라이언트의 값을 검증한다.[41] 이 방식은 임의의 입력값이 필요 없어 간편하고, 서버와 클라이언트 간 통신 횟수가 적으며, 피싱에 비교적 안전하다.[41] 또한, 스마트폰 등의 모바일 기기를 클라이언트로 사용하기 적합하여 비용 절감 측면에서도 유리하다.[41]
하지만 클라이언트와 서버의 시간 동기화가 정확하지 않으면 인증에 실패할 수 있다는 단점이 있다. 이를 보완하기 위해 보통 1~2분 정도를 OTP 생성 간격으로 설정한다.[41]
RSA사의 '시큐어 ID'가 대표적인 시간 동기화 방식 OTP이다.[41] 이 방식은 보안 토큰이라는 하드웨어를 사용하며, 사용자에게 일회용 암호를 생성하는 개인 토큰이 제공된다. 토큰 내부에는 인증 서버의 시계와 동기화된 정확한 시계가 내장되어 있다. 시간은 암호 알고리즘의 중요한 부분이며, 새로운 암호는 이전 암호나 비밀 키 대신 현재 시간을 기반으로 생성된다. 이러한 토큰은 전용 하드웨어 장치이거나, 모바일 폰과 같은 모바일 장치일 수 있으며, 무료 소프트웨어 또는 오픈 소스 소프트웨어를 실행한다. 시간 기반 일회용 암호(TOTP)는 시간 동기화 OTP 표준의 예시이며, Google Authenticator나 비밀번호 관리자와 같은 애플리케이션을 사용하여 관리할 수 있다.
시간 동기식 일회용 비밀번호는 물리적인 하드웨어 토큰과 함께 사용되는 경우가 많지만, 휴대 전화나 PDA를 사용할 수도 있어 비용 효율성과 편리성을 높일 수 있다.
== 챌린지•응답 방식 ==
챌린지•응답 방식은 서버에서 난수 생성 등을 통해 임의의 값을 생성하고 클라이언트에 그 값을 전송하면, 클라이언트가 그 값으로 OTP를 생성해 응답한 값으로 인증하는 방식이다.[42] 입력값이 매번 임의의 값이 된다는 측면에서는 안전성을 갖추고 있으나, 네트워크 모니터링에 의해 전송되는 값들이 노출될 경우 매우 취약해진다는 단점이 있다. 또 서버와 클라이언트 사이의 통신 횟수도 비교적 많이 요구된다.[42]
이 방식을 사용하려면 사용자가 챌린지(문제)에 대한 응답을 제공해야 한다. 예를 들어, 토큰이 생성한 값을 토큰 자체에 입력하여 수행할 수 있다. 중복을 피하기 위해 일반적으로 추가적인 카운터가 사용되므로 동일한 챌린지를 두 번 받더라도 다른 일회용 비밀번호가 생성된다. EMV는 유럽에서 신용카드를 위해 "칩 인증 프로그램"이라는 시스템의 사용을 시작했다.[32]
== 이벤트 동기화 방식 ==
서버와 클라이언트가 카운트 값을 동일하게 증가시켜 가며, 해당 카운트 값을 입력값으로 OTP를 생성해 인증하는 방식이다.[43] 클라이언트에서 OTP를 생성하기만 하고 인증에 사용하지 않으면 서버와 클라이언트의 카운트 값이 불일치하게 된다는 문제점이 있다. 이러한 문제를 보완하기 위해 어느 정도 오차 범위 내에서는 인증을 허용하는 방법이나, 카운트가 어긋났다고 판단될 경우 연속된 OTP를 받아 유효성을 판별하는 방법 등이 사용된다.
시간 동기 방식이 아닌 일회용 비밀번호 시스템에서는 사용자가 비밀번호를 생성하고 사용하지 않거나, 오타를 낼 경우 클라이언트와 인증 서버가 비동기화될 수 있다. 이로 인해 인증 서버와 클라이언트의 비동기 상태를 해소하기 위해 새로운 클라이언트를 재발행해야 하며 비용이 발생한다.
인증 서버는 잘못된 비밀번호를 무시하거나, 다음에 예상되는 비밀번호 1개뿐만 아니라 더 많은 비밀번호를 허용하거나, 재동기화 메커니즘을 추가하는 등의 방법으로 이러한 문제를 해결할 수 있다. 이러한 방법을 사용하면 구현 시 추가적인 노력이 필요하고 서버 시스템 비용에 영향을 줄 수 있지만, 동기화 문제는 피할 수 있다.
한편, 하드웨어 토큰은 시계를 필요로 하지 않기 때문에 전력을 지속적으로 소비하지 않아 배터리 수명이 길어, 시간 동기 방식이 아닌 일회용 비밀번호에도 명확한 비용 절감 효과가 있다. 대량 도입 시 시간 동기 방식 일회용 비밀번호는 더 비싼 선택이 되며, 더 비싸고 수명이 짧은 토큰에 대한 비용은 시간 동기 방식이 아닌 서버에 대한 추가 비용을 초과할 수 있다.
3. 1. S/KEY 방식
벨 통신 연구소에서 개발한 OTP 생성 방식으로, 유닉스 계열 운영 체제에서 인증에 사용된다.[40] S/KEY 방식은 해시 체인에 기반하며, 해시 함수의 역연산을 하기 어렵다는 점을 이용한다.[40]
클라이언트에서 서버로 전송되는 값이 노출되어도 일회용이므로 다시 사용될 수 없고, 다음 인증에 필요한 값을 유추하기도 어렵다.[40] 그러나 서버에 저장된 OTP 목록이 유출되면 보안에 취약해진다는 단점이 있다.[40]
S/KEY 방식은 레슬리 램포트가 고안한 일방향 함수를 사용한 방식으로, 초기 시드 값에 해시 함수를 반복 적용하여 비밀번호를 생성하고, 생성된 순서와 반대로 사용한다.
서버의 카운터 값은 OTP 인증 성공 후에만 증가하지만, 토큰의 카운터는 사용자가 새로운 비밀번호를 요청할 때마다 증가하여 동기화되지 않을 수 있다. 이를 위해 서버에 룩어헤드 매개변수를 설정하여 클라이언트를 인증하는 것이 권장된다.[3]
만약 침입자가 생성된 비밀번호를 알게 되더라도 유효 기간이 정해져 있어 제한된 시간 동안만 접근 가능하다. 그리고 암호화 해시 함수를 사용하면, 역함수 산출이 실용적으로 불가능하여 다음 유효한 비밀번호를 알아내기 어렵다.
대부분의 시간 동기 방식 일회용 비밀번호 기술은 특허 대상이며, 상세 내용이 공개되지 않아 보안 전문가에 의해 이론적인 안전성이 확인되지 않았다. 이는 난해성에 의한 보안에 의존하고 있음을 보여주며, 수학 알고리즘형 일회용 비밀번호가 좋은 대안이 될 수 있다.
3. 2. 시간 동기화 방식
시간 동기화 방식은 OTP를 생성하기 위해 클라이언트와 서버 간의 시간 동기화를 이용한다. 클라이언트는 현재 시각을 OTP 생성에 사용하고, 서버는 동일한 방식으로 OTP를 생성하여 클라이언트의 값을 검증한다.[41] 이 방식은 임의의 입력값이 필요 없어 간편하고, 서버와 클라이언트 간 통신 횟수가 적으며, 피싱에 비교적 안전하다.[41] 또한, 스마트폰 등의 모바일 기기를 클라이언트로 사용하기 적합하여 비용 절감 측면에서도 유리하다.[41]
하지만 클라이언트와 서버의 시간 동기화가 정확하지 않으면 인증에 실패할 수 있다는 단점이 있다. 이를 보완하기 위해 보통 1~2분 정도를 OTP 생성 간격으로 설정한다.[41]
RSA사의 '시큐어 ID'가 대표적인 시간 동기화 방식 OTP이다.[41] 이 방식은 보안 토큰이라는 하드웨어를 사용하며, 사용자에게 일회용 암호를 생성하는 개인 토큰이 제공된다. 토큰 내부에는 인증 서버의 시계와 동기화된 정확한 시계가 내장되어 있다. 시간은 암호 알고리즘의 중요한 부분이며, 새로운 암호는 이전 암호나 비밀 키 대신 현재 시간을 기반으로 생성된다. 이러한 토큰은 전용 하드웨어 장치이거나, 모바일 폰과 같은 모바일 장치일 수 있으며, 무료 소프트웨어 또는 오픈 소스 소프트웨어를 실행한다. 시간 기반 일회용 암호 (TOTP)는 시간 동기화 OTP 표준의 예시이며, Google Authenticator나 비밀번호 관리자와 같은 애플리케이션을 사용하여 관리할 수 있다.
시간 동기식 일회용 비밀번호는 물리적인 하드웨어 토큰과 함께 사용되는 경우가 많지만, 휴대 전화나 PDA를 사용할 수도 있어 비용 효율성과 편리성을 높일 수 있다.
3. 3. 챌린지•응답 방식
챌린지•응답 방식은 서버에서 난수 생성 등을 통해 임의의 값을 생성하고 클라이언트에 그 값을 전송하면, 클라이언트가 그 값으로 OTP를 생성해 응답한 값으로 인증하는 방식이다.[42] 입력값이 매번 임의의 값이 된다는 측면에서는 안전성을 갖추고 있으나, 네트워크 모니터링에 의해 전송되는 값들이 노출될 경우 매우 취약해진다는 단점이 있다. 또 서버와 클라이언트 사이의 통신 횟수도 비교적 많이 요구된다.[42]
이 방식을 사용하려면 사용자가 챌린지(문제)에 대한 응답을 제공해야 한다. 예를 들어, 토큰이 생성한 값을 토큰 자체에 입력하여 수행할 수 있다. 중복을 피하기 위해 일반적으로 추가적인 카운터가 사용되므로 동일한 챌린지를 두 번 받더라도 다른 일회용 비밀번호가 생성된다. EMV는 유럽에서 신용카드를 위해 "칩 인증 프로그램"이라는 시스템의 사용을 시작했다.[32]
3. 4. 이벤트 동기화 방식
서버와 클라이언트가 카운트 값을 동일하게 증가시켜 가며, 해당 카운트 값을 입력값으로 OTP를 생성해 인증하는 방식이다.[43] 클라이언트에서 OTP를 생성하기만 하고 인증에 사용하지 않으면 서버와 클라이언트의 카운트 값이 불일치하게 된다는 문제점이 있다. 이러한 문제를 보완하기 위해 어느 정도 오차 범위 내에서는 인증을 허용하는 방법이나, 카운트가 어긋났다고 판단될 경우 연속된 OTP를 받아 유효성을 판별하는 방법 등이 사용된다.
시간 동기 방식이 아닌 일회용 비밀번호 시스템에서는 사용자가 비밀번호를 생성하고 사용하지 않거나, 오타를 낼 경우 클라이언트와 인증 서버가 비동기화될 수 있다. 이로 인해 인증 서버와 클라이언트의 비동기 상태를 해소하기 위해 새로운 클라이언트를 재발행해야 하며 비용이 발생한다.
인증 서버는 잘못된 비밀번호를 무시하거나, 다음에 예상되는 비밀번호 1개뿐만 아니라 더 많은 비밀번호를 허용하거나, 재동기화 메커니즘을 추가하는 등의 방법으로 이러한 문제를 해결할 수 있다. 이러한 방법을 사용하면 구현 시 추가적인 노력이 필요하고 서버 시스템 비용에 영향을 줄 수 있지만, 동기화 문제는 피할 수 있다.
한편, 하드웨어 토큰은 시계를 필요로 하지 않기 때문에 전력을 지속적으로 소비하지 않아 배터리 수명이 길어, 시간 동기 방식이 아닌 일회용 비밀번호에도 명확한 비용 절감 효과가 있다. 대량 도입 시 시간 동기 방식 일회용 비밀번호는 더 비싼 선택이 되며, 더 비싸고 수명이 짧은 토큰에 대한 비용은 시간 동기 방식이 아닌 서버에 대한 추가 비용을 초과할 수 있다.
4. 전달 방식
OTP는 사용자 인증에 사용되므로, 기본적으로 서버와 클라이언트 사이에 통신 및 전달 수단이 필요하다. 이러한 수단으로는 아래와 같은 것들이 있다.
OTP 토큰이라 불리는 별도의 하드웨어를 클라이언트로 사용하는 방식이다. 기기 자체에서 해킹이 이루어지기는 힘들지만, 토큰을 구입해야 하므로 추가 비용이 필요하며 휴대하기에 불편하다는 단점이 있다. RSA 시큐리티의 SecurID는 HID Global의 솔루션과 함께 시간 동기화 방식의 토큰의 한 예시이다. 모든 토큰과 마찬가지로, 이들 역시 분실, 손상 또는 도난될 수 있으며, 특히 재충전 기능이 없거나 교체 불가능한 배터리를 사용하는 토큰의 경우 배터리 소모로 인한 불편함이 있다. 최근에는, 일반적인 키포브 OTP 토큰과 관련된 전자 부품을 신용 카드 형태로 넣는 것이 가능해졌다. 그러나 카드의 두께가 매우 얇아서 표준 부품이나 배터리를 사용할 수 없다. 특수한 폴리머 기반 배터리를 사용해야 하는데, 이는 코인 (버튼) 셀보다 배터리 수명이 훨씬 짧다. 반도체 부품은 매우 얇아야 할 뿐만 아니라 대기 상태 및 작동 시 사용 전력을 최소화해야 한다. 유비코는 키를 누르면 OTP를 생성하고 긴 비밀번호를 쉽게 입력할 수 있도록 키보드를 시뮬레이션하는 임베디드 칩이 있는 작은 USB 토큰을 제공한다.[12] USB 장치이므로 배터리 교체의 번거로움을 피할 수 있다.
기존 토큰의 불편한 휴대성을 개선하기 위해, 얇은 두께로 휴대하기에 편리한 카드형 토큰도 출시된 바 있다. 일반 카드에 비해 별로 두껍지 않아 지갑에도 휴대가 가능하지만, 처리 속도가 느려 OTP 생성에 시간이 더 걸리고 수명이 짧으며 가격도 비싸다는 단점이 있다.
스마트폰 앱을 이용하여 일회용 비밀번호(OTP)를 생성하는 방식이다. 별도의 하드웨어 장비가 필요 없어 추가 비용 없이 OTP 서비스를 이용할 수 있다. 해당 스마트폰에 맞는 앱을 설치하면 이용 가능하다. Authy나 Google Authenticator와 같은 전용 인증 앱이나 Steam과 같이 서비스의 기존 앱을 통해 OTP를 받을 수 있다.[13][14][15] 휴대 전화 자체가 휴대용 인증 토큰이 될 수 있다.[18] SMS는 뱅킹, 신용/직불 카드, 보안 등과 같은 목적으로 일상생활에서 널리 사용되는 OTAC를 수신하는 방법이다.[20][21][22] 다만, 서버 측에서 이 방식을 지원하지 않거나, 스마트폰 OS에 따라 이용이 제한될 수 있다는 단점이 있다. 또한, 스마트폰 환경 특성상 해킹 위험성이 비교적 높다.
SMS로 OTP를 전달하는 방식이다. 스마트폰이 아닌 어떤 종류의 휴대전화에서도 이용 가능하다는 장점이 있지만, SMS 자체의 해킹 위험성 때문에 현재는 거의 사용되지 않는다.[44] 문자 메시지는 거의 모든 모바일 핸드셋에서 직접 사용할 수 있고, 텍스트 음성 변환을 통해 모든 모바일 또는 유선 전화에서 사용할 수 있는 보편적인 통신 채널이기 때문에, 모든 소비자에게 낮은 총 비용으로 접근할 수 있는 잠재력이 크다. 문자 메시지를 통한 OTP는 A5/x 표준을 사용하여 암호화될 수 있는데, 여러 해킹 그룹이 몇 분 또는 몇 초 안에 성공적으로 암호 분석할 수 있다고 보고했다.[5][6][7] 또한, SS7 라우팅 프로토콜의 보안 결함은 관련 문자 메시지를 공격자에게 리디렉션하는 데 사용될 수 있으며 실제로 사용되었다.[8][9] 2017년에는 독일의 여러 O2 고객이 이러한 방식으로 침해되어 모바일 뱅킹 계정에 접근할 수 있었다. 2016년 7월, 미국 NIST는 인증 관행에 대한 지침이 포함된 특별 간행물 초안을 발표했는데, 이는 SMS가 대규모로 중간자 공격에 가로채질 수 있다는 점 때문에 SMS를 대역 외 2단계 인증을 구현하는 방법으로 사용하는 것을 권장하지 않는다.[14] 문자 메시지는 또한 공격자가 피해자의 전화번호를 자신의 SIM 카드로 사기성으로 전송하는 SIM 스왑 사기에 취약하며, 이를 사용하여 해당 번호로 전송되는 메시지에 접근할 수 있다.[10][11]
4. 1. OTP 토큰
OTP 토큰이라 불리는 별도의 하드웨어를 클라이언트로 사용하는 방식이다. 기기 자체에서 해킹이 이루어지기는 힘들지만, 토큰을 구입해야 하므로 추가 비용이 필요하며 휴대하기에 불편하다는 단점이 있다.
RSA 시큐리티의 SecurID는 HID Global의 솔루션과 함께 시간 동기화 방식의 토큰의 한 예시이다. 모든 토큰과 마찬가지로, 이들 역시 분실, 손상 또는 도난될 수 있으며, 특히 재충전 기능이 없거나 교체 불가능한 배터리를 사용하는 토큰의 경우 배터리 소모로 인한 불편함이 있다. RSA는 2006년에 독점 토큰의 변형을 제안했으며, 이를 "유비쿼터스 인증"으로 묘사했다. 이는 RSA가 제조업체와 협력하여 휴대폰과 같은 장치에 물리적인 SecurID 칩을 추가하는 방식이다.
최근, 일반적인 키포브 OTP 토큰과 관련된 전자 부품을 신용 카드 형태로 넣는 것이 가능해졌다. 그러나 카드의 두께가 매우 얇아서 표준 부품이나 배터리를 사용할 수 없다. 특수한 폴리머 기반 배터리를 사용해야 하는데, 이는 코인 (버튼) 셀보다 배터리 수명이 훨씬 짧다. 반도체 부품은 매우 얇아야 할 뿐만 아니라 대기 상태 및 작동 시 사용 전력을 최소화해야 한다.
유비코는 키를 누르면 OTP를 생성하고 긴 비밀번호를 쉽게 입력할 수 있도록 키보드를 시뮬레이션하는 임베디드 칩이 있는 작은 USB 토큰을 제공한다.[12] USB 장치이므로 배터리 교체의 번거로움을 피할 수 있다.
이 기술의 새로운 버전은 표준 크기와 두께의 결제 카드에 키패드를 내장하도록 개발되었다. 이 카드에는 내장된 키패드, 디스플레이, 마이크로프로세서 및 근접 칩이 있다.
기존 토큰의 불편한 휴대성을 개선하기 위해, 얇은 두께로 휴대하기에 편리한 카드형 토큰도 출시된 바 있다. 일반 카드에 비해 별로 두껍지 않아 지갑에도 휴대가 가능하지만, 처리 속도가 느려 OTP 생성에 시간이 더 걸리고 수명이 짧으며 가격도 비싸다는 단점이 있다.
4. 1. 1. 카드형 OTP 토큰
기존 토큰의 불편한 휴대성을 개선하기 위해, 얇은 두께로 휴대하기에 편리한 카드형 토큰도 출시된 바 있다. 일반 카드에 비해 별로 두껍지 않아 지갑에도 휴대가 가능하지만, 처리 속도가 느려 OTP 생성에 시간이 더 걸리고 수명이 짧으며 가격도 비싸다는 단점이 있다.
4. 2. 스마트폰 앱
스마트폰 앱을 이용하여 일회용 비밀번호(OTP)를 생성하는 방식이다. 별도의 하드웨어 장비가 필요 없어 추가 비용 없이 OTP 서비스를 이용할 수 있다. 해당 스마트폰에 맞는 앱을 설치하면 이용 가능하다. Authy나 Google Authenticator와 같은 전용 인증 앱이나 Steam과 같이 서비스의 기존 앱을 통해 OTP를 받을 수 있다.[13][14][15] 휴대 전화 자체가 휴대용 인증 토큰이 될 수 있다.[18] SMS는 뱅킹, 신용/직불 카드, 보안 등과 같은 목적으로 일상생활에서 널리 사용되는 OTAC를 수신하는 방법이다.[20][21][22]다만, 서버 측에서 이 방식을 지원하지 않거나, 스마트폰 OS에 따라 이용이 제한될 수 있다는 단점이 있다. 또한, 스마트폰 환경 특성상 해킹 위험성이 비교적 높다.
4. 3. SMS
SMS로 OTP를 전달하는 방식이다. 스마트폰이 아닌 어떤 종류의 휴대전화에서도 이용 가능하다는 장점이 있지만, SMS 자체의 해킹 위험성 때문에 현재는 거의 사용되지 않는다.[44] 문자 메시지는 거의 모든 모바일 핸드셋에서 직접 사용할 수 있고, 텍스트 음성 변환을 통해 모든 모바일 또는 유선 전화에서 사용할 수 있는 보편적인 통신 채널이기 때문에, 모든 소비자에게 낮은 총 비용으로 접근할 수 있는 잠재력이 크다.[4] 문자 메시지를 통한 OTP는 A5/x 표준을 사용하여 암호화될 수 있는데, 여러 해킹 그룹이 몇 분 또는 몇 초 안에 성공적으로 암호 분석할 수 있다고 보고했다.[5][6][7] 또한, SS7 라우팅 프로토콜의 보안 결함은 관련 문자 메시지를 공격자에게 리디렉션하는 데 사용될 수 있으며 실제로 사용되었다.[8][9] 2017년에는 독일의 여러 O2 고객이 이러한 방식으로 침해되어 모바일 뱅킹 계정에 접근할 수 있었다. 2016년 7월, 미국 NIST는 인증 관행에 대한 지침이 포함된 특별 간행물 초안을 발표했는데, 이는 SMS가 대규모로 중간자 공격에 가로채질 수 있다는 점 때문에 SMS를 대역 외 2단계 인증을 구현하는 방법으로 사용하는 것을 권장하지 않는다.[14] 문자 메시지는 또한 공격자가 피해자의 전화번호를 자신의 SIM 카드로 사기성으로 전송하는 SIM 스왑 사기에 취약하며, 이를 사용하여 해당 번호로 전송되는 메시지에 접근할 수 있다.[10][11]휴대 전화 자체는 휴대용 인증 토큰이 될 수 있다.[18] 모바일 문자 메시지는 휴대 전화를 통해 일회용 인증 코드(OTAC)를 수신하는 방법 중 하나이다. 이러한 방식으로 서비스 제공업체는 디지털 인증서로 암호화된 OTAC를 포함하는 문자 메시지를 사용자에게 전송하여 인증한다. 보고서에 따르면, 모바일 문자 메시징은 공개 키 기반 구조(PKI)를 사용하여 양방향 인증 및 부인 방지를 제공할 때 이론적 분석에 따라 높은 보안을 제공한다.[19]
OTAC를 수신하는 방법으로서의 SMS는 뱅킹, 신용/직불 카드, 보안 등과 같은 목적으로 우리의 일상생활에서 널리 사용된다.[20][21][22] 일반적으로 일회용 비밀번호를 배포하는 데 사용되는 기술은 단문 메시지 서비스(SMS)이다. SMS는 모든 핸드셋에서 사용할 수 있으며 많은 고객 기반을 가진 유비쿼터스 통신 채널이므로 SMS를 통한 메시징은 모든 고객에게 저렴한 총 소유 비용(TCO)으로 도달하는 데 가장 큰 잠재력을 가지고 있다. 토큰이나 스마트 카드와 같은 기존 인증 방식은 구현에 많은 비용이 들고, 보유하는 데에도 가격이 비싸며, 종종 소비자로부터 거부감을 산다. 이러한 방식은 피싱 공격자가 고객을 속여 토큰이나 스마트 카드가 생성한 일회용 PIN을 알아내어 온라인 세션을 하이재킹하는 중간자 공격에 대한 취약성이 지적되고 있다. 또한 토큰은 분실될 가능성이 있으며, 일회용 비밀번호를 휴대폰에 통합함으로써 새로운 휴대 기기를 휴대할 필요가 없어지고, 보다 안전하고 간단하게 인증을 수행할 수 있다.
5. 안전성 논란
OTP(일회용 비밀번호)는 올바르게 구현되면 처음 사용된 후 짧은 시간 안에 공격자에게 무용지물이 된다. 이는 수년이 지난 후에도 공격자에게 유용할 수 있는 비밀번호와는 다르다.[16][17]
하지만 비밀번호와 마찬가지로 OTP는 소셜 엔지니어링 공격에 취약하여 피싱 공격자가 고객을 속여 OTP를 제공하게 만들 수 있다. 또한 OTP는 중간자 공격에 취약할 수 있으므로, 전송 계층 보안과 같이 안전한 채널을 통해 OTP를 전달하는 것이 중요하다.[16][17]
비밀번호와 OTP가 모두 유사한 종류의 공격에 취약하다는 점은 유니버설 2차 인증의 핵심 동기가 되었으며, 이는 피싱 공격에 더 강하도록 설계되었다.[16][17]
시간 동기화 또는 챌린지-응답 구성 요소가 없는 OTP는 사용 전에 손상될 경우 취약성 창이 더 길어진다. 2005년 말, 스웨덴 은행의 고객들은 미리 제공된 일회용 비밀번호를 넘겨주도록 속았다.[16] 2006년에는 이러한 유형의 공격이 미국 은행의 고객에게 사용되었다.[17]
5. 1. 대표적 해킹 사례
5. 1. 1. 미국 RSA사 OTP 해킹 사건
2011년 3월, 미국 RSA사의 OTP 제품인 ‘시큐어 ID’의 기술 정보가 해킹돼, 비밀번호 생성에 쓰이는 계산식 등의 주요 정보가 유출되었다.[45]5. 1. 2. 디아블로 III 유저 계정 해킹 사건
디아블로 III에서 OTP를 사용해 사용자 인증을 하던 유저들이 해킹을 당한 사례이다.단순히 키로깅을 통해서 입수한 OTP를 수 분 내에 그대로 사용해도 로그인에 성공한다는 실험 결과가 있다.[48]
5. 1. 3. 대한민국 금융권 OTP 해킹 사건
2013년, 대한민국에서는 OTP를 이용한 전자금융사기 사건이 발생하였다. 악성코드를 통해 OTP 번호 자체를 탈취하고, 이를 이용해 부당하게 자금을 이체하는 수법이 사용되었다. 이는 OTP가 기존 보안카드보다 안전하다는 인식을 깨뜨리는 사건으로, 금융 보안 시스템에 대한 불신을 증폭시켰다. 특히, 범인들이 중화인민공화국에 서버를 두고 활동했다는 점은 당시 대한민국의 사이버 안보 취약점을 드러냈다는 비판을 불러일으켰으며, 이 사건은 금융당국이 OTP 보안 강화 대책을 마련하는 계기가 되었다.5. 2. 피싱 및 스미싱 공격
일회용 비밀번호(OTP)는 소셜 엔지니어링을 이용한 피싱 공격에 취약하여, 공격자가 사용자를 속여 OTP를 제공하도록 유도할 수 있다.[16][33] 또한, 중간자 공격에도 취약할 수 있으므로 전송 계층 보안과 같이 안전한 채널을 통해 OTP를 전달하는 것이 중요하다.[16]시간 동기화 또는 챌린지-응답 구성 요소가 없는 OTP는 사용 전에 손상될 경우 더 긴 시간 동안 취약점을 노출시킬 수 있다. 2005년 스웨덴 은행의 고객들은 사전에 제공된 OTP를 넘겨주도록 속아 피해를 입었으며,[16][33] 2006년에는 미국 은행의 고객을 대상으로 유사한 공격이 발생했다.[17][34]
일회용 비밀번호 시스템 사용자는 중간자 공격에 대한 취약성을 인지하고, OTP를 타인에게 절대 누설해서는 안 된다. 이는 시간 동기화 방식 여부와 관계없이 OTP 보안에 있어 매우 중요하다.[16]
6. 대한민국의 OTP 이용 현황
대한민국에서는 2007년부터 금융권을 중심으로 OTP 사용이 의무화되었다. 초기에는 하드웨어 토큰 방식이 주로 사용되었으나, 최근에는 스마트폰 앱을 이용한 모바일 OTP 방식이 확산되고 있다. 금융결제원의 '스마트 OTP' 서비스는 여러 금융기관에서 공동으로 사용할 수 있는 통합 OTP 서비스를 제공한다. OTP 의무 사용 규제는 2015년에 폐지되었지만, 여전히 많은 금융기관에서 OTP를 주요 보안 토큰과 함께 주요 인증 수단으로 사용하고 있다.
7. 규격화
여러 RFC 문서들을 통해 OTP 및 관련 암호학에 관한 규격들이 만들어지고 있다. OTP 기술은 특허가 있는 경우가 많아 각 회사가 자체 기술을 밀어붙이려 하면서 이 분야의 표준화가 더 어려워지지만, 표준은 존재한다. 예를 들어 RFC 1760 (S/KEY), RFC 2289 (OTP), RFC 4226 (HOTP) 및 RFC 6238 (TOTP) 등이 있다.
참조
[1]
서적
Information Security and Privacy
Springer
2010
[2]
웹사이트
EOTP – Static Key Transfer
https://defuse.ca/eo[...]
2012-12-21
[3]
웹사이트
IETF Tools
https://datatracker.[...]
[4]
간행물
Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication
http://www.cs.techni[...]
2015-10-06
[5]
웹사이트
Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication by Barkan and Biham of Technion (Full Version)
http://www.cs.techni[...]
[6]
간행물
Cryptanalysis with COPACOBANA
http://www.sciengine[...]
[7]
간행물
GSM: SRSLY?
https://events.ccc.d[...]
2009-12-30
[8]
뉴스
NIST blog clarifies SMS deprecation in wake of media tailspin
https://www.zdnet.co[...]
2017-07-14
[9]
웹사이트
Time Is Running Out For SMS-Based Login Security Codes
http://fortune.com/2[...]
2017-07-14
[10]
웹사이트
The frighteningly simple technique that hijacked Jack Dorsey's Twitter account
https://www.theverge[...]
2019-08-31
[11]
뉴스
'Sim swap' gives fraudsters access-all-areas via your mobile phone
https://www.theguard[...]
2015-09-26
[12]
뉴스
Yubico AB
http://investing.bus[...]
2011-07-13
[13]
웹사이트
How to set up two-factor authentication on all your online accounts
https://www.theverge[...]
2017-07-14
[14]
웹사이트
Two-factor authentication is a mess
https://www.theverge[...]
2017-07-14
[15]
웹사이트
Valve adds two-factor login authentication to Steam mobile app
http://www.polygon.c[...]
2015-09-08
[16]
웹사이트
The Register article
https://www.theregis[...]
2012-12-21
[17]
웹사이트
Washington Post Security Blog
http://blog.washingt[...]
2012-12-21
[18]
문서
Secure web authentication with mobile phones
2004
[19]
문서
Mobile authentication scheme using SMS
2009
[20]
웹사이트
Axis Bank Mobile Application Registration
http://www.axisbank.[...]
2014-10-28
[21]
웹사이트
Master Card Secure Code
http://www.ingvysyab[...]
2014-10-28
[22]
웹사이트
SMS Authentication: SafeNet Authentication Services
http://www2.safenet-[...]
Inc., S.
2014-10-28
[23]
웹사이트
Lloyds Bank Online Authentication Procedure
http://www.lloydsban[...]
2014-10-28
[24]
웹사이트
Activate Windows 7
http://windows.micro[...]
2014-10-28
[25]
문서
EmID: Web authentication by email address
2008
[26]
문서
The OAuth 2.0 authorization framework
2012
[27]
웹사이트
Lloyds Bank - Internet Banking - How to Register for Online Banking
http://www.lloydsban[...]
2014-10-28
[28]
문서
Application of Quantum Cryptography Protocols in Authentication Process
2011
[29]
문서
Make mine a quadruple: Strengthening the security of graphical one-time pin authentication
2011
[30]
문서
A novel user authentication scheme based on QR-code
2010
[31]
문서
AUTHENTICATION OF DATA STORAGE USING DECENTRALIZED ACCESS CONTROL IN CLOUDS
2014
[32]
문서
Chip Authentication Program
[33]
웹사이트
「ザ・レジスター」の記事
http://www.theregist[...]
[34]
웹사이트
ワシントン・ポスト誌セキュリティ・ブログ
http://blog.washingt[...]
[35]
뉴스
"[앎?]\
http://issueedico.co[...]
이슈에디코
2018-10-08
[36]
뉴스
당신의 비밀번호를 지켜 준다, OTP
http://it.donga.com/[...]
IT동아
2012-11-30
[37]
웹인용
One Time Password (OTP)
http://www.gemalto.c[...]
2012-11-30
[38]
웹인용
공인인증/OTP안내
http://www.truefrien[...]
2012-12-03
[39]
문서
[40]
웹인용
The S/Key Password System
http://www.ece.north[...]
2012-12-07
[41]
웹인용
One-time password
http://osiux.com/sec[...]
2012-12-13
[42]
웹인용
공인 인증서 방식 대체수단 OTP
http://support.oulli[...]
2012-12-13
[43]
웹인용
인증의 마법사, OTP
http://support.oulli[...]
게임어바웃
2012-12-13
[44]
웹인용
SMS or Not to SMS – Why Should I Care?
https://blogs.rsa.co[...]
RSA공식블로그
2012-12-13
[45]
웹인용
'OTP 뚫렸다'…RSA 시큐어ID 사이버 공격당해
http://www.zdnet.co.[...]
지디넷코리아
2012-12-11
[46]
웹인용
잇따른 미 군수업체 해킹...RSA 해킹 여파
http://www.boannews.[...]
보안뉴스
2012-12-11
[47]
웹인용
美RSA, 해킹파문 OTP 4천만대 전면리콜
http://www.zdnet.co.[...]
지디넷코리아
2012-12-11
[48]
웹인용
드러난 OTP의 맹점, 이대로 괜찮은가?
http://www.thisisgam[...]
디스이즈게임닷컴
2012-12-13
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com