Strengthening of Token Authentication Using Time-based Randomization 1. 서론 패스워드기반인증 [1] 은사용자의기억에의존하는인증방식으로시스템구현이간단하여컴퓨터산업의태동시부터널리이용되어왔으며인증의중요성이강조되고있는오

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Strengthening of Token Authentication Using Time-based Randomization 1. 서론 패스워드기반인증 [1] 은사용자의기억에의존하는인증방식으로시스템구현이간단하여컴퓨터산업의태동시부터널리이용되어왔으며인증의중요성이강조되고있는오"

Transcription

1 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017), pp 시간기반난수화를이용한토큰인증의강화 이병천 1) Strengthening of Token Authentication Using Time-based Randomization Byoungcheon Lee 1) 요약 패스워드기반인증 [1] 은사용자의기억에의존하는인증방식으로시스템구현이간단하여컴퓨터산업의태동시부터널리사용되어져왔다. 토큰인증 [2][3] 은서버가발급한특정토큰을소유하고있다는것을보임으로써사용자를인증하는방식으로오늘날의대규모웹서비스환경에서서버의부담을줄여줄수있다는효용성이있어서자동로그인방식으로널리사용되고있다. 그러나이러한인증방식은고정된패스워드나토큰이통신로를통해평문으로반복전달되기때문에도청공격등으로노출될수있는위험이있어서반드시암호화된통신환경에서사용되어야한다. 고정된패스워드인증의취약성을해결하기위해 TOTP(Time-Based One-Time Password)[4] 방식이사용될수있는데이것은매로그인시마다공유되고있는고정된패스워드와현재의시간정보를입력으로하여난수화된로그인정보를생성하여제출하게하는것으로도청공격에대응할수있게하였다. 이논문에서는 TOTP 의난수화방식을일부응용하여현재널리사용되고있는웹서비스에서의고정된토큰인증을시간정보를이용하여난수화할수있는방법을제시한다. 이를이용하면토큰인증정보가시간에따라달라져서도청공격을무력화시킬수있다. 이러한방법론은기존에사용되던 JWT[3] 토큰인증시스템을약간수정하여난수화된자동로그인을제공할수있다는장점이있다. 핵심어 : 패스워드인증, 토큰인증, 난수화, 자동로그인, 도청공격, TOTP Abstract Password-based authentication[1] depends on human s memory and is simple to implement that it had been widely used in the real world from the beginning of computer industry. Token-based authentication[2][3] is an authentication of user by showing that the user possesses a specific token that was issued by the server, and it is widely used to implement auto login in current massive web service environment since it can greatly reduce server s workload. But in these authentication protocols fixed information is sent to the server repeatedly over the communication channel that it is subject to eavesdropping attack, thus these authentication protocols have to be executed over a secure communication channel such as SSL/TLS. To solve these eavesdropping attack TOTP(Time-based One Time Password)[4] protocol can be used which produces randomized authentication information depending on shared password and current time. In this paper we propose a new randomized token-based authentication protocol by using TOTP approach to modified token-based authentication. This protocol can thwart eavesdropping attack since the authentication information changes depending on time. This approach can provide randomized token-based authentication with simple modification of traditional JWT authentication. Keywords : Password-based authentication, Token-based authentication, Randomization, Auto login, Eavesdropping, TOTP Received(February 27, 2017), Review request(february 28, 2017), Review Result(1st: March 15, 2017) Accepted(April 03, 2017), Published(April 30, 2017) 1 Dept. of Information Security, Joongbu Univ., 305, Dongheon-ro, Goyang-si, Gyeonggi-do, 10279, Korea ISSN: JSE Copyright c 2017 SERSC 103

2 Strengthening of Token Authentication Using Time-based Randomization 1. 서론 패스워드기반인증 [1] 은사용자의기억에의존하는인증방식으로시스템구현이간단하여컴퓨터산업의태동시부터널리이용되어왔으며인증의중요성이강조되고있는오늘날까지도컴퓨터시스템의가장기본적인인증방식으로여전히이용되고있다. 이방식은컴퓨터와사용자 ( 소유자 ) 가동일공간에있는경우사용자의접근권한을확인하기위한로컬인증뿐만아니라원격지서버에통신망을통해접속하는사용자의신분을확인하기위한원격인증에도사용되고있다. 고정된기밀정보에의존하는패스워드인증은사전공격 (dictionary attack) 에취약하므로추측하기힘든안전한패스워드를설정하여사용해야하는데패스워드는사용자의기억에의존하므로복잡한패스워드를사용하기어렵다는근본적인한계가있다. 또한안전한패스워드를사용하더라도도청공격 (eavesdropping attack) 에노출될수있으므로반드시 HTTPS, SSL/TLS, SSH 등의암호화된통신채널을이용해야한다. 패스워드인증방식은사용자가매접속시마다패스워드를입력해야하고서버는사용자계정 DB에서패스워드정보를읽어와서비교해야하는데, 오늘날의모바일환경에서는패스워드입력이불편하다는단점이있고, 구글, 페이스북등과같이사용자수가많아고도의분산된서버환경에서운영해야하는대규모웹서비스환경에서는사용자로그인시마다서버측에서는사용자의계정DB에서패스워드정보를읽어와비교해봐야하는부담이있다. 이런이유로사용자가한번패스워드로로그인을하면, 서버는서명된토큰을발급하고, 클라이언트는브라우저의로컬스토리지에토큰을저장하게되며, 사용자의다음접속요청시마다토큰을자동첨부하게하고, 서버는첨부된토큰을확인하여해당사용자로인증해주는토큰인증이널리사용되고있다 [2][3]. 이런토큰인증은서버가사용자의로그인시마다사용자계정DB 를확인할필요가없이사용자가제시하는토큰만으로인증을수행하기때문에확장성에큰장점이있어서현재대규모웹서비스에서자동로그인방식으로널리사용되고있다. 예를들면구글, 페이스북등의대규모웹서비스에서는처음로그인시에만패스워드인증을요구하고토큰을발급하며토큰의유효기간동안에는패스워드인증을요구하지않고도로그인상태를유지하는자동로그인방식을사용하고있다. 그런데패스워드인증및토큰인증방식은고정된인증정보를반복전송하는방식이므로도청공격에취약성이있어서공격자가패스워드또는토큰을획득하게되면사용자의신분으로손쉽게위장할수있게된다. 그러므로이러한인증과정은반드시 HTTPS, SSL/TLS, SSH 등의암호화된통신채널을사용해야한다. 패스워드인증의이러한취약성을해결하기위한방안으로 TOTP[4] 방식이사용될수있는데이것은클라이언트와서버간에공유되고있는고정된패스워드와현재시간정보를함께사용하여인증정보를계산하여제출하는방식으로로그인시마다인증정보가달라지게되어도청공격이쓸모없게된다. 이논문에서는현재널리사용되고있는고정된토큰을반복사용하는토큰인증의도청공격에 104 Copyright c 2017 SERSC

3 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017) 대한취약점을해결하기위하여 TOTP 의방법론을일부적용하여시간에따라인증정보가변경되 는개선된토큰인증프로토콜을제안하고있다. 구체적으로는사용자가패스워드로로그인하게되 면서버가두개의연관된토큰 ( 공개토큰, 비밀토큰 ) 을발행하고사용자가클라이언트에이들두 개의토큰을저장하되, 자동로그인시에는두개의토큰과현재시간정보를함께이용하는해쉬값 을계산하고공개토큰과함께전송하는방법을사용한다. 서버는사용자가제출한공개토큰정보 를이용하여사용자의신분을확인할수있고비밀토큰을쉽게계산할수있으며자동로그인의해 쉬값을검증할수있다. 네트워크를도청하고있는공격자는공개토큰은획득가능하지만비밀토 큰을획득할수없으므로사용자신분으로자동로그인을위장할수없게된다. 2. 기존인증기술 2.1 패스워드인증 사용자의클라이언트컴퓨터와원격지의서버사이에패스워드기반의인증을사용한다고가정하자. 현재유닉스, 리눅스등의운영체제, 기타웹서비스구현에널리사용되고있는기술은다음과같다. 1) 등록단계 : 사용자등록단계에서사용자는자신의신분을증명할수있는정보를제공하고사용할아이디 (ID) 와패스워드 (pass) 를서버에전송한다. 서버는솔트 (salt) 값을난수로생성하고해쉬함수의반복횟수 I를선정하여패스워드의암호화해쉬값을계산하는데표준유닉스서버에서는 crypt() 함수를, 웹서비스에서는 pbkdf2[5], bcrypt[6] 등의함수를이용한다. 서버는사용자계정DB 에아이디와패스워드의암호화해쉬값을저장한다. 2) 로그인단계 : 사용자는로그인입력창에 ID와 pass를입력하고이것을서버에전송한다. 서버는사용자가전송한 pass 값과사용자계정DB 에저장된암호화해쉬값이일치하는지확인하여정보가일치하는경우로그인을허용한다. 등록단계및로그인단계모두사용자의패스워드 (pass) 는평문으로서버에전송되는데이것은네트워크통신을도청하고있는공격자에게쉽게노출되는위험성이있다. 그러므로이러한패스워드기반의인증프로토콜은 HTTPS, SSL/TLS, SSH 등의암호화통신채널을이용하여수행되어야한다. 또한단순한암호화통신채널만을이용하면중간자공격 (man-in-the-middle, MITM) 에취약할수있으므로엄밀하게상호신분확인을거치도록구현되어야한다. 2.2 토큰인증 전통적으로패스워드인증은세션인증과함께사용되어왔다. 즉, 서버에한번패스워드로로그 인을하면같은세션내에서는더이상패스워드인증을요구하지않고서비스를계속사용할수 Copyright c 2017 SERSC 105

4 Strengthening of Token Authentication Using Time-based Randomization 있도록하는것으로사용자편의성제공을위해서는반드시필요하다. 이러한세션인증서비스를제공하기위해서는서버에사용자별로그인세션에대한정보를저장하고매페이지요청시마다서버가세션정보를확인하는방식을사용한다. 그런데사용자수가많아지고대규모분산서비스를필요로하는환경에서는세션정보를서버에저장하고관리하는것이부담이되어확장성에문제가있다. 또한새로운세션으로접속하는경우에는여전히패스워드로그인이필요하다. 이러한문제점을해결하기위해사용되는방식이토큰인증 [2][3] 이다. 토큰인증은위의패스워드인증과연결하여사용자가한번성공적으로로그인하여신분이확인되면서버가서버만이보유하고있는비밀정보를이용하여서명된토큰을생성하여이를사용자에게전송하고사용자는브라우저의로컬스토리지에토큰을저장한다. 사용자브라우저가다음페이지요청시에는저장된토큰을자동첨부하게되고서버는첨부된토큰으로부터사용자정보를획득할수있으며토큰이유효한지확인하여사용자의신분을확인할수있는데, 이방법은서버가사용자계정DB 를참조하지않고도전송되어온토큰만으로인증이가능하다는장점이있다. 이러한토큰인증을이용하면한번만패스워드로그인을하면토큰의유효기간내에서는항상로그인되어있는것처럼서비스를이용할수있는자동로그인기능을제공할수있게된다. 다음의 [ 그림 1] 은 JSON Web Token(JWT)[3] 방식에서의로그인및토큰발급 / 활용과정을보여주고있다. 사용자가브라우저를이용하여서버에패스워드로그인하면, 서버가토큰을발급하고, 이것이사용자브라우저에저장되며, 브라우저가다음페이지요청시토큰을첨부하면, 서버가토큰의서명을검증하여로그인을승인하는다음과같은과정을보여준다. [ 그림 1] JWT의발급및활용 [Fig. 1] Issuing and usage of JWT 1) 클라이언트는서버에게 username, password 를전송하여로그인 2) 서버는로그인된사용자에게 JWT를생성 106 Copyright c 2017 SERSC

5 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017) 3) 서버는 JWT 를사용자에게전송하고클라이언트는 JWT 를브라우저의로컬스토리지에저장 4) 새로운페이지요청시인증헤더에 JWT 를첨부하여전송 5) 서버는 JWT 의서명을검증하고사용자정보를획득하여자동로그인처리 6) 서버는클라이언트에게요청페이지를전송 [ 그림 2] 는 jwt.io 사이트에서설명하는 JWT 토큰의구조를나타낸것이다. 토큰은서버가생성 하는것으로 [ 헤더 ].[ 페이로드 ].[ 서명 ] 의세부분으로구성되며각각 base64 인코딩된스트링이. 으 로연결된스트링이다. 여기에서서명은헤더와페이로드정보를서버가안전하게보유하고있는 비밀값 secret 과함께 HMACSHA256 으로인증코드를생성한것이다. 서명을검증하기위해서는 서버의비밀값 secret 이필요하다. 그러므로 JWT 토큰은서버만이생성가능하고해당서버만이 검증할수있어서서버가사용자의신분을인증하기위해사용된다. 토큰의헤더와페이로드는 base64 인코딩된스트링이므로 base64 디코딩을통해정보를읽어볼수있다. 통신을도청하는공 격자는토큰을 base64 디코딩하여헤더와페이로드에포함된정보를읽어볼수는있으나서명을 위조할수는없다. [ 그림 2] JWT 토큰의구조 [Fig. 2] Structure of JWT token JWT 토큰방식의한가지단점은토큰자체를도청하여획득하고재전송하면타인이사용자의신분을쉽게위장할수있다는것이다. 그러므로 JWT 토큰을이용한인증프로토콜은 HTTPS, Copyright c 2017 SERSC 107

6 Strengthening of Token Authentication Using Time-based Randomization SSL/TLS, SSH 등암호화된채널을통해전송되어야하는데토큰이모든페이지요청에첨부되므로사용자가서버로전송하는모든요청이암호화되어야한다는것을의미한다. 그러므로현재구글, 페이스북등의대규모웹서비스들은전체통신채널을암호화된 HTTPS 로운영하고있는실정이다. 아울러브라우저에저장되는토큰은클라이언트해킹에의해누출될수있으므로안전한장소에저장되어야한다. 브라우저프로그램에서토큰저장에이용하는로컬스토리지는접속사이트별로독립된샌드박스모델로운영되므로악성코드등의타프로그램에의해누출되기는어렵지만공격자가사용자의 PC를직접손에넣은것과같은환경으로해킹한다면브라우저로부터해당토큰을쉽게복사해낼수있어서사용자의패스워드가브라우저에저장된것과같은위험성을가지고있다. 그러므로사용자는토큰의안전한저장과관리, 시스템의접근제어관리에많은신경을써야한다. 한편토큰인증에암호화된통신채널을사용한다고해도공격자가중간자공격 (Man-in-the-middle, MITM) 으로세션을가로채서정보를획득할수있는위험성이있다. 예를들면공격자가 SSL 기능을제공하는프록시프로그램을이용하여사용자및서버와별개의 SSL 세션을맺어암호화통신을중개하고사용자로그인정보를획득할수있는데 [7], 이를방지하기위해서는클라이언트가서버의인증서를엄밀하게검증해야한다. 2.3 TOTP 고정된패스워드를반복사용하는패스워드인증은클라이언트가서버에전송하는값이항상일정하므로공격자가이것을도청하여획득하고재전송하면사용자의신분을쉽게위장할수있다는문제가있다. 이런문제를해결하기위해제시된것이시간기반일회용패스워드 (Time-based One Time password)[4] 방식으로클라이언트와서버가동일한비밀키 K를공유하고있는경우현재의시간정보와함께이용하여난수화된일회용패스워드를생성하고이를이용하여인증하도록할수있다. 일회용패스워드는다음과같이계산된다. 여기서 X는시간간격을초단위로나타낸것이며기본값은 30초이다. 는유닉스시간의시점을, 는현재시간을나타낸다. 그러므로 T는현재시간을유닉스시간단위로나타낸정수를시간간격 X로나누어 floor 함수를처리한정수를나타낸다. K는클라이언트와서버가공유하고있는비밀키를나타낸다. HOTP 함수는 HMAC 를이용하여 K와 T를입력으로인증코드를계산하는함수이다. 이방식에서는클라이언트와서버가동일한비밀키 K를공유하고있어서현재시간 T를이용하 108 Copyright c 2017 SERSC

7 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017) 여동일한 TOTP 값을계산할수있으므로인증가능하다. TOTP 값은시간간격 X 가지날때마다 새로운값으로바뀌게되므로통신을도청하고있는공격자는현재의인증코드를도청하여획득하 더라도시간간격 X 가지나면더이상사용자의신분을위장할수없게된다. 이러한 TOTP 방식은클라이언트와서버가동일한비밀정보를공유하고있는환경에서사용할 수있다. 그러나패스워드인증방식에서는사용자가입력하는비밀번호 (pass) 가서버에서는솔트 와반복횟수등의추가정보를이용하여암호화해쉬값으로변경되어저장되며비밀번호자체는저 장되지않는다. 이것은서버의사용자계정 DB 가공격자에게노출될경우에도사용자의비밀번호 정보를보호하기위한조치이다. 그러므로클라이언트와서버는동일한정보를공유하고있는상 황이아니어서 TOTP 방식이현재의패스워드인증에직접적용되지는않고있다. 3. 토큰인증의난수화 본연구의목적은 JWT의고정된토큰을사용하는인증방식이도청공격에취약하므로이것을 TOTP에서와같이시간에따라인증정보가난수화되는방식으로개선하고자하는것이다. 그런데토큰인증방식에서는서버가사용자계정DB 를검색하지않고도클라이언트가서버에게전송해주는토큰을이용하여사용자정보를확인할수있어야한다. 그런데이를위해토큰을그대로전송하면공격자가토큰을획득하여재전송함으로써사용자로쉽게위장할수있게되는상호모순적인상황에직면하게된다. 이문제를해결하기위해여기에서는서버가사용자에게상호연관성을가진두개의토큰 ( 공개토큰, 비밀토큰 ) 을발급해주는방식을고안하였다. 공개토큰은서버가사용자정보를쉽게확인할수있도록서버에게전송하는토큰이며비밀토큰은인증정보를계산하는데는사용하지만서버에게는전송하지않는토큰을말한다. 서버는공개토큰으로부터비밀토큰을계산할수있어야인증정보를검증할수있다. 자세한로그인및토큰발급 / 활용프로토콜은다음과같다. 3.1 사용자등록 사용자는브라우저에 ID, pass를입력하고이것을서버에전송하며사용자등록을요청한다. 서버는패스워드해쉬값 를계산한다. 여기서 pbkdf2[5] 는패스워드기반키생성함수이며사용자의입력패스워드 pass와난수로선택하는 salt, 반복횟수 I를입력으로패스워드의암호화된해쉬값을계산한다. 서버는사용자계정 DB에 <ID, hpass> 를저장한다. 3.2 사용자로그인 사용자는브라우저의로그인창에 ID, pass 를입력하고이것을서버에전송한다. 서버는사용자 Copyright c 2017 SERSC 109

8 Strengthening of Token Authentication Using Time-based Randomization 계정 DB에서 ID, hpass 를읽어오고사용자가전송한 pass가일치하는지확인한다. 사용자의로그인이확인되면서버는다음과같이토큰을발급한다. JWT 토큰은 [H].[P].[S] 와같이헤더 H, 페이로드 P, 서명 S의 3부분으로구성되는데여기에서는토큰의서명을 t로표시하고이것의생성과정을함수 HMAC 을이용하여편의상다음과같이표기하기로하자. sec 여기서함수 HMAC 은서명생성함수이며공개가능한 H와 P를입력으로받아공개되지않는서버의비밀값 secret을이용하여토큰의서명 t를생성한다. 사용자로그인이확인되면서버는다음과같이연관된두개의토큰 ( 공개토큰, 비밀토큰 ) 을생성하여브라우저에전송하며브라우저는이들을브라우저의로컬스토리지에저장한다. sec : 공개토큰 sec : 비밀토큰여기서 payload 에포함되는정보는 ID( 사용자의 ID), M( 사용자의기기정보 ), ( 토큰의유효기간 ) 등이며마지막에포함된 0/1은단순한플래그정보이다. 즉두개의토큰은플래그이외에동일한정보를기반으로생성된것이다. 여기서사용자의기기정보 M을추가한것은사용자가여러대의기기들을사용할경우서로다른토큰을생성하여이용하도록하기위한구분정보이다. 두개의연관토큰을생성하는방식은이이외에도여러가지변형된방식이사용될수있는데서버가제공된공개토큰정보로부터비밀토큰을자동으로쉽게계산할수있는방식이면된다. 3.3 자동로그인 사용자가로그인된상태에서다른페이지를요청할경우브라우저는두개의토큰 과현재시간 을이용하여임시토큰 를다음과같이계산한다. 그리고페이지요청패킷에 를덧붙여서버에전송한다. 그러면서버는전송된공개토큰 의서명을검증하고페이로드를디코딩하여사용자의정보를확인하고이를이용하여비밀토큰 을계산한다. 이후임시토큰 를같은수식을이용하여계산하고사용자로부터전송된값과같은지, T가현재시간인지확인하여사용자의유효성을검증한다. 이러한과정은브라우저에의해서자동적으로수행되므로사용자는자동로그인되어있는것처럼통신을이용할수있다. 이 110 Copyright c 2017 SERSC

9 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017) 러한자동로그인과정은암호화되지않은일반통신채널을통해서수행될수있다. 3.4 임시토큰을이용한메시지인증및암호화 이러한방식으로생성되는임시토큰 는인증된사용자의브라우저와서버사이에공유되는난수화된비밀정보로생각할수있다. 비밀정보를직접전송함으로써자동로그인에이용할수도있지만, 이것을전송하지않고메시지인증및암호화에이용할수도있다. 예를들어클라이언트가서버에게보내는메시지 을인증하기위해서는메시지인증코드를 와같이생성하여 을전송할수있다. 이를수신한서버는먼저임시토큰 을계산한후 의유효성을검증할수있다. 클라이언트가서버에게보내는메시지자체를암호화할필요가있는경우에는임시토큰 을공유된비밀키로사용하여메시지를암호화하여전송할수있고서버는임시토큰 을계산한후복호화할수있다. SSL/TLS 를이용한암호화, 인증과비교할때 SSL/TLS 방식은클라이언트와서버가인증세션을맺고유지해야하는부담이있으며특히서버측면에서는많은사용자들과의인증세션정보를관리해야할필요가있다. 반면, 임시토큰을이용한방식은평상시에비암호화통신을하다가필요한경우에만암호화, 메시지인증을이용할수있고서버는세션정보를유지할필요가없는비접속형 (stateless) 프로토콜로서의장점이있다. 4. 분석 사용자의브라우저에는서버가생성하여제공한공개토큰 와비밀토큰 이저장되어있으며현재시간이반영된임시토큰 을계산할수있다. 서버는사용자로부터전송된공개토큰 를이용하여사용자의정보를확인할수있고자신의서명을확인할수있다. 서버는같은사용자정보를이용하여비밀토큰 을자동으로계산할수있고이것을이용하여임시토큰 를똑같은수식을이용하여계산할수있게된다. 비밀토큰 은서버의비밀값 secret가있어야계산할수있으므로공격자들은공개토큰 을도청하더라도이로부터비밀토큰 을계산할수없고임시토큰 값을계산할수없다. 공격자가현재의임시토큰을도청하여획득하더라도이것은시간간격 X가지나면새로운값으로바뀌므로사용자신분으로의자동로그인에사용할수없게되고새로운패스워드로그인을요청받게될것이다. 현재대부분의웹서비스들이토큰을이용한자동로그인을안전하게사용하기위해암호화된통신채널을사용하고있다. 이논문에서제시된방법론을이용하면토큰인증의인증정보가시간에따라계속바뀌게되므로토큰의노출에대한위험성이없어져서암호화된통신채널을사용하지않고도자동로그인을안전하게사용할수있게된다. Copyright c 2017 SERSC 111

10 Strengthening of Token Authentication Using Time-based Randomization 비밀토큰 이공격자에게노출된다면공격자가사용자신분으로자동로그인을위장할수있게된다. 비밀토큰은브라우저의로컬스토리지에안전하게저장되어네트워크공격자에대해서는안전하다고볼수있지만사용자의클라이언트컴퓨터자체가공격당하여공격자가직접조작할수있는수준이되면비밀토큰을복사해낼수있게된다. 그러므로사용자는클라이언트컴퓨터를안전하게관리하기위한노력을기울여야한다. 효율성측면에서비교해볼때 HTTPS 방식의암호화된통신채널을이용하는것은모든패킷의정보를암복호화해야한다는계산량측면의부담과함께서버가접속된사용자별 SSL 세션을계속유지해야한다는세션관리측면의부담을가지게된다. 반면제안된자동로그인방식은토큰의계산과검증이라는계산량을부담해야하지만서버측면에서는 SSL 세션을관리할필요가없어서 HTTP의비접속형 (stateless) 프로토콜의장점을그대로살릴수있다. 5. 결론 이논문에서는패스워드인증과 JWT 토큰을이용한자동로그인이고정된인증정보를반복전송함으로인해도청공격에취약하고, 이런문제때문에항상암호화된통신채널을이용해야하는제약이있음을보였다. 이를개선하여암호화된통신채널을사용하지않고도안전한인증을제공하기위하여시간정보를이용한난수화된토큰인증프로토콜을제시하였다. 이방법론을이용하면토큰인증의인증정보가시간에따라계속바뀌게되므로도청을통해토큰을획득하는것이쓸모없어져서암호화된통신채널을사용하지않고도자동로그인을안전하게사용할수있게된다. 현재대부분의대규모웹서비스들이토큰을이용한자동로그인을암호화된통신채널을통해사용하고있는현실에비추어볼때이방법론은웹서비스에서사용자인증의안전성과효율성을보장할수있는획기적인개선책을제시한것으로볼수있다. 한편패스워드를이용한초기로그인에서는여전히패스워드를서버로평문으로전송하는방식을사용하기때문에암호화된통신채널을사용해야한다. 현재사용자인증의안전성향상을위해인증서기반의전자서명을이용하는사용자인증이널리사용되고있는데, 개인키의안전한저장을위해개인키를패스워드로암호화하여저장하고있고, 해킹위협에대항하기위해보안토큰등하드웨어보안모듈에저장할것을요구하고있다. 그러나개인키를사용하기위해서는여전히패스워드를입력해야하는단점이있다. 인증의취약성이사용자기억에의존하는패스워드에있으므로패스워드의존성을줄이는것이근본적인목표가되고있는데 FIDO[8] 에서는안전한하드웨어에개인키를저장하면서도생체인증을이용한로컬인증, 전자서명을이용한원격인증이안전하게결합된방식으로인증이진화하고있다. 즉, 생체인증을이용하여소유기기에대한로컬인증에성공하면소유기기가전자서명을이용한원격인증까지한번에수행되도록하는것이다. FIDO를이용하면서버에대한사용자초기인증을패스워드에의존하지않고생체인증을이용하여안전하게수행할수있다. 그런데초기인증이후의자동로그인은웹서비스의효율성보장을위해여전 112 Copyright c 2017 SERSC

11 보안공학연구논문지 Journal of Security Engineering Vol.14, No.2 (2017) 히필요한기술이며이것의안전성을높이는것이중요하다. 본논문에서제안한난수화된자동로 그인방식은암호화된통신채널을사용하지않고도자동로그인을안전하게수행할수있기때문에 FIDO 기술과함께유용하게적용될수있다고생각된다. References [1] L. O Gorman, Comparing Passwords, Tokens, and Biometrics for User Authentication, Proceedings of the IEEE. (2003), Vol.91, No.12, pp [2] RFC7519, JSON Web Token, Feb. 27 (2017). [3] JSON Web Token, Feb. 27 (2017). [4] RFC6238, TOTP: Time-Based One-Time Password Algorithm, Feb. 27 (2017). [5] PKCS #5: Password-Based Cryptography Specification Version 2.0, Feb. 27 (2017). [6] bcrypt, Feb. 27 (2017). [7] Woojoong Ji, Kyungmoon Lee, Byoungcheon Le, SSL Proxy MITM Attacks Against Insecure HTTPS Authentication System, Conference on Information Security and Cryptography 2016, KIISC (2016). [8] FIDO alliance, Feb. 27 (2017). Copyright c 2017 SERSC 113

12 Strengthening of Token Authentication Using Time-based Randomization 114 Copyright c 2017 SERSC