brunch

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Jan 22. 2021

VPN-3 (인터넷뱅킹, OTP의 원리)

인터넷뱅킹, OTP의 동작원리

현재 인터넷상의 대부분의 상거래나 안전이 필요한 통신에는 이런 SSL 기반의 암호화 통신이 주로 이용되고 있는데, 일상생활에서 많이 사용하는 인터넷뱅킹도 이 기술이 적용되어 있습니다. 실 생활에서는 주민등록증, 운전면허증, 여권 등으로 자신의 신분을 증명할 수 있듯이, 인터넷상에서 자신의 신분을 증명하기 위해 사용하는 수단이 공인인증서이다.


아래 <그림 1>과 같이 우리가 발급받는 공인인증서에는 발급기관 정보와 개인의 공개키 정보 등이 포함되어 있습니다. 개인 PC에 공인인증서와 암호화된 개인 키를 같이 보관하고 있다가, 인터넷뱅킹을 할 때는 자신의 인증서를 인터넷뱅킹 서버에 제출하면 전달받은 인증서가 정상적인지 인증서 검증기관을 통해 검증을 받게 됩니다. 인증서가 정상적이라고 판단되면, 인증서에 있는 고객 이름(법인이면 법인명)과 고유번호를 이용하여 신원을 파악하고 해당 고객의 계좌정보를 검색하여 서비스가 가능하게 됩니다. 여기까지가 고객에 대한 신원을 확인하는 절차이고, 다음은 안전한 통신을 위한 대칭키 획득 절차입니다.


인증서에 문제가 없다면 서버는 인증서에서 A의 공개키를 추출하여 서버가 자체적으로 생성한 대칭키를 암호화시켜 A에게 전달합니다. A사용자는 가지고 있는 암호화된 개인키를 풀기 위해서 패스워드를 입력하게 되는데, 이 패스워드는 우리가 공인인증서를 발급받을 때 입력했던 패스워드가 이용됩니다. A는 자신의 개인키를 이용하여 자신의 공개키로 암호화된 대칭키를 복호화시켜 안전하게 대칭키를 획득할 수 있습니다. 이렇게 획득된 대칭키를 이용하여 데이터를 암호화시켜 보내고, 받는 쪽에서는 복호화시켜 안전하게 통신이 이루어지게 됩니다.



< 그림 1 >  인터넷뱅킹 시 고객 인증과 암호화 통신 절차



인터넷뱅킹 로그인 완료 후 금액을 이체하거나 개인정보를 변경할 때 추가로 해야 하는 인증절차가 있습니다. 초기에는 보안카드라고 해서 30~40개의 숫자가 적혀있는 카드에서 특정 숫자의 번호를 입력하게 해서 보안성을 강화하는 수단으로 사용하였습니다. 이런 보안카드를 휴대폰으로 찍거나, 내용을 컴퓨터 내에 저장하면서 통째로 유출되는 사고가 빈번하게 발생되면서, 최근에는 보안을 더 강화하기 위해 OTP(One Time Password:일회용 비밀번호)를 많이 이용하고 있습니다. 말 그대로 한 번만 사용 가능한 패스워드이기 때문에 중간에 해커가 가로챈다고 하더라도 문제가 없는 암호체계입니다.


아래 <그림 2>는 OTP의 동작 원리에 대해 설명하고 있습니다. 왼쪽의 접속자가 휴대하고 있는 OTP 생성기에는 시계가 내장되어 있습니다. 그래서 전원을 켜게 되면, 현재 시간을 입력 값으로 해서 생성기마다 고유의 번호 생성 함수가 작동하여 6자리의 번호를 생성하여 표시합니다. 인터넷뱅킹의 인증서버에서도 표준시간을 이용하여 접속자마다의 고유 생성 함수를 준비하고 있다가 해당 접속자 생성기와 동일한 번호 생성 함수를 작동시켜 동일한 6자리 숫자를 생성합니다. 여기서 사용하는 기반기술로 앞에서 설명한 해쉬 함수가 사용됩니다. 


동일한 값을 넣으면 언제나 동일한 결괏값이 출력되는 원리를 이용하는 것이다. 여기서 동일한 값은 시간 값을 활용하고 동일한 결괏값이 6자리 숫자로 출력되는 원리를 이용하여, 서로의 6자리 숫자 값이 동일하면 인증된 사용자로 판단하여 금액을 이체하거나, 고객정보 수정을 승인하게 됩니다. 


이때 보통 생성된 숫자의 유효기간은 1분이고, 혹시 OTP의 생성기의 내장 시계가 느리거나 빠르게 가더라도, 인증 서버의 참조 시계도 접속자 별로 시간을 보정하는 기능도 내장하고 있어서 OTP 생성기가 오래되어 내장된 시계가 정확하지 않더라도 문제없이 동작하는 기능을 포함하고 있습니다. 시간을 보정하는 원리는 인증서버에서 1분 과거 시간, 현재시간, 1분 미래시간 별로 각각 3개의 값을 생성하여, 접속 사용자가 어떤 값으로 응답하는지 확인해서 3개의 값 중에 응답 값과 동일한 시간대 값을 확인하면 접속자의 OTP 시간에 맞추어 접속자의 시간 값을 보정하는 방식으로 동작합니다.



< 그림 2 >  OTP(One Time Password)의 동작원리



지금까지 VPN을 설명하기 위해 온라인상에서 신원확인 방법과 안전한 통신을 위한 암, 복호화 방법에 대해 설명드렸습니다. 최근에 공인인증서를 폐지되었다는 뉴스를 들었습니다. 필자가 보기에는 공인인증서가 폐지된 이유가 인증서 기술 자체의 문제보다도 이를 사용하기 위한 여러 복잡한 절차들 예를 들면 1년 단위 갱신의 번거로움, 많은 보안 프로그램 강제 설치 등 기술 외적인 문제가 더 큰 원인이었지 않나 생각됩니다. 사용이 편리하고 안전한 지문, 홍채 등의 생체정보, 블록체인 등을 활용한 안전하고 신속한 인증 기술이 많이 사용되기를 기대해 봅니다.

이전 10화 VPN-2 (IPSec / SSL VPN의 동작원리)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari