KR20170111809A - 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법 - Google Patents

대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법 Download PDF

Info

Publication number
KR20170111809A
KR20170111809A KR1020160037924A KR20160037924A KR20170111809A KR 20170111809 A KR20170111809 A KR 20170111809A KR 1020160037924 A KR1020160037924 A KR 1020160037924A KR 20160037924 A KR20160037924 A KR 20160037924A KR 20170111809 A KR20170111809 A KR 20170111809A
Authority
KR
South Korea
Prior art keywords
key
server
terminal
authentication
token
Prior art date
Application number
KR1020160037924A
Other languages
English (en)
Inventor
유한나
강혜진
박성철
박종하
이종건
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020160037924A priority Critical patent/KR20170111809A/ko
Publication of KR20170111809A publication Critical patent/KR20170111809A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법이 제공된다. 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법은 단말기가 자신의 비밀키로 암호화하여 생성된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 암호화하여 서버로 서비스를 요청하는 단계; 서버가 암호화된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 복호화하고, 공유키 및 동적키에 의해 생성된 세션키로 암호화하며, 서버 자신의 비밀키로 암호화하여 생성된 단말 인증용 토큰을 생성된 동적키로 암호화하여 단말기로 인증을 요청하는 단계; 단말기가 암호화된 서버 인증용 토큰을 공유키 및 동적키를 이용하여 생성된 세션키로 복호화하고, 단말기 자신의 비밀키로 복호화하여 서버를 인증하는 단계; 암호화된 단말 인증용 토큰을 동적키로 복호화하고, 세션키로 암호화하며, 서버로 전송하여 단말 인증을 요청하는 단계; 및 서버가 암호화된 단말 인증용 토큰을 동적키로 복호화하고, 서버 자신의 비밀키로 복호화하여 단말기를 인증하는 단계;를 포함한다.

Description

대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법{Bidirectional authentication method using security token based on symmetric key}
본 발명은 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법에 관한 것으로, 특히, 서버와 단말기 사이에 직접적으로 암호화키를 전달하지 않고 보안 토큰을 이용하여 인증을 수행하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법에 관한 것이다.
빠른 속도의 대칭키 인증 방식을 제공하는 커버로스(Keberos)는 인증 서버와 티켓 발급 서버, 서비스 서버 사이에 신뢰된 키가 공유되어 있다는 것을 전제로 인증을 수행한다. 그러나, 이 방식은 일방향 인증만을 수행하므로 서버를 위장한 공격에 매우 취약한 문제점이 있다.
한편, 보안성을 향상시키기 위한 양방향 인증을 제공하는 SSL(Secure Socket Layer) 방식의 경우, 비대칭키 기반의 인증 방식으로 대칭키 기반에 비하여 속도가 느리다. 또한, 이 방식은 제3의 인증 기관을 통해 서버를 인증하는 방식이므로, 인증 기관을 신뢰하지 못하면 안정적으로 인증을 수행할 수 없다.
따라서, 사물인터넷(IoT) 환경과 같이 사용자가 직접 인증서나 인증기관을 확인할 수 없고 사양이 낮은 디바이스도 원활하게 인증하기 위해서, 대칭키 기반의 양방향 인증 방식이 요구되고 있다.
KR 1483895 B
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명의 일 실시예는 인증 서버나 인증 기관을 신뢰하지 않더라도 안전한 인증을 수행할 수 있는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 제공하고자 한다.
또한, 본 발명은 보안 토큰을 기반으로 서버와 단말기 사이의 양방향 인증을 이용하여 페이크 서버에 의한 위장 공격을 차단하여 안정성을 향상시킬 수 있는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 제공하고자 한다.
또한, 본 발명은 양방향 인증을 대칭키 기반으로 구현하여 처리 속도를 향상시킬 수 있는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명의 일 측면에 따르면, 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법이 제공된다. 상기 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법은 단말기가 자신의 비밀키로 암호화하여 생성된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 암호화하고 서버로 전송하여 서비스를 요청하는 단계; 상기 서버가 상기 단말기로부터 수신된 서버 인증용 토큰을 상기 공유키에 의해 생성된 동적키로 복호화한 후, 상기 공유키 및 상기 동적키에 의해 생성된 세션키로 암호화하며, 상기 서버 자신의 비밀키로 암호화하여 생성된 단말 인증용 토큰을 상기 생성된 동적키로 암호화하여 상기 세션키로 암호화된 서버 인증용 토큰과 함께 상기 단말기로 전송하여 서버 인증을 요청하는 단계; 상기 단말기가 상기 서버로부터 수신된 서버 인증용 토큰을 상기 공유키 및 상기 동적키를 이용하여 생성된 세션키로 복호화한 후, 상기 단말기 자신의 비밀키로 복호화하여 상기 서버를 인증하는 단계; 상기 단말기가 상기 서버로부터 수신된 단말 인증용 토큰을 상기 동적키로 복호화한 후, 상기 생성된 세션키로 암호화하며, 상기 서버로 전송하여 단말 인증을 요청하는 단계; 및 상기 서버가 상기 단말기로부터 수신된 단말 인증용 토큰을 상기 동적키로 복호화한 후, 상기 서버 자신의 비밀키로 복호화하여 상기 단말기를 인증하는 단계;를 포함한다.
일 실시예에서, 상기 동적키는 상기 서버와 상기 단말기 사이에 공유된 동적키 생성 알고리즘 및 공유키에 의해 생성될 수 있다.
일 실시예에서, 상기 서비스를 요청하는 단계 및 상기 단말 인증을 요청하는 단계는 서로 상이한 난수를 상기 동적키로 암호화하여 전송할 수 있다.
일 실시예에서, 상기 세션키는 상기 서로 상이한 난수를 더 이용하여 생성될 수 있다.
일 실시예에서, 상기 양방향 인증 방법은 상기 서비스 요청시 상기 단말기의 ID를 전송하는 단계; 상기 단말 인증 요청시 상기 단말기의 ID를 상기 동적키로 암호화하여 전송하는 단계; 및 상기 암호화된 단말기의 ID를 복호화하여 상기 서버를 인증하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 공유키는 인증요청자 보안키(ARSK)일 수 있다.
일 실시예에서, 상기 단말기가 사물인터넷(IoT) 디바이스인 경우, 상기 인증요청자 보안키(ARSK)는 상기 서버 및 상기 단말기에 저장되어 공유될 수 있다.
일 실시예에서, 상기 단말기가 사용자 단말기인 경우, 상기 인증요청자 보안키(ARSK)는 상기 서버에만 저장되며 상기 단말기에는 저장되지 않고 지식기반으로 상기 동적키 생성시 입력될 수 있다.
일 실시예에서, 상기 인증요청자 보안키(ARSK)는 비밀번호 및 지문 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 서버는 서비스 서버와 인증 서버를 포함하며, 상기 단계들은 상기 인증 서버와 상기 단말기 사이에서 수행되고, 상기 단말 인증용 토큰은 상기 인증 서버와 상기 서비스 서버 사이에 공유된 제2공유키로 암호화되어 생성되며, 상기 양방향 인증 방법은 상기 단말기가 상기 복호화된 상기 단말 인증용 토큰을 상기 생성된 세션키로 암호화하고, 상기 서비스 서버로 전송하여 접속을 요청하는 단계; 및 상기 서비스 서버가 상기 단말기로부터 수신된 단말 인증용 토큰을 상기 인증 서버로부터 수신된 세션키로 복호화한 후, 상기 제2공유키로 복호화하여 상기 단말기를 인증하는 단계;를 더 포함할 수 있다.
일 실시예에서, 상기 양방향 인증 방법은 상기 서비스 서버가 상기 인증 서버로 상기 세션키를 요청하는 단계; 및 상기 인증 서버가 상기 세션키를 상기 제2공유키로 암호화하여 상기 서비스 서버로 전송하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 양방향 인증 방법은 상기 접속 요청시 상기 세션키 및 상기 단말 인증용 토큰에 포함된 제3난수에 의해 생성된 제2세션키로 암호화된 검증 정보를 상기 서비스 서버로 전송하는 단계; 상기 서비스 서버가 상기 복호화된 단말 인증용 토큰으로부터 상기 제3난수를 획득하고, 상기 세션키 및 상기 제3난수로 상기 제2세션키를 생성하고, 상기 검증 정보를 상기 제2세션키로 복호화하는 단계; 상기 복호화된 검증 정보로부터 연산된 정보를 상기 제2세션키로 상기 제2세션키로 암호화하여 상기 단말기로 전송하는 단계; 및 상기 단말기가 상기 연산된 정보를 복호화하여 상기 서비스 서버를 확인하는 단계;를 더 포함할 수 있다.
본 발명의 다른 측면에 따르면, 비밀키로 암호화하여 생성된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 암호화하고 서버로 전송하여 서비스를 요청하는 단계; 상기 요청에 따라 상기 서버로부터 세션키로 암호화된 서버 인증용 토큰을 수신하고, 상기 공유키 및 상기 생성된 동적키를 이용하여 상기 세션키를 생성하며, 상기 수신된 서버 인증용 토큰을 상기 생성된 세션키로 복호화한 후, 상기 비밀키로 복호화하여 상기 서버를 인증하는 단계; 및 상기 서버로부터 암호화된 단말 인증용 토큰을 수신하여 상기 동적키로 복호화한 후, 상기 세션키로 암호화하며, 상기 서버가 단말기를 인증하도록 상기 암호화된 단말 인증용 토큰을 상기 서버로 전송하는 단계;를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법이 제공된다.
본 발명의 또 다른 측면에 따르면, 단말기로부터 서비스 요청에 따라 수신된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 복호화한 후, 상기 공유키 및 상기 동적키에 의해 생성된 세션키로 암호화하며, 비밀키로 암호화하여 생성된 단말 인증용 토큰을 상기 생성된 동적키로 암호화하여 상기 세션키로 암호화된 서버 인증용 토큰과 함께 상기 단말기로 전송하여 서버 인증을 요청하는 단계; 및 상기 단말기에서 서버 인증 후 단말 인증 요청에 따라 상기 세션키로 암호화된 단말 인증용 토큰을 수신하여 상기 생성된 동적키로 복호화한 후, 상기 비밀키로 복호화하여 상기 단말기를 인증하는 단계;를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법이 제공된다.
본 발명의 일 실시예에 따르면, 대칭키 기반으로 보안 토큰을 이용한 양방향 인증시 상대적으로 취약한 네트워크를 통하여 암호화 키 자체를 전송하지 않음으로써, 페이크(fake) 서버에 의한 위장 공격을 원천적으로 차단하므로, 인증 서버나 인증 기관을 별도로 이용하지 않거나 신뢰하지 않는 경우에도 인증의 안정성을 향상시킬 수 있다.
또한, 본 발명은 대칭키 기반으로 연산 속도를 감소시킴으로써 양방향 인증시 처리속도를 빠르게 하므로, 고사양 단말뿐 아니라 저사양 단말까지 인증이 가능하여 사물인터넷(IoT) 환경에 적합한 인증 방식을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템의 일례를 나타낸 구성도이다.
도 2는 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 위한 등록 절차를 나타낸 순서도이다.
도 3은 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 나타낸 순서도이다.
도 4는 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템의 다른예를 나타낸 구성도이다.
도 5는 본 발명의 다른 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 나타낸 순서도이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조부호를 붙였다.
도 1은 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템의 일례를 나타낸 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템은 단말기(10) 및 서버(20)를 포함한다.
단말기(10)는 서버(20)에 접속하여 서버(20)에 대한 인증을 수행할 수 있다. 이러한 단말기(10)는 사용자가 휴대하는 스마트폰, 휴대폰 또는 기타 휴대용 기기 등과 같은 사용자 단말기뿐만 아니라, 서버(20)와 통신을 수행하는 비콘, 게이트웨이 또는 통신 기능을 구비한 기타 전자기기 등과 같은 사물인터넷(IoT) 디바이스일 수 있다.
서버(20)는 단말기(10)의 서비스 요청에 따라 단말기(10)의 인증을 수행할 수 있다. 이러한 서버(20)는 인증 기능과 서비스 제공 기능을 모두 갖는 서버일 수 있다. 즉, 서버(20)는 단말기(10)에 대한 인증을 수행하는 동시에 단말기(10)에서 요청하는 서비스를 제공할 수 있다.
이와 같은 단말기(10)와 서버(20) 사이에 양방향이 인증이 수행될 수 있다. 즉, 단말기(10)는 서버(20)에 대한 인증을 수행하고 서버(20)는 단말기(10)에 대한 인증을 수행함으로써, 양측의 상호 인증이 모두 완료된 경우에만 정상적인 서비스를 제공할 수 있다.
이때, 단말기(10) 및 서버(20) 각각은 사전 공유된 동적키 생성 알고리즘 및 초기에 등록된 인증요청자 보안키(ARSK; Authentication Requestor Security Key)를 이용하여 동적키(Key_A)를 생성하고, 서로 송수신하는 난수(R1,R2)에 따른 세션키(Key_B)를 이용하여 상호 인증을 수행할 수 있다.
여기서, 단말기(10)와 서버(20) 사이는 공중망, 사설망 또는 인트라넷과 같은 통신 네트워크를 통하여 연결될 수 있다. 이때, 단말기(10)와 서버(20)는 상호 인증을 위해서 암호화키를 직접적으로 서로 전달하지 않고, 보안 토큰을 이용하므로, 암호화키의 유출을 사전에 방지할 수 있다.
즉, 단말기(10)와 서버(20) 사이에 송수신되는 데이터가 유출되더라도 서로 각각 생성한 동적키(Key_A)를 모르거나, 초기에 등록된 공유키(ARSK)를 모르면 세션키(Key_B)를 알 수 없어 중간자 공격으로부터 안정성을 보장할 수 있다.
도 2는 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 위한 등록 절차를 나타낸 순서도이다.
도 2에 도시된 바와 같이, 단말기(10)는 서버(20)와 양방향 인증을 위해 사전에 공유키(ARSK)를 등록한다.
먼저, 단말기(10)가 서버(20)로 접속을 요청한다(단계 S101).
이와 동시에, 단말기(10) 및 서버(20)는 동적키 생성 알고리즘을 공유한다(단계 S102). 예를 들면, 단말기(10)가 서버(20)에 접속을 요청하면, 프로그램 설치 등을 통하여 동일한 동적키 생성 알고리즘을 공유할 수 있다. 또한, 이러한 동적키 생성 알고리즘은 단말기(10)와 서버(20) 각각에 사전에 설치될 수 있다.
즉, 이와 같이 단말기(10)가 서버(20)에 등록하는 과정은 온라인을 통하여 수행할 수도 있지만, 오프라인을 통하여 수행할 수도 있다.
여기서, 서버(20)는 사용자 인증을 통하여 단말기의 인증을 수행한다(단계 S103). 이때, 단말기(10)는 인증요청자의 정보로서 인증요청자 보안키(ARSK)를 서버(20)로 전송할 수 있다(단계 S104).
이러한 인증요청자 보안키(ARSK)는 단말기(10)에서 생성되는 보안키일 수 있지만, 이에 한정되지 않고 지식기반의 정보일 수 있다. 특히, 단말기(10)가 사용자 단말기인 경우, 사용자에 의해 직접 입력가능한 비밀번호 및 지문 등과 같은 지식기반 정보일 수 있다.
서버(20)는 인증요청자 보안키(ARSK)를 공유키로서 저장한다(단계 S105).
이때, 단말기(10)가 비콘 또는 게이트웨이와 같은 사물인터넷(IoT) 디바이스인 경우, 단말기(10)는 인증요청자 보안키(ARSK)를 저장할 수 있다(단계 S106).
대안적으로, 단말기(10)가 스마트폰 또는 휴대기기와 같은 사용자 단말인 경우, 인증요청자 보안키(ARSK)는 단말기(10)에 저장되지 않고 지식기반으로 이용될 수 있다. 즉, 단말기(10)는 서버(20)에 등록시 또는 인증을 위한 동적키(Key_A) 생성시 인증요청자 보안키(ARSK)를 사용자에 의해 직접 입력받을 수 있다.
이와 같이, 단말기(10)가 서버(20)에 최초 등록시 동적키 생성 알고리즘 및 인증요청자 보안키(ARSK)는 단말기(10)와 서버(20) 사이에서 공유될 수 있다.
도 3은 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 나타낸 순서도이다.
도 3에 도시된 바와 같이, 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법(200)은 별도의 인증 서버가 필요없이 서버(20)에서 인증 기능과 서비스 제공 기능을 갖는 경우의 인증 방법이다.
먼저, 단말기(10)가 서버(20)와 공유된 동적키 생성 알고리즘에 의해 동적키(Key_A)를 생성한다(단계 S201). 이때, 단말기(10)는 공유키(ARSK)로 동적키(Key_A)를 생성할 수 있다. 여기서, 공유키(ARSK)가 지식기반인 경우, 단말기(10)는 사용자로부터 공유키(ARSK)를 입력받을 수 있다. 또한, 공유키(ARSK)가 지식기반이 아닌 경우, 즉, 최초 등록시 저장된 경우, 단말기(10)는 저장된 공유키(ARSK)를 이용할 수 있다.
또한, 단말기(10)는 서버 인증용 토큰(Token_A)을 생성한다(단계 S202). 이때, 단말기(10)는 자신의 비밀키로 암호화하여 서버 인증용 토큰(Token_A)을 생성할 수 있다.
여기서, 비밀키는 단말기(10) 자체적으로 암호화 알고리즘에 의해 일정 길이로 생성될 수 있다. 예를 들면, 비밀번호나 지문 등과 같이 입력된 정보를 해쉬(Hash) 알고리즘 연산을 하여 일정 길이의 비밀키로 생성할 수 있다.
또한, 생성되는 서버 인증용 토큰(Token_A)은 토큰 만기일, 서버 정보, 시퀀스 넘버(Sequence Number), 및 HMAC(Hashed Message Authentication Code) 연산을 수행한 토큰 인증자(TA1)를 포함할 수 있지만, 이에 한정되지 않는다.
한편, HAMC 연산은 토큰 내용의 내용이 변경되지 않았는지에 대한 무결성을 검증하기 위한 연산이며, 토큰 인증자(TA1)는 HMAC 연산을 수행하여 산출된 결과이다. 이때, 데이터의 무결성 검증 방법은 MAC 값 비교에 의해 수행되는데, 예를 들면, 토큰의 내용을 HMAC 연산을 수행한 것과 토큰 인증자(TA1)를 비교하고, 이후, 자신이 보냈던 MAC과 토큰 인증자(TA1)을 비교함으로써 수행될 수 있다. 이와 같은 서버 인증용 토큰(Token_A)의 실제 정보는 단말기(10) 자신의 비밀키에 의해 암호화되기 때문에, 서버(20)에서도 실제 정보는 알 수 없고, 단말기(10)만이 실제 정보를 검증할 수 있다. 따라서, 본 실시예의 양방향 인증 방법(200)은 네트워크상의 중간자 공격으로부터 안정성을 보장할 수 있다.
선택적으로, 단말기(10)는 세션키(Key_B) 생성을 위한 제1난수(R1)를 생성할 수 있다.
이어서, 단말기(10)는 생성된 서버 인증용 토큰(Token_A)을 공유키(ARSK)에 의해 생성된 동적키(Key_A)로 암호화하여 서버(20)로 서비스를 요청한다(단계 S203). 즉, 단말기(10)는 서버(20)로 서비스 요청시 동적키(Key_A)로 암호화된 서버 인증용 토큰(Token_A)을 전송한다. 여기서, 단말기(10)는 자신의 ID를 서버(20)로 전송할 수 있다.
이때, 제1난수(R1)가 생성된 경우, 단말기(10)는 제1난수(R1)를 동적키(Key_A)로 암호화하여 서버(20)로 전송할 수 있다.
이와 같이, 서버 인증용 토큰(Token_A)은 단말기(10)의 비밀키와 동적키(Key_A)에 의해 이중 암호화됨으로써, 네트워크상에서 서버 인증용 토큰(Token_A)이 가로채기되는 경우에도, 실질적으로 해당 내용을 확인할 수 없기 때문에, 불법의 중간자 공격을 차단할 수 있다.
서비스 요청을 수신한 서버(20)는 단말기(10)와 동일한 동적키 생성 알고리즘을 이용하여 서버(20)와 동일한 동적키(Key_A)를 생성한다(단계 S204). 이때, 서버(20)는 공유키(ARSK)로 동적키(Key_A)를 생성할 수 있다. 여기서, 공유키(ARSK)가 지식기반인 경우, 서버(20)는 사용자로부터 공유키(ARSK)를 입력받아 최초에 등록한 공유키(ARSK)와 비교하여 적정성을 확인한 후 사용할 수 있다. 또한, 공유키(ARSK)가 지식기반이 아닌 경우, 서버(20)는 최초 등록시 저장된 공유키(ARSK)를 이용할 수 있다.
이어서, 서버(20)는 단말기(10)로부터 수신된 서버 인증용 토큰(Token_A)을 생성된 동적키(Key_A)로 복호화한다(단계 S205). 여기서, 서버(20)는 동적키(Key_A)로 서버 인증용 토큰(Token_A)을 복호화하지만, 서버 인증용 토큰(Token_A)은 단말기(10)의 비밀키로 암호화된 상태이므로 서버(20)는 서버 인증용 토큰(Token_A)의 실제 정보를 알 수 없다.
이때, 단말기(10)가 제1난수(R1)를 생성하여 전송한 경우, 서버(20)는 동적키(Key_A)로 제1난수(R1)를 복호화할 수 있다.
이와 같은 동적키(Key_A) 및 공유키(ARSK)를 이용하여 서버(20)는 세션키(Key_B)를 생성한다(단계 S206). 여기서, 세션키(Key_B)는 서버(20)가 단말기(10)로부터 수신한 서버 인증용 토큰(Token_A)을 암호화하기 위한 키이다.
선택적으로, 서버(20)는 단말기(10) 및 서버(20)에서 각각 제1난수(R1) 및 제2난수(R2)를 생성한 경우, 복호화된 제1난수(R1)와 생성된 제2난수(R2)를 동적키(Key_A) 및 공유키(ARSK) 함께 이용하여 세션키(Key_B)를 생성할 수 있다. 여기서, 제1난수(R1)와 제2난수(R2)는 서로 상이한 난수일 수 있다.
이어서, 서버(20)는 단말 인증용 토큰(Token_B)을 생성한다(단계 S207). 이때, 서버(20)는 자신의 비밀키로 암호화하여 단말 인증용 토큰(Token_B)을 생성할 수 있다.
이러한 비밀키는 서버(20) 자체적으로 암호화 알고리즘에 의해 일정 길이로 생성될 수 있다. 예를 들면, 예를 들면, 비밀번호나 지문 등과 같이 입력된 정보를 해쉬(Hash) 알고리즘 연산을 하여 일정 길이의 비밀키로 생성할 수 있다.
또한, 생성되는 단말 인증용 토큰(Token_B)은 토큰 만기일, 인증요청자 ID, 접근 모드, 시퀀스 넘버(Sequence Number), 및 HMAC 연산을 수행한 토큰 인증자(TA1)를 포함할 수 있지만, 이에 한정되지 않는다.
이와 같은 단말 인증용 토큰(Token_B)의 실제 정보는 서버(20) 자신의 비밀키에 의해 암호화되기 때문에, 단말기(10)에서도 실제 정보는 알 수 없고, 서버(20) 만이 실제 정보를 검증할 수 있다.
이와 같이 생성된 동적키(Key_A)와 세션키(Key_B)를 이용하여 서버(20)는 서버 인증용 토큰(Token_A) 및 단말 인증용 토큰(Token_B)을 단말기(10)로 전송하여 단말 인증을 요청한다(단계 S208).
이때, 서버(20)는 단말 인증용 토큰(Token_B)을 동적키(Key_A)로 암호화하고, 서버 인증용 토큰(Token_A)을 세션키(Key_B)로 암호화하며, 단말기(10)로 인증 요청시 암호화된 단말 인증용 토큰(Token_B) 및 서버 인증용 토큰(Token_A)을 전송할 수 있다.
여기서, 서버(20)는 단말기(10)가 인증요청자 ID, 즉, 단말기(10)를 전송한 경우, ID를 동적키(Key_A)로 암호화하여 단말기(10)로 전송할 수 있다.
이때, 제2난수(R2)가 생성된 경우, 서버(20)는 제2난수(R2)를 동적키(Key_A)로 암호화하여 단말기(10)로 전송할 수 있다.
이와 같이, 단말 인증용 토큰(Token_B)은 서버(20)의 비밀키와 동적키(Key_A)에 의해 이중 암호화됨으로써, 네트워크상에서 단말 인증용 토큰(Token_B)이 가로채기되는 경우에도, 실질적으로 해당 내용을 확인할 수 없기 때문에, 불법의 중간자 공격을 안정적으로 차단할 수 있다.
이어서, 단말기(10)는 서버(20)로부터 수신된 서버 인증용 토큰(Token_A)을 기 생성된 동적키(Key_A)로 복호화한다(단계 S209). 여기서, 단말기(10)는 동적키(Key_A)로 단말 인증용 토큰(Token_B)을 복호화하지만, 단말 인증용 토큰(Token_B)은 서버(20)의 비밀키로 암호화된 상태이므로 단말기(10)는 단말 인증용 토큰(Token_B)의 실제 정보를 알 수 없다.
이때, 서버(20)가 제2난수(R2)를 생성하여 전송한 경우, 단말기(10)는 동적키(Key_A)로 제2난수(R2)를 복호화할 수 있다.
또한, 단말기(10)는 서버(20)가 인증요청자 ID를 암호화하여 전송한 경우, 기 생성된 동적키(Key_A)로 인증요청자 ID를 복호화하여 단말기(10)의 ID를 검증한다(단계 S210).
즉, 단말기(10)는 자신이 전송한 ID와 서버(20)로부터 수신하여 복호화한 ID가 동일한 경우, 서버(20)를 인증할 수 있다. 이때, 단말기(10)는 복호화된 ID가 자신의 ID와 상이한 경우, 서버(20)로 서버 인증 실패를 통지할 수 있다(단계 S210').
기 생성된 동적키(Key_A) 및 공유키(ARSK)를 이용하여 단말기(10)는 세션키(Key_B)를 생성한다(단계 S211). 여기서, 세션키(Key_B)는 서버(20)가 암호화하여 전송한 서버 인증용 토큰(Token_A)을 복호화하기 위한 키이다.
선택적으로, 단말기(10)는 단말기(10) 및 서버(20)에서 각각 제1난수(R1) 및 제2난수(R2)를 생성한 경우, 기 생성된 제1난수(R1)와 복호화된 제2난수(R2)를 동적키(Key_A) 및 공유키(ARSK) 함께 이용하여 세션키(Key_B)를 생성할 수 있다.
이와 같이 생성된 세션키(Key_B)를 이용하여 단말기(10)는 서버(10)로부터 수신된 서버 인증용 토큰(Token_A)을 복호화한다(단계 S212).
또한, 단말기(10)는 세션키(Key_B)로 복호화된 서버 인증용 토큰(Token_A)을 자신의 비밀키로 복호화하여 서버(20)를 인증한다(단계 S213). 즉, 단말기(10)는 복호화된 서버 인증용 토큰(Token_A)의 세부내용을 모두 확인할 수 있다. 따라서, 단말기(10)는 자신이 발행한 것과 동일한 것인지의 여부에 따라 서버(20)를 인증할 수 있다.
이때, 단말기(10)는 복호화된 서버 인증용 토큰(Token_A)이 자신이 발행한 서버 인증용 토큰(Token_A)과 상이한 경우, 서버(20)로 서버 인증 실패를 통지할 수 있다(단계 S213'). 여기서, 단말기(10)는 자신이 발행한 서버 인증용 토큰(Token_A)을 네트워크를 통하여 전송시 사용된 동적키(Key_A)가 중간에 가로채기되어 서버(20)와의 공유가 실패한 것으로 판단할 수 있다.
즉, 단말기(10)가 자신이 암호화하여 서버(10)로 전송한 서버 인증용 토큰(Token_A)과 서버(20)로부터 수신하여 복호화한 결과가 상이한 경우는, 상대방이 정상적인 서버 인증용 토큰(Token_A)을 전송하지 않은 경우이다. 따라서, 단말기(10)는 서버 인증용 토큰(Token_A)의 검증결과가 상이한 경우, 서버 인증을 실패로 판단할 수 있다.
이와 같이, 네트워크상에서 전송되는 동적키(Key_A)의 공유가 실패한 경우에도, 서버 인증용 토큰(Token_A) 자체가 단말기(10) 자신의 비밀키로 암호화되기 때문에, 중간자 공격을 차단할 수 있다.
이와 같이 서버 인증을 수행한 단말기(10)는 서버 인증 결과를 서버(20)로 전송하는 동시에 단말 인증을 요청한다(단계 S214). 이때, 단말기(10)는 복호화된 단말 인증용 토큰(Token_B)을 생성된 세션키(Key_B)로 암호화하여 서버(20)로 전송할 수 있다. 또한, 단말기(10)는 서버 인증 결과를 세션키(Key_B)로 암호화하여 함께 전송할 수 있다.
암호화된 단말 인증용 토큰(Token_B)을 단말기(10)로부터 수신한 서버(20)는 수신된 단말 인증용 토큰(Token_B)을 복호화한다(단계 S215). 이때, 서버(20)는 기 생성된 세션키(Key_B)를 이용하여 단말 인증용 토큰(Token_B)을 복호화할 수 있다.
또한, 서버(20)는 세션키(Key_B)로 복호화된 단말 인증용 토큰(Token_B)을 자신의 비밀키로 복호화하여 단말기(10)를 인증한다(단계 S216). 즉, 서버(20)는 복호화된 단말 인증용 토큰(Token_B)의 세부내용을 모두 확인할 수 있다. 따라서, 서버(20)는 자신이 발생한 것과 동일한 것인지의 여부에 따라 단말기(10)를 인증할 수 있다.
이때, 서버(20)는 복호화된 단말 인증용 토큰(Token_B)이 자신이 발행한 단말 인증용 토큰(Token_B)과 상이한 경우, 단말기(10)로 단말 인증 실패를 통지할 수 있다(단계 S216').
이와 같이 단말 인증을 수행한 서버(20)는 단말 인증 결과를 단말기(10)로 전송한다(단계 S217).
이와 같은 방법에 의해, 별도의 인증 서버 또는 인증 기관을 구비하지 않고도 단말기(10)와 서버(20) 사이의 양방향 인증을 신속하고 안정적으로 수행할 수 있다.
또한, 페이크(fake) 서버에 의한 위장 공격을 원천적으로 차단하므로, 인증 서버나 인증 기관을 별도로 이용하지 않거나 신뢰하지 않는 경우에도 인증의 안정성을 향상시킬 수 있다.
또한, 양방향 인증시 처리속도를 빠르게 하므로, 고사양 단말뿐 아니라 저사양 단말까지 인증이 가능하므로 사물인터넷(IoT) 환경에 적합한 인증방식을 제공할 수 있다.
도 4는 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템의 다른예를 나타낸 구성도이다.
도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 적용한 시스템은 단말기(10), 인증 서버(20) 및 서비스 서버(30)를 포함한다.
여기서, 인증 서버(20) 및 서비스 서버(30)는 도 1의 서버(20)의 기능을 단순히 물리적으로 분리한 것일 수 있다. 즉, 도 4의 인증 서버(20)는 일반적으로 외부 네트워크를 통하여 접속되는 인증 전문 서버를 지칭하지 않으며, 내부 네트워크 또는 단일 통신선을 통하여 연결되는 서버의 일부일 수 있다.
예를 들면, 도 1의 서버(20)가 제공하는 대량의 다양한 서비스를 제공하는 경우, 일정 단위 서비스별로 서비스 서버를 구비하고, 이와 같이 분리된 서비스 서버의 전체에 대한 인증을 위한 인증 서버를 구비할 수 있다.
이때, 단말기(10)는 공중망, 사설망 또는 인트라넷과 같은 통신 네트워크를 통하여 인증 서버(20) 및 서비스 서버(30) 각각에 연결될 수 있다.
여기서, 단말기(10)는 도 1 내지 도 3을 참조하여 설명한 바와 같이, 인증 서버(20)와 양방향의 상호 인증을 수행할 수 있다.
이와 같이, 단말기(10)와 인증 서버(20)의 인증이 완료되면, 단말기(10)는 서비스 서버(30)로 접속 요청을 수행하고, 서비스 서버(30)가 인증 서버(20)를 통하여 단말 인증을 수행함으로써, 단말기(10)와 서비스 서버(30) 사이의 실질적인 인증이 완료될 수 있다. 이때, 서비스 서버(30)는 단말기(10)로 정상적으로 데이터를 전송할 수 있다.
여기서, 도 1과 상이하게, 인증 서버(20)는 단말 인증용 토큰(Token_B)을 생성할 때 사용되는 자신의 비밀키(Key_C)를 서비스 서버(30)와 공유한다. 즉, 인증 서버(20)뿐만 아니라, 서비스 서버(30)도 단말 인증을 각각 수행해야 하기 때문에, 인증 서버(20)에서 발행한 단말 인증용 토큰(Token_B)을 서비스 서버(30)도 확인할 수 있도록 비밀키(Key_C)를 공유해야 한다.
도 5는 본 발명의 다른 실시예에 따른 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법을 나타낸 순서도이다. 도 5에서 도 3과 동일한 기능을 수행하는 단계는 동일한 부호를 사용하였으며, 이하에서는 도 3과 동일한 부분은 간략히 설명하고 상이한 부분을 중심으로 설명한다.
도 5에 도시된 바와 같이, 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법(300)은 서버가 인증 서버 및 다수의 서비스 서버로 물리적으로 구분된 경우의 인증 방법이다.
먼저, 단말기(10)와 인증 서버(20) 사이에 도 2에 도시된 바와 같은 등록 과정(100)이 수행된다.
이때, 인증 서버(20)와 서비스 서버(30)는 안전한 채널을 형성하고 비밀키로서 제2공유키(Key_C)를 공유한다(단계 S301). 여기서, 인증 서버(20)와 서비스 서버(30)는 외부 네트워크를 이용하지 않고 내부에서 근접하게 배치되므로 안전한 채널을 형성할 수 있다.
이후, 도 4에 도시된 바와 같은 단말기(10)와 인증 서버(20) 사이의 상호 인증이 개시된다. 먼저, 단말기(10)는 동적키(Key_A) 및 암호화된 서버 인증용 토큰(Token_A)을 생성하여 동적키(Key_A)로 서버 인증용 토큰(Token_A)을 암호화하고 인증 서버(20)로 전송하여 서비스를 요청한다(단계 S201 내지 단계 S203).
인증 서버(20)는 단말기(10)와 동일한 동적키(Key_A)를 생성하여 서버 인증용 토큰(Token_A)을 생성된 동적키(Key_A)로 복호화하고, 단말 인증용 토큰(Token_B)을 암호화하기 위한 세션키(Key_B)를 생성한다(단계 S204 내지 단계 S206).
이때, 인증 서버(20)는 단말 인증용 토큰(Token_B)을 생성한다(단계 S307). 여기서, 인증 서버(20)는 서비스 서버(30)와 공유된 비밀키인 제2공유키(Key_C)로 암호화하여 단말 인증용 토큰(Token_B)을 생성할 수 있다.
이와 같이 생성된 단말 인증용 토큰(Token_B)은 토큰 만기일, 인증요청자 ID, 접근 모드, 시퀀스 넘버, HMAC 연산을 수행하기 위한 토큰 인증자(TA1)에 더하여 서비스 서버 ID, 제3난수(R3)를 추가로 포함할 수 있다. 그러나, 단말 인증용 토큰(Token_B)의 내용은 이에 한정되지 않는다.
이와 같은 단말 인증용 토큰(Token_B)의 실제 정보는 인증 서버(20)와 서비스 서버(30)의 제2공유키(Key_C)에 의해 암호화되기 때문에, 단말기(10)에서 실제 정보는 알 수 없고, 인증 서버(20) 및 서비스 서버(30) 만이 실제 정보를 검증할 수 있다. 따라서, 본 실시예의 양방향 인증 방법(300)은 네트워크상의 중간자 공격으로부터 안정성을 보장할 수 있다.
또한, 인증 서버(20)는 서버 인증용 토큰(Token_A) 및 단말 인증용 토큰(Token_B)을 단말기(10)로 전송하여 단말 인증을 요청한다(단계 S308). 이때, 인증 서버(20)는 단말 인증용 토큰(Token_B)을 동적키(Key_A)로 암호화하고, 서버 인증용 토큰(Token_A)을 세션키(Key_B)로 암호화하며, 단말로 인증 요청시 암호화된 단말 인증용 토큰(Token_B) 및 서버 인증용 토큰(Token_A)을 전송할 수 있다.
여기서, 인증 서버(20)는 단말기(10)의 ID 및 제2난수(R2)를 동적키(Key_A)로 암호화하여 단말기(10)로 전송할 수 있다. 또한, 인증 서버(20)는 단말기(10)가 서비스 서버(30)와의 접속을 위한 제2세션키(Key_D)를 생성하기 위한 제3난수(R3)를 세션키(Key_B)로 암호화하여 전송할 수 있다.
이와 같은 제3난수(R3)는 단말 인증용 토큰(Token_B)에 포함된 것과 동일한 것으로 서비스 서버(30)는 단말 인증용 토큰(Token_B)의 실제 내용을 알 수 있기 때문에 제3난수(R3)를 별도로 전송할 필요가 없지만, 단말기(10)는 단말 인증용 토큰(Token_B)의 실제 내용을 알 수 없기 때문에 인증 서버(20)가 단말기(10)로 전송해야 한다.
이후, 단말기(10)는 단말기의 ID, 단말 인증용 토큰(Token_B)을 복호화하고, ID 검증을 통하여 인증 서버의 인증을 수행하며, 세션키(Key_B)를 생성하고, 서버 인증용 토큰(Token_A)을 생성된 세션키(Key_B)로 복호화하여 인증 서버의 인증을 수행한다(단계 S209 내지 S213).
이때, 서버(20)가 제3난수(R3)를 단말기(10)로 전송한 경우, 단말기(10)는 세션키(Key_B)로 제3난수(R3)를 복호화할 수 있다.
이어서, 단말기(10)가 인증 서버(20)로 인증 결과를 전송하면서 단말 인증을 요청하면, 서버(20)는 단말 인증용 토큰(Token_B)을 복호화하여 단말 인증을 수행하고 인증 결과를 단말기(10)로 전송한다(단계 S214 내지 단계 S217).
이와 같이, 단말기(10)와 인증 서버(20) 사이의 양방향 인증이 완료되면, 단말기(10)는 제2세션키(Key_D)를 생성한다(단계 S318). 이때, 단말기(10)는 세션키(Key_B) 및 제3난수(R3)로 제2세션키(Key_D)를 생성할 수 있다.
여기서, 제2세션키(Key_D)는 단말기(10)와 서비스 서버(30) 사이의 검증을 수행하기 위한 키이다.
단말기(10)는 복호화된 단말 인증용 토큰(Token_B)을 세션키(Key_B)로 암호화하여 서비스 서버(30)로 전송하여 접속을 요청한다(단계 S319). 이때, 단말기(10)는 복호화된 제3난수(R3)로 검증 정보(S)를 암호화하여 서비스 서버(30)로 전송할 수 있다.
이어서, 서비스 서버(30)는 인증 서버(20)로 세션키(Key_B)를 요청한다(단계 S320). 이때, 서비스 서버(30)는 인증요청자 ID, 즉, 단말기의 ID를 이용하여 세션키(Key_B)를 요청한다.
세션키(Key_B)를 요청받은 인증 서버(20)는 세션키(Key_B)를 서비스 서버(30)로 전송한다(단계 S321). 이때, 인증 서버(20)는 서비스 서버(30)와 공유된 비밀키인 제2공유키(Key_C)로 세션키(Key_B)를 암호화하여 전송할 수 있다.
암호화된 세션키(Key_B)를 수신한 서비스 서버(30)는 제2공유키(Key_C)를 이용하여 암호화된 단말 인증용 토큰(Token_B)을 복호화하고, 제2공유키(Key_C)로 복호화하여 단말기(10)를 검증한다(단계 S322).
즉, 서비스 서버(30)는 복호화된 단말 인증용 토큰(Token_B)의 세부내용을 모두 확인할 수 있다. 따라서, 서비스 서버(20)는 인증 서버(20)가 발생한 것과 동일한 것인지의 여부에 따라 단말기(10)를 인증할 수 있다.
이때, 서비스 서버(20)는 복호화된 단말 인증용 토큰(Token_B)이 인증 서버(20)가 발행한 단말 인증용 토큰(Token_B)과 상이한 경우, 단말기(10)로 단말 검증 실패를 통지할 수 있다(단계 S322').
여기서, 서비스 서버(30)는 단말 인증용 토큰(Token_B)의 실제 내용을 알 수 있기 때문에, 단말 인증용 토큰(Token_B)로부터 제3난수(R3)를 획득할 수 있다. 또한, 서비스 서버(30)는 제2공유키(Key_C)를 이용하여 세션키(Key_B)를 복호화할 수 있다.
이어서, 서비스 서버(30)는 이와 같이 획득된 제3난수(R3)와 인증 서버(20)로부터 수신한 세션키(Key_B)를 이용하여 제2세션키(Key_D)를 생성한다(단계 S323).
서비스 서버(30)는 생성된 제2세션키(Key_D)로 검증 정보(S)를 복호화한다(단계 S324).
이어서, 서비스 서버(30)는 생성된 제2세션키(Key_D)로 데이터를 암호화하여 단말기(10)로 전송한다(단계 S325). 이때, 서비스 서버(30)는 복호화된 정보로부터 연산된 정보(S-1)를 산출하고, 연산된 정보(S-1)를 제2세션키(Key_D)로 암호화하여 데이터와 함께 전송할 수 있다.
단말기(10)는 제2세션키(Key_D)로 연산된 정보(S-1)를 복호화하여 이전에 발송된 검증 정보의 유무를 확인하여 서비스 서버(30)의 검증을 수행한다(단계 S326). 이와 함께, 단말기(10)는 제2세션키(Key_D)로 데이터를 복호화하여 데이터를 확인할 수 있다.
이와 같은 방법에 의해, 서비스 서버와 구분하여 인증 서버를 구성한 경우에도 단말기(10)와 인증 서버(20) 사이의 양방향 인증 및 단말기(10)와 서비스 서버(30) 사이의 검증을 신속하고 안정적으로 수행할 수 있다.
상기와 같은 방법들은 도 1 및 도 3에 도시된 바와 같은 양방향 인증 시스템에 의해 구현될 수 있고, 특히, 이러한 단계들을 수행하는 소프트웨어 프로그램으로 구현될 수 있으며, 이 경우, 이러한 프로그램들은 컴퓨터 판독가능한 기록 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
이 때, 컴퓨터 판독 가능한 기록 매체는 컴퓨터 시스템에 의해 판독가능한 데이터가 저장되는 모든 종류의 기록 장치를 포함하며, 예를 들면, ROM, RAM, CD-ROM, DVD-ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크, 광 데이터 저장장치 등일 수 있다.
이상에서 본 발명의 일 실시예에 대하여 설명하였으나, 본 발명의 사상은 본 명세서에 제시되는 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서, 구성요소의 부가, 변경, 삭제, 추가 등에 의해서 다른 실시 예를 용이하게 제안할 수 있을 것이나, 이 또한 본 발명의 사상범위 내에 든다고 할 것이다.
10 : 단말기 20 : 서버, 인증 서버
30 : 서비스 서버

Claims (14)

  1. 단말기가 자신의 비밀키로 암호화하여 생성된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 암호화하고 서버로 전송하여 서비스를 요청하는 단계;
    상기 서버가 상기 단말기로부터 수신된 서버 인증용 토큰을 상기 공유키에 의해 생성된 동적키로 복호화한 후, 상기 공유키 및 상기 동적키에 의해 생성된 세션키로 암호화하며, 상기 서버 자신의 비밀키로 암호화하여 생성된 단말 인증용 토큰을 상기 생성된 동적키로 암호화하여 상기 세션키로 암호화된 서버 인증용 토큰과 함께 상기 단말기로 전송하여 서버 인증을 요청하는 단계;
    상기 단말기가 상기 서버로부터 수신된 서버 인증용 토큰을 상기 공유키 및 상기 동적키를 이용하여 생성된 세션키로 복호화한 후, 상기 단말기 자신의 비밀키로 복호화하여 상기 서버를 인증하는 단계;
    상기 단말기가 상기 서버로부터 수신된 단말 인증용 토큰을 상기 동적키로 복호화한 후, 상기 생성된 세션키로 암호화하며, 상기 서버로 전송하여 단말 인증을 요청하는 단계; 및
    상기 서버가 상기 단말기로부터 수신된 단말 인증용 토큰을 상기 동적키로 복호화한 후, 상기 서버 자신의 비밀키로 복호화하여 상기 단말기를 인증하는 단계;를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  2. 제1항에 있어서,
    상기 동적키는 상기 서버와 상기 단말기 사이에 공유된 동적키 생성 알고리즘 및 공유키에 의해 생성되는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  3. 제1항에 있어서,
    상기 서비스를 요청하는 단계 및 상기 단말 인증을 요청하는 단계는 서로 상이한 난수를 상기 동적키로 암호화하여 전송하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  4. 제3항에 있어서,
    상기 세션키는 상기 서로 상이한 난수를 더 이용하여 생성되는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  5. 제1항에 있어서,
    상기 서비스 요청시 상기 단말기의 ID를 전송하는 단계;
    상기 단말 인증 요청시 상기 단말기의 ID를 상기 동적키로 암호화하여 전송하는 단계; 및
    상기 암호화된 단말기의 ID를 복호화하여 상기 서버를 인증하는 단계를 더 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  6. 제1항에 있어서,
    상기 공유키는 인증요청자 보안키(ARSK)인 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  7. 제6항에 있어서,
    상기 단말기가 사물인터넷(IoT) 디바이스인 경우, 상기 인증요청자 보안키(ARSK)는 상기 서버 및 상기 단말기에 저장되어 공유되는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  8. 제6항에 있어서,
    상기 단말기가 사용자 단말기인 경우, 상기 인증요청자 보안키(ARSK)는 상기 서버에만 저장되며 상기 단말기에는 저장되지 않고 지식기반으로 상기 동적키 생성시 입력되는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  9. 제8항에 있어서,
    상기 인증요청자 보안키(ARSK)는 비밀번호 및 지문 중 적어도 하나를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  10. 제1항에 있어서,
    상기 서버는 서비스 서버와 인증 서버를 포함하며,
    상기 단계들은 상기 인증 서버와 상기 단말기 사이에서 수행되고,
    상기 단말 인증용 토큰은 상기 인증 서버와 상기 서비스 서버 사이에 공유된 제2공유키로 암호화되어 생성되며,
    상기 단말기가 상기 복호화된 상기 단말 인증용 토큰을 상기 생성된 세션키로 암호화하고, 상기 서비스 서버로 전송하여 접속을 요청하는 단계; 및
    상기 서비스 서버가 상기 단말기로부터 수신된 단말 인증용 토큰을 상기 인증 서버로부터 수신된 세션키로 복호화한 후, 상기 제2공유키로 복호화하여 상기 단말기를 인증하는 단계;를 더 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  11. 제10항에 있어서,
    상기 서비스 서버가 상기 인증 서버로 상기 세션키를 요청하는 단계; 및
    상기 인증 서버가 상기 세션키를 상기 제2공유키로 암호화하여 상기 서비스 서버로 전송하는 단계를 더 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  12. 제10항에 있어서,
    상기 접속 요청시 상기 세션키 및 상기 단말 인증용 토큰에 포함된 제3난수에 의해 생성된 제2세션키로 암호화된 검증 정보를 상기 서비스 서버로 전송하는 단계;
    상기 서비스 서버가 상기 복호화된 단말 인증용 토큰으로부터 상기 제3난수를 획득하고, 상기 세션키 및 상기 제3난수로 상기 제2세션키를 생성하고, 상기 검증 정보를 상기 제2세션키로 복호화하는 단계;
    상기 복호화된 검증 정보로부터 연산된 정보를 상기 제2세션키로 암호화하여 상기 단말기로 전송하는 단계; 및
    상기 단말기가 상기 연산된 정보를 상기 제2세션키로 복호화하여 상기 서비스 서버를 확인하는 단계;를 더 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  13. 비밀키로 암호화하여 생성된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 암호화하고 서버로 전송하여 서비스를 요청하는 단계;
    상기 요청에 따라 상기 서버로부터 세션키로 암호화된 서버 인증용 토큰을 수신하고, 상기 공유키 및 상기 생성된 동적키를 이용하여 상기 세션키를 생성하며, 상기 수신된 서버 인증용 토큰을 상기 생성된 세션키로 복호화한 후, 상기 비밀키로 복호화하여 상기 서버를 인증하는 단계; 및
    상기 서버로부터 암호화된 단말 인증용 토큰을 수신하여 상기 동적키로 복호화한 후, 상기 세션키로 암호화하며, 상기 서버가 단말기를 인증하도록 상기 암호화된 단말 인증용 토큰을 상기 서버로 전송하는 단계;를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
  14. 단말기로부터 서비스 요청에 따라 수신된 서버 인증용 토큰을 공유키에 의해 생성된 동적키로 복호화한 후, 상기 공유키 및 상기 동적키에 의해 생성된 세션키로 암호화하며, 비밀키로 암호화하여 생성된 단말 인증용 토큰을 상기 생성된 동적키로 암호화하여 상기 세션키로 암호화된 서버 인증용 토큰과 함께 상기 단말기로 전송하여 서버 인증을 요청하는 단계; 및
    상기 단말기에서 서버 인증 후 단말 인증 요청에 따라 상기 세션키로 암호화된 단말 인증용 토큰을 수신하여 상기 생성된 동적키로 복호화한 후, 상기 비밀키로 복호화하여 상기 단말기를 인증하는 단계;를 포함하는 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법.
KR1020160037924A 2016-03-29 2016-03-29 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법 KR20170111809A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160037924A KR20170111809A (ko) 2016-03-29 2016-03-29 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160037924A KR20170111809A (ko) 2016-03-29 2016-03-29 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법

Publications (1)

Publication Number Publication Date
KR20170111809A true KR20170111809A (ko) 2017-10-12

Family

ID=60139989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160037924A KR20170111809A (ko) 2016-03-29 2016-03-29 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법

Country Status (1)

Country Link
KR (1) KR20170111809A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115426116A (zh) * 2022-08-26 2022-12-02 中国人民解放军国防科技大学 一种基于动态密钥的加密哈希跳变方法
WO2024085728A1 (ko) * 2022-10-21 2024-04-25 삼성전자 주식회사 전자 장치 및 전자 장치에서 외부 전자 장치의 데이터를 업로드하는 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115426116A (zh) * 2022-08-26 2022-12-02 中国人民解放军国防科技大学 一种基于动态密钥的加密哈希跳变方法
CN115426116B (zh) * 2022-08-26 2024-05-03 中国人民解放军国防科技大学 一种基于动态密钥的加密哈希跳变方法
WO2024085728A1 (ko) * 2022-10-21 2024-04-25 삼성전자 주식회사 전자 장치 및 전자 장치에서 외부 전자 장치의 데이터를 업로드하는 방법

Similar Documents

Publication Publication Date Title
US9847882B2 (en) Multiple factor authentication in an identity certificate service
US8327143B2 (en) Techniques to provide access point authentication for wireless network
JP5860815B2 (ja) コンピューターポリシーを施行するためのシステムおよび方法
US9197420B2 (en) Using information in a digital certificate to authenticate a network of a wireless access point
KR101265873B1 (ko) 분산된 단일 서명 서비스 방법
US20120295587A1 (en) Trusted mobile device based security
WO2019085531A1 (zh) 一种终端联网认证的方法和装置
JP2005102163A (ja) 機器認証システム、機器認証サーバ、端末機器、機器認証方法、機器認証プログラム、及び記憶媒体
CN112671779B (zh) 基于DoH服务器的域名查询方法、装置、设备及介质
US20210167963A1 (en) Decentralised Authentication
US11218317B1 (en) Secure enclave implementation of proxied cryptographic keys
US20210392004A1 (en) Apparatus and method for authenticating device based on certificate using physical unclonable function
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
CN115277168A (zh) 一种访问服务器的方法以及装置、***
KR20090012013A (ko) 커버로스를 이용한 상호 인증 방법 및 그 시스템
KR20170111809A (ko) 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법
EP4145763A1 (en) Exporting remote cryptographic keys
KR100853448B1 (ko) 도메인 기반 이동에이전트 인증 시스템 및 그 인증 방법
WO2022135388A1 (zh) 身份鉴别方法、装置、设备、芯片、存储介质及程序
KR20020040378A (ko) 공개키 기반의 패스워드 비전송 인증방법
JP2017139026A (ja) 信頼できる認証およびログオンのための方法および装置
CN112437436A (zh) 一种身份认证方法及装置
KR101962349B1 (ko) 인증서 기반 통합 인증 방법
JP2009104509A (ja) 端末認証システム、端末認証方法
JP2015111440A (ja) 信頼できる認証およびログオンのための方法および装置