KR101531662B1 - 사용자 단말과 서버간 상호 인증 방법 및 시스템 - Google Patents

사용자 단말과 서버간 상호 인증 방법 및 시스템 Download PDF

Info

Publication number
KR101531662B1
KR101531662B1 KR1020130168424A KR20130168424A KR101531662B1 KR 101531662 B1 KR101531662 B1 KR 101531662B1 KR 1020130168424 A KR1020130168424 A KR 1020130168424A KR 20130168424 A KR20130168424 A KR 20130168424A KR 101531662 B1 KR101531662 B1 KR 101531662B1
Authority
KR
South Korea
Prior art keywords
server
user terminal
information
unique identifier
password information
Prior art date
Application number
KR1020130168424A
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 KR1020130168424A priority Critical patent/KR101531662B1/ko
Application granted granted Critical
Publication of KR101531662B1 publication Critical patent/KR101531662B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Abstract

본 발명은 사용자 단말과 서버간 상호 인증 방법에 관한 것으로, 보다 구체적으로는 서버가 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 스마트카드에 저장하여 발급하는 단계; 상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근하는 단계; 상기 서버가 상기 스마트카드에 저장된 사용자 단말의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하는 단계; 및 상기 서버가 자신에게 접근하고자 하는 사용자 단말이 정당하다고 판단한 경우, 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 단계;를 포함한다.
이러한 구성에 의해, 본 발명의 사용자 단말과 서버간 상호 인증 방법 및 시스템은 사용자 단말과 서버간 인증을 위해, 상기 서버에 접속하고자 하는 사용자 단말의 고유 식별정보 및 패스워드 정보를 상기 서버로 전송 시, 상기 서버가 수신한 사용자 단말의 고유 식별정보 및 패스워드 정보를 스마트카드에 저장하여 발급함으로써, 상기 서버가 공격자로부터 공격받더라도 사용자 단말의 고유 식별정보 및 패스워드 정보가 외부로 유출되는 것을 방지할 수 있는 효과가 있다.

Description

사용자 단말과 서버간 상호 인증 방법 및 시스템{Method and system for mutual authentication between client and server}
본 발명은 사용자 단말과 서버간 상호 인증 방법 및 시스템에 관한 것으로, 특히 사용자 단말의 고유 정보를 서버에 저장하지 않고 스마트 카드에 별도로 저장하여 사용자 단말과 서버간 안전하게 인증을 수행할 수 있는 사용자 단말과 서버간 상호 인증 방법 및 시스템에 관한 것이다.
최근 들어, IT 기술이 급격히 발달함에 따라 인터넷 등의 네트워크를 활용하는 다양한 형태의 온라인 서비스가 남녀노소 누구에게나 널리 제공되고 있다. 이러한 온라인 서비스는 클라이언트 즉, 사용자 단말과 서버 사이의 데이터 교환을 가능하도록 하는 유무선 네트워크를 통해 이루어진다. 또한 이러한 온라인 서비스는 각각의 사용자를 구분하여 별도의 서비스를 제공하고, 각각의 사용자에게 제공되는 서비스 내용이 다른 사용자들에게 노출되지 않도록 각 사용자별 개인화된 서비스를 생성하며, 그에 대한 접근 권한을 해당 사용자가 아닌 타 사용자에게는 허용하지 않는다. 이를 위해, 각각의 사용자 계정과 이에 접근하기 위한 인증 코드가 각 사용자들에게 할당되며, 사용자들은 사용자 계정의 식별정보와 인증코드를 이용하여 권한을 인증받는다.
하지만 종래기술에서는 사용자 단말과 서버 간에 통신 채널 구축을 위한 인증 시, 사용자 단말의 고유 정보를 서버에 저장한다. 이에 따라, 상기 서버가 공격자로부터 공격을 받으면, 상기 서버 내 저장된 사용자 단말의 고유 정보가 외부로 유출되는 문제점이 발생했다. 또한, 공격자가 유출된 상기 사용자 단말의 고유 정보를 이용하여 2차 보안 공격을 수행하는 등의 문제점이 발생했다.
KR 10-1137523 (인증매체, 인증단말, 인증서버 및 이들을 이용한 인증방법, 유승훈) 2012.04.10.
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 사용자 단말의 인증 시 사용되는 고유정보를 서버가 아닌 스마트카드에 저장함에 따라, 상기 서버가 공격당하더라도 상기 사용자 단말의 고유 정보가 외부로 유출되는 것을 방지하도록 하는 사용자 단말과 서버간 상호 인증 방법 및 시스템을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 사용자 단말과 서버간 상호 인증 방법은 서버가 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 스마트카드에 저장하여 발급하는 단계; 상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근하는 단계; 상기 서버가 상기 스마트카드에 저장된 사용자 단말의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하는 단계; 및 상기 서버가 자신에게 접근하고자 하는 사용자 단말이 정당하다고 판단한 경우, 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 단계;를 포함한다.
보다 바람직하게는 상기 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하는 과정; 적어도 하나의 임의의 변수를 생성하는 과정; 생성된 임의의 변수 중 제1 변수를 비밀키로 설정하고, 상기 비밀키와, 상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 조합 후 암호화하여 제1 사용자 검증값 및 제2 사용자 검증값을 생성하는 과정; 상기 임의의 변수 중 제2 변수 및 제3 변수를 디피-헬만(Diffie-Hellman) 알고리즘에 적용하여 서버 공개키를 획득하는 과정; 및 상기 제1 사용자 검증값, 제2 사용자 검증값, 서버 공개키, 제2 변수, 제3 변수, 상기 서버의 아이디 정보, 해시함수를 스마트카드에 저장하여 발급하는 과정;을 포함하는 상기 서버가 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 스마트카드에 저장하여 발급하는 단계를 포함할 수 있다.
특히, 상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 Out-of-Band 채널을 통해 접근하고자 하는 서버로 전송하는 서버가 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하는 단계를 포함할 수 있다.
보다 바람직하게는 적어도 하나의 임의의 변수를 생성하는 과정; 상기 스마트 카드 내 저장된 제3 변수에 기초하여 사용자 단말 공개키를 연산하는 과정; 상기 스마트 카드 내 저장된 서버 공개키에 기초하여 암호화키를 연산하는 과정; 상기 임의의 변수 중 하나인 제5 변수, 타임 스탬프, 자신의 고유 식별자 정보 및 패스워드 정보를 암호화하여 고유정보 암호화값을 생성하는 과정; 상기 제1 사용자 검증값, 제2 사용자 검증값 및 타임 스탬프를 상기 암호화키로 암호화하여 사용자 검증 암호화값을 생성하는 과정; 및 상기 고유정보 암호화값, 사용자 검증 암호화값, 사용자 단말 공개키를 상기 서버로 전송하는 과정; 을 포함하는 상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근하는 단계를 포함할 수 있다.
보다 바람직하게는 상기 사용자 단말로부터 수신한 사용자 단말 공개키를 이용하여 제1 복호화키를 연산하는 과정; 상기 제1 복호화키를 이용하여 상기 사용자 단말로부터 수신한 사용자 검증 암호화값을 복호화하는 과정; 복호화된 상기 사용자 검증 암호화값으로부터 타임스탬프를 추출하여 유효성을 확인하는 과정; 상기 제1 복호화키와 상기 사용자 단말로부터 수신한 패스워드 정보에 기초하여 제2 복호화키를 생성하는 과정; 생성된 상기 제2 복호화키를 이용하여 상기 사용자 단말로부터 수신한 고유정보 암호화값을 복호화하는 과정; 복호화된 상기 고유정보 암호화값으로부터 상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 획득하고, 획득한 상기 고유 식별자 정보 및 패스워드 정보가 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보와 동일한지 비교하는 과정; 및 상기 고유정보 암호화값으로부터 획득한 고유 식별자 정보 및 패스워드 정보가 상기 서버로 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보와 동일한 경우, 상기 서버로 접근하고자 하는 사용자 단말이 정당하다고 판단하는 과정;을 포함하는 상기 서버가 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하는 단계를 포함할 수 있다.
보다 바람직하게는 상기 고유정보 암호화값으로부터 제5 변수를 획득하는 과정; 임의의 제6 변수를 생성하는 과정; 상기 제5 변수와 제6 변수에 기초하여 세션키를 생성하여 설립하는 과정; 및 상기 제5 변수, 제6 변수, 서버의 고유 식별자 정보 및 타임스탬프를 암호화하여 상기 사용자 단말로 전송하는 과정; 을 포함하는 상기 서버가 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 단계를 포함할 수 있다.
위와 같은 과제를 해결하기 위한 본 발명의 다른 실시 예에 따른 사용자 단말과 서버간 상호 인증 시스템은 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 저장하는 스마트카드를 발급하고, 상기 스마트카드에 저장된 사용자 단말의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하며, 자신에게 접근하고자 하는 사용자 단말이 정당하다고 판단한 경우, 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 서버; 및 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근을 시도하는 사용자 단말;을 포함한다.
본 발명의 사용자 단말과 서버간 상호 인증 방법 및 시스템은 사용자 단말과 서버간 인증을 위해, 상기 서버에 접속하고자 하는 사용자 단말의 고유 식별정보 및 패스워드 정보를 상기 서버로 전송 시, 상기 서버가 수신한 사용자 단말의 고유 식별정보 및 패스워드 정보를 내부에 저장하지 않고 스마트카드에 저장함으로써, 상기 서버가 공격자로부터 공격받더라도 사용자 단말의 고유 식별정보 및 패스워드 정보가 외부로 유출되는 것을 방지할 수 있는 효과가 있다.
또한 사용자 단말과 서버간 상호 인증 방법 및 시스템은 서버가 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 스마트 카드에 별도로 저장함으로써, 서버로 이루어지는 다양한 공격 예를 들면, 기밀성, 메시지의 무결성, 세션키의 보안, 존속성, 낮은 동의성, 비 단사 동기화, 비 단사 동의성 등의 공격에 대하여 강력한 보안을 가질 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 사용자 단말과 서버간 상호 인증 방법을 나타낸 순서도이다.
도 2는 본 발명에 대한 보안 스킴의 안전성 분석 및 검증을 수행한 결과를 나타낸 도면이다.
이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다.
이하, 도 1을 참조하여 본 발명에 따른 사용자 단말과 서버간 상호 인증 방법에 대하여 자세히 살펴보도록 한다.
도 1은 본 발명의 일 실시 예에 따른 사용자 단말과 서버간 상호 인증 방법의 순서도이다.
도 1에 도시된 바와 같이, 본 발명의 사용자 단말과 서버간 상호 인증 방법은 서버(120)가 사용자 단말(110)로부터 암호화된 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 수신하고, 수신한 상기 사용자 단말(110)의 암호화된 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 스마트카드에 저장하여 발급한다.
이러한 사용자 단말(110)의 암호화된 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 스마트카드에 저장하여 발급하는 과정에 대하여 보다 자세히 살펴보도록 한다.
먼저, 서버(120)가 상기 사용자 단말(110)로부터 Out-of-Band(OOB) 채널을 통해 암호화된 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 수신한다. 이때, 상기 서버(120)는 외부 공격으로부터 안전한 Out-of-Band 채널을 이용하여 사용자 단말(110)로부터 암호화된 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 수신할 수 있다.
이후, 서버(120)가 적어도 하나의 임의의 변수 p, g, N 를 생성한다.
이와 같이 생성된 임의의 변수 p, g, N 중 제1 변수 N 를 비밀키로 설정하고, 상기 비밀키 N 와, 상기 사용자 단말(110)의 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 조합 후 암호화
Figure 112013121094702-pat00001
하여 제1 사용자 검증값 υ 및 제2 사용자 검증값 ν을 생성한다. 즉, 상기 제1 사용자 검증값 υ은 사용자 단말의 패스워드 정보 Pc를 해시 연산한 후, 상요자 단말의 고유 식별자 정보 Ic와 조합하고, 그 결과를 비밀키 N을 통해 암호화한 값을 나타낸다.
또한, 상기 제2 사용자 검증값 ν은 사용자 단말의 고유 식별자 정보 Ic를 해시연산한 후, 사용자 단말의 패스워드 정보 Pc 와 조합한 후, 그 결과를 비밀키 N을 이용하여 암호화한 값을 나타낸다.
또한, 상기 임의의 변수 중 제2 변수 p 및 제3 변수 g 를 디피-헬만(Diffie-Hellman) 알고리즘에 적용하여 서버 공개키
Figure 112013121094702-pat00002
를 획득한다.
이에 따라, 상기 서버(120)가 상기 제1 사용자 검증값 υ, 제2 사용자 검증값 ν, 서버 공개키 B, 제2 변수 p, 제3 변수 g, 상기 서버의 아이디 정보 ID(Is), 해시함수 h()를 스마트카드에 저장하여 발급한다. 이때, 상기 해시함수는 Web OS 에서 사용가능한 해시함수 중 가장 강력한 HMAC-SHA-1 가 사용될 수 있다.
이와 같이, 사용자 단말(110)의 고유 식별자 정보 Ic 및 패스워드 정보가 스마트 카드에 저장되면, 상기 사용자 단말(110)이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버(120)로 전송하여 상기 서버(120)로 접근을 시도한다.
이러한 사용자 단말(110)의 서버(120)로 접근 시도과정을 자세히 살펴보도록 한다.
먼저, 사용자 단말(110)이 적어도 하나의 임의의 변수 a, rc 를 생성한다.
상기 스마트 카드 내 저장된 제3 변수 g 에 기초하여 사용자 단말 공개키
Figure 112013121094702-pat00003
를 연산한다.
상기 스마트 카드 내 저장된 서버 공개키 B 에 기초하여 암호화키
Figure 112013121094702-pat00004
를 연산한다.
상기 임의의 변수 중 하나인 제5 변수 rc, 타임 스탬프 Tc, 사용자 단말 자신의 고유 식별자 정보 Ic 및 패스워드 정보 Pc를 조합 후 암호화
Figure 112013121094702-pat00005
하여 고유정보 암호화값 R 을 생성한다.
이어서, 상기 제1 사용자 검증값 υ, 제2 사용자 검증값 ν 및 타임 스탬프 Tc 를 상호 조합한 후, 상기 암호화키 D 로 암호화
Figure 112013121094702-pat00006
하여 사용자 검증 암호화값 U 을 생성한다.
이와 같이 생성된 상기 고유정보 암호화값 R, 사용자 검증 암호화값 U, 사용자 단말 공개키 A 를 상기 서버(120)로 전송한다.
이에 따라, 상기 서버(120)가 상기 스마트카드에 저장된 사용자 단말(110)의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말(110)로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말(110)에 대한 정당성 여부를 판단한다.
이하, 서버로 접근하고자 하는 사용자 단말(110)의 정당성 여부를 판단 과정에 대하여 보다 자세히 살펴보도록 한다.
먼저, 서버(120)가 상기 사용자 단말(110)로부터 수신한 사용자 단말 공개키
Figure 112013121094702-pat00007
를 이용하여 제1 복호화키
Figure 112013121094702-pat00008
를 연산한다.
이에 따라, 상기 제1 복호화키 D 를 이용하여 상기 사용자 단말(110)로부터 수신한 사용자 검증 암호화값 U 을 복호화
Figure 112013121094702-pat00009
한다. 이때, 상기 사용자 검증 암호화값 U 을 복호화함으로써, 타임 스탬프 Tc, 제1 사용자 검증값 υ및 제2 사용자 검증값 ν을 획득할 수 있다.
이처럼 복호화된 상기 사용자 검증 암호화값 U 으로부터 획득한 타임스탬프 Tc 의 유효성을 확인한다.
이어서, 상기 사용자 단말(110)로부터 수신한 패스워드 정보 Pc 를 해시연산한 값과, 상기 제1 복호화 키 D 를 XOR 연산하여 제2 복호화키
Figure 112013121094702-pat00010
를 생성한다.
이와 같이, 생성된 상기 제2 복호화키 F 를 이용하여 상기 사용자 단말(110)로부터 수신한 고유정보 암호화값을 복호화
Figure 112013121094702-pat00011
한다. 이때, 상기 고유정보 암호화값 R 을 복호화함으로써, 제5 변수 rc, 타임 스탬프 Tc, 사용자 단말의 고유 식별자 정보 Ic 및 패스워드 정보 Pc 를 획득할 수 있다.
이후, 복호화된 상기 고유정보 암호화값 R 으로부터 획득한 상기 사용자 단말(110)의 고유 식별자 정보 Ic 및 패스워드 정보 Pc 가 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 Ic 및 패스워드 정보 Pc 와 동일한지 여부를 비교한다.
이때 만약, 상기 고유정보 암호화값 R 으로부터 획득한 고유 식별자 정보 Ic 및 패스워드 정보 Pc 가 상기 서버(120)로 접근하고자 하는 사용자 단말(110)로부터 수신한 고유 식별자 정보 Ic 및 패스워드 정보 Pc 와 동일한 경우, 상기 서버(120)로 접근하고자 하는 사용자 단말(110)은 정당하다고 판단한다.
이어서, 상기 서버(120)가 자신에게 접근하고자 하는 사용자 단말(110)이 정당하다고 판단함에 따라, 정당하다고 판단한 사용자 단말(110)간에 세션키를 설립하여 통신 채널을 구축한다.
이하, 서버와 정당성이 인증된 사용자 단말간 통신 채널 구축과정에 대하여 자세히 살펴보도록 한다.
먼저, 서버(120)가 복호화된 상기 고유정보 암호화값
Figure 112013121094702-pat00012
으로부터 제5 변수 rc 를 획득한다.
이어서, 상기 서버(120)가 임의의 제6 변수 rs 를 생성한다.
이후, 상기 제5 변수 rc 와 제6 변수 rs 간 XOR 연산을 수행하여 세션키
Figure 112013121094702-pat00013
를 생성하여 설립한다.
이에 따라, 상기 서버(120)가 상기 제5 변수 rc, 제6 변수 rs, 서버의 고유 식별자 정보 ID(Is) 및 타임스탬프 Tc 를 상호 조합한 후, 암호화
Figure 112013121094702-pat00014
하여 생성한 메시지 S를 통신 채널을 구축하고자 하는 상기 사용자 단말(110)로 전송한다.
이후, 사용자 단말(110)이 상기 서버(120)로부터 수신한 메시지 S 에 대하여 복호화
Figure 112013121094702-pat00015
하여, 제5 변수 rc, 제6 변수 rs, 서버의 고유 식별자 정보 Is 및 타임 스탬프 Ts를 획득할 수 있다.
이에 따라, 상기 사용자 단말(110)이 상기 메시지 S 로부터 획득한 타임 스탬프 Tc 의 유효성을 확인하여, 상기 서버(120)로부터 수신한 메시지 S 가 유효한지 여부를 확인한다.
따라서, 상기 메시지 S 가 유효한 메시지라고 판단하면, 상기 사용자 단말(110)이 수신한 메시지 S로부터 획득한 제5 변수 rc와, 자신이 생성한 제5 변수 rc를 상호 비교하여 동일한지 여부를 판단한다. 이어서, 상기 사용자 단말(110)은 상기 메시지 S 로부터 획득한 서버(120)의 고유 식별자 정보 ID(Is)를 확인한다.
이후, 사용자 단말(110)이 수신한 메시지 S 로부터 제6 변수 rs를 획득하고, 획득한 제6 변수 rs와 상기 제5 변수 rc를 XOR 연산하여 상기 서버(120)와 동일한 세션키
Figure 112013121094702-pat00016
를 생성하여, 설립함으로써, 정당한 사용자 단말과 서버 간에 채널이 구축된다.
이하에서는 본 발명에 따른 사용자 단말과 서버 간 상호 인증 방법에 대한 효과 검증을 수행해 보도록 한다.
본 발명의 효과 검증을 위해 Scyther 도구를 이용하여 검증을 진행하였다. 다음은 개선된 프로토콜을 SPDL 언어로 명세하여 작성한 프로토콜 디스크립션을 나타낸다.
Figure 112013121094702-pat00017
본 발명과 같이 개선된 Web OS의 보안 스킴에는 타임 스탬프를 메시지에 포함하여 전달함으로써 보안성을 높였다. SPDL에서 미리 정의된 타입에 속하지 않으므로, 타임 스탬프 형태를 정의하여 사용하였다. 세션키 형태는 세션 키 변수를 선언한 것을 나타낸다.
Figure 112013121094702-pat00018
위 코드는 DHKEY라는 Nonce형 변수를 비밀(Secret) 속성을 부여하도록 선언한 것을 나타낸다. 본 발명에서는 디피-헬만(Diffie-Hellman) 알고리즘을 이용하여 암호화를 진행하므로, DHKEY는 이를 의미하는 디피-헬만 키로 선언한다. 하지만, 이 프로토콜 명세에서는 메시지 통신을 위주로 각 역할을 정의하므로 키를 선정하는 방식에 대해서는 명세하지 않는다.
Figure 112013121094702-pat00019
이어서, 서버의 비밀키 N을 선언하는데, 이때, 상기 서버의 비밀키는 다른 이용자에게 공개되지 않고, 오직 서버만이 알고 있어야 하므로 비밀 속성을 부여하여 외부에 공개되지 않도록 설정한다.
Figure 112013121094702-pat00020
메시지 통신 시에 사용자 단말과 서버가 암호화를 하여 서로에게 전달하므로, 암호화에 필요한 함수를 정의한다. 이때, hash는 해시함수를 정의한 것이며, XOR은 XOR 연산을 함수로 정의한 것을 나타낸다. 이때, 선언된 각 변수들은 함수의 역할을 하여, 역할을 정의할 때 각 역할이 암호화하여 전달하는 메시지를 표현할 때 사용한다.
Figure 112013121094702-pat00021
개선된 Web OS의 상호 인증 보안 스킴에서 각 역할은 두 개의 메시지를 주고 받으며 상호 인증 단계를 진행한다. 위에 기재된 코드는 사용자 단말의 역할에 정의한 send(), recv() 이벤트를 이용하여 메시지 통신을 정의한 부분이다. 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 수신하여 스마트 카드에 저장한 후, 사용자 단말과 서버간의 상호 인증 단계를 시작하여 사용자 단말은 서버에게 암호화한 메시지를 전송한다. 앞서 선언한 전역 함수들을 이용하여 암호화를 표현하였다. 서버의 역할에서도 사용자 단말과의 통신에서 동기화를 위하여 동일한 메시지를 선언하였다.
개선된 Web OS 상호 인증 보안 스킴이 현재의 Web OS와 비교하여 안전한지를 검증하기 위해, 검증한 속성과 동일한 속성을 검증할 수 있도록 Claim 이벤트를 정의하였다.
Figure 112013121094702-pat00022
외부의 공격으로 인해 사용자 단말과 서버간의 간의 통신에서 주고 받는 메시지의 내용이 안전하게 보호받는가를 검증하기 위하여 Claim 이벤트를 비밀 속성으로 정의한다. CID, PW, SID를 검증하여 이 프로토콜이 기밀성과 메시지의 무결성을 유지하는지를 검증한다. 메시지의 무결성을 검증하기 위해 서버의 비밀키가 공격에 의해 공개될 수 있는지를 검증한다. 타임 스탬프로 선언한 CTime과 STime을 포함한 메시지에서 CTime과 STime이 변조되는지 검증하고, 암호화한 메시지를 비밀 속성으로 검증하여 메시지가 노출 혹은 변조가 될 수 있는지를 검증한다.
본 발명에서는 사용자 단말과 서버에서 각각 임의의 값을 선정하고, 선정된 임의의 값을 이용하여 세션키를 계산하므로, 사용자 단말과 서버에서 생성하는 임의의 값 CNonce, SNonce가 메시지에 실려 전달될 때, 안전하게 전달되는지를 검증하여 세션키가 안전하게 설립되는지를 검증할 수 있다.
Figure 112013121094702-pat00023
속성을 검사하기 위해, Scyther에서 제공하는 존속성(Aliveness), 낮은 동의성(Weakagree), 비동기(Nisync), 비동의성(Niagree) 보안 속성 역시 Claim 이벤트로 정의하고 검증하도록 하였다. 검증하려는 Claim 이벤트는 사용자 단말과 동일하게 정의하여 보안 속성을 모두 만족하는지 검증하도록 하였다. 서버의 역할 선언에서도 동일한 속성을 검증하여 존속성(Aliveness), 낮은 동의성(Weakagree), 비동기(Nisync), 비동의성(Niagree) 등 7가지의 속성이 보장이 되는지 검증하였다.
Web OS의 보안 스킴에서 만족하지 못한 기밀성, 메시지의 무결성, 세션 키의 보안, 존속성(Aliveness), 낮은 동의성(Weak agreement), 비 단사 동기화(Non-injective synchronization), 비 단사 동의성(Non-injective agreement) 등 7가지 속성을 개선된 보안 스킴이 만족하는가를 나타내는 검증을 수행하였다.
첫 번째로, 기밀성에 대한 검증을 수행하였다.
본 발명은 사용자 단말과 서버의 통신에서 주고받는 메시지의 내용을 공격자가 알 수 없음을 검증하였다. 그러므로 본 발명은 메시지의 기밀성을 보장할 수 있다.
Figure 112013121094702-pat00024
이어서, 메시지의 무결성에 대한 검증을 살펴보면, 메시지의 내용을 사용자 단말과 서버가 아닌 공격자에 의해서 변경되지 않도록 하기 위해서 사용자 단말과 서버의 암호화 메커니즘을 통해 메시지를 암호화한다. 이때, 암호화에 이용하는 키가 공격자가 알 수 없도록 안전하게 보호되어 있는지 검증하여 다음의 속성을 만족함을 확인하였다.
Figure 112013121094702-pat00025
세 번째로, 세션키의 보안에 대한 검증 부분이다.
사용자 단말과 서버는 상호 인증 과정을 통해, 각자가 생성한 임의의 값을 이용하여 앞으로의 통신에 이용할 세션키를 생성한다. 이러한 세션키는 공격자로부터 안전하게 보호되어야 하고 유일해야 하는 특성을 갖는다. 본 발명에 따른 보안 스킴에서는 임의의 값 CNonce, SNonce를 이용하여 세션키를 설립하였으므로 두 Nonce 값이 안전하게 전달되는지에 대한 검증을 통하여 이 속성을 보장함을 확인하였다.
Figure 112013121094702-pat00026
네 번째로, 존속성(Aliveness)에 대한 검증이다.
본 발명은 존속성 속성을 만족하여 사용자 단말과 서버의 통신에서 상호 인증 단계를 진행하기 전 상태를 초기화 할 때, 다음 단계를 진행할 수 있도록 사용자 단말 또는 서버가 자신의 역할을 수행할 준비가 되어있다는 것을 보장한다.
Figure 112013121094702-pat00027
다섯 번째로는 낮은 동의성(Weak agreement)에 대한 검증을 살펴보도록 한다.
검증한 프로토콜은 낮은 동의성 속성을 만족하여 사용자 단말과 서버가 통신을 할 때, 서로가 통신을 하고자 하는 정당한 상대와 프로토콜을 수행하고 있음을 검증하였다.
Figure 112013121094702-pat00028
여섯 번째로는 비 단사 동기화(Non-injective synchronization)에 대한 검증은 다음과 같다.
상기 비 단사 동기화의 보안 속성을 정의하기 전에 수행된 프로토콜의 역할의 수행이나 메시지의 전달 등이 올바르게 완료되고, 앞서 정의한 Claim 이벤트들이 올바르게 수행되었음을 검증하는 보안 속성이다. 본 발명에서는 명세한 각 역할의 역할과 정의한 Claim 이벤트가 올바르게 수행되었음을 보장함을 검증하였다.
Figure 112013121094702-pat00029
일곱 번째, 비 단사 동의성(Non-injective agreement)에 대한 검증을 확인하도록 한다.
명세한 프로토콜 디스크립션에서 정의한 변수들의 집합을 데이터 아이템(Data item)이라고 할 때, 사용자 단말과 서버가 주고받는 메시지의 변수들은 상기 데이터 아이템에 속해있고, 상기 사용자 단말과 서버의 역할에 정의한 변수들이 서로 동일하며, 그에 따른 응답을 받을 수 있도록 정의되어 있음을 검증하였다.
Figure 112013121094702-pat00030
이하에서는 본 발명을 SPDL 언어로 명세하여 Scyther 도구를 이용하여 보안 스킴의 안전성 분석 및 검증을 수행한 결과에 도 2를 참조하여 살펴보도록 한다.
도 2에 도시된 바와 같이, 프로토콜 디스크립션에서 명세한 보안 속성을 만족할 경우 Status가 OK라는 결과를 나타낸다. 본 발명의 경우, Claim 이벤트로 명세한 보안 속성을 만족하며, 공격자로부터 안전하게 서버와 클라이언트간의 통신이 이루어짐을 확인할 수 있다.
상술한 내용을 통해, 본 발명을 Scyther를 이용하여 검증함으로써, 기밀성, 메시지의 무결성, 세션 키의 보안, 존속성, 낮은 동의성, 비 단사 동기화, 비 단사 동의성 등의 7가지 보안 속성을 만족하는 것을 확인하였다. 이러한 7가지 보안 속성을 안전하게 보장함으로써, 다음의 보안 공격으로부터 본 발명에 따른 상호 인증 보안 스킴이 안전하다는 것을 확인할 수 있다.
먼저, 도청(Eavedropping) 공격으로부터 본 발명에 따른 상호 인증 보안 스킴은 안전하다.
기존의 Web OS의 보안 스킴에서 기밀성과 메시지의 무결성이 보장되지 않기 때문에 도청의 위협이 존재하고 있다. 이러한 도청 문제를 보완하기 위하여 본 발명에서는 사용자 단말과 서버가 주고받는 메시지에 타임스탬프를 추가하여 메시지의 변조를 확인할 수 있도록 하였다. 또한, 본 발명은 디피-헬만(Diffie-Hellman) 알고리즘을 이용하여 계산한 key(
Figure 112013121094702-pat00031
)를 이용하여 타임 스탬프와 사용자 단말의 정보를 서버의 비밀키
Figure 112013121094702-pat00032
으로 암호화한
Figure 112013121094702-pat00033
를 암호화 하였다. 또한, 서버가 클라이언트에게 전송하는 메시지도 디피-헬만 키를 이용하여 메시지를 암호화하여 전달한다.
두 번째로는, 맨 인 더 미들(Man-in-the-Middle) 공격으로부터 본 발명에 따른 상호 인증 보안 스킴은 안전하게 보호할 수 있다.
종래의 상호 인증 단계에서 공격자는 서버가 보내는 공개키, 인증서, ID를 가로채어 서버의 정보를 받아 공격자가 인증을 시도할 수 있는 공격이 존재한다. 이러한 공격을 방지하기 위해 본 발명에서는 메시지에 타임 스탬프 값을 첨부하여 전송함으로써, 안전성을 보장할 수 있다. 또한, 본 발명의 모든 메시지는 디피 헬만 키를 이용하여 암호화하여 전달하므로 공격자는 메지시의 내용을 알 수 없다.
세 번째로는, 플러딩(Flooding )공격으로부터 본 발명은 보호될 수 있다.
종래의 상호 인증 단계에서 공격자는 서버 또는 클라이언트에 거짓 요청이나, 중간의 메시지를 가로채거나 지우는 방법을 이용하여 플러딩 공격을 시도할 수 있다. 이러한 공격을 방지하도록 본 발명은 타임 스탬프 값을 첨부함으로써, 수신자가 타임 스탬프 값을 이용하여 정당한 메시지인지 검사할 수 있도록 개선하였다.
네 번째로는, 디도스(DDOS) 공격으로부터도 본 발명은 보호될 수 있다.
디도스 공격은 해커가 사용자의 정보 혹은 서버의 정보를 이용하여 하나의 서버에 집중적으로 메시지를 전송하여 특정 서버의 정상적인 기능을 방해하거나, 클라이언트에게 악의적인 메시지를 집중적으로 전송하여 사용자의 단말을 파괴하는 공격이다. 따라서, 사용자 단말과 서버의 통신에서 개인정보와 서버의 정보가 유출되지 않도록 암호화가 필요하다. 본 발명의 상호 인증 보안 스킴에서 모든 메시지는 암호화되어 전송된다. 특히, 클라이언트의 정보인 ID와 비밀번호는 타임 스탬프와 함께 암호화되어 전송되므로, 유효한 타임스탬프인지 검사하는 과정에서 유출여부를 판단할 수 있다. 또한, 서버의 ID는 스마트카드를 통해 클라이언트에게 정보를 전달한다. 그러므로 본 발명의 상호 인증 보안 스킴에서는 클라이언트와 서버의 정보를 악의적인 공격자로부터 안전하게 보장하여 디도스 공격으로부터 안전하다.
다섯 번째, 스푸핑(Spoofing) 공격으로부터 본 발명은 보호될 수 있다.
공격자가 네트워크 장비를 속여서 공격자의 연결이 적합하며, 허가된 컴퓨터로 여기도록 하는 공격이다. 종래에는 등록단계에서 공격자는 서버의 정보를 얻어내어 서버로 위장할 수 있는 공격 루트가 존재한다. 그러므로 서버의 정보를 안전하게 보호할 수 있도록, 본 발명은 등록단계에서 서버의 ID를 스마트카드에 넣어 사용자 단말에게 정보를 전달한다. 또한, 이후의 상호 인증 단계에서도 서버의 ID는 디피-헬만 키로 암호화되어 전달되므로 스푸핑 공격으로부터 안전하다.
여섯 번째, 서버 공격으로부터 본 발명에 따른 사용자 단말과 서버간 상호 인증 방법을 보호할 수 있다.
종래의 Web OS는 사용자의 정보를 서버의 데이터베이스에 저장하기 때문에, 악의적인 공격자가 서버를 공격하게 될 경우, 서버에 등록된 사용자의 정보는 외부로 유출 및 변조될 수 있고, 악용될 수 있다. 그러므로 본 발명의 보안 스킴에서는 사용자 단말의 정보를 서버의 비밀키
Figure 112013121094702-pat00034
을 이용하여 암호화하며, 상기 사용자 단말의 정보를 서버에 저장하지 않고, 사용자 단말의 스마트 카드 안에 저장하여 전달한다. 또한, 사용자 단말은 서버에 접속할 때마다 사용자의 ID와 비밀번호를 암호화 한
Figure 112013121094702-pat00035
와 입력한 ID와 비밀번호를 함께 전송한다. 서버는 사용자 단말이 전송한
Figure 112013121094702-pat00036
를 복호화하여 사용자 단말이 입력한 ID와 비밀번호를 비교하여 올바른 상대인지 인증 할 수 있도록 한다. 또한 서버에 사용자 단말의 등록 정보가 존재하지 않음에 따라, 악의적인 공격자의 서버 공격으로부터 안전하게 사용자의 정보를 보호할 수 있다.
일곱 번째로는, 계정이나 서비스의 하이재킹(hijacking) 공격에 또한 본 발명은 보호될 수 있다.
상기 하이재킹 공격은 암호학적인 개인정보와 비밀번호를 탈취하여 공격자가 사용자의 정보를 도용하는 공격이며, 이러한 공격을 통해 2차적인 공격이 예상됨에 따라 안전하게 사용자의 정보를 보호하도록 하여야 한다. 본 발명에 따른 상호 인증 보안 스킴에서는 안전하게 사용자의 정보를 보호할 수 있도록, 사용자 단말이 서버에게 사용자 단말의 정보를 등록하는 과정에서 서버의 비밀키
Figure 112013121094702-pat00037
과 해시함수로 ID와 비밀번호를 암호화 계산을 한다. 또한, 사용자 단말의 정보를 외부에서 확인 할 수 없도록 스마트 카드를 이용하여 사용자 단말에게 전달하도록 하였다.
마지막 여덟 번째로, 세션 하이재킹 공격으로부터도 본 발명은 보호될 수 있다.
세션 하이잭킹은 공격자가 사용자 단말과 서버의 세션키를 훔치거나 도용하여 불법으로 접근할 수 있는 공격이다. 종래의 Web OS에서는 사용자 단말이 세션키를 생성하여 서버에게 공개키로 암호화하여 전달한다. 이러한 경우, 세션키가 공격자의 세션키로 바뀌거나 노출될 수 있는 위협이 존재하고 있다.
따라서, 본 발명의 상호 인증 스킴에서는 사용자 단말과 서버에서 각각 임의의 값을 선택하여 상대방에게 전달한 후, 상기 임의의 값을 XOR 연산하여 세션키를 설립할 수 있도록 하였다. 또한, 상기 임의의 값을 서로 상대에게 전달할 때에는 암호화를 통해 전달하므로 각각의 임의의 값이 외부의 악의적인 공격으로 인해 노출되지 못하도록 하여 안전한 세션을 설립할 수 있다.
또한, 이러한 사용자 단말과 서버간 상호 인증 방법 및 시스템은 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에 저장될 수 있다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명의 사용자 단말과 서버간 상호 인증 방법 및 시스템은 사용자 단말과 서버간 인증을 위해, 상기 서버에 접속하고자 하는 사용자 단말의 고유 식별정보 및 패스워드 정보를 상기 서버로 전송 시, 상기 서버가 수신한 사용자 단말의 고유 식별정보 및 패스워드 정보를 내부에 저장하지 않고 스마트카드에 저장함으로써, 상기 서버가 공격자로부터 공격받더라도 사용자 단말의 고유 식별정보 및 패스워드 정보가 외부로 유출되는 것을 방지할 수 있는 효과가 있다.
또한 사용자 단말과 서버간 상호 인증 방법 및 시스템은 서버가 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 스마트 카드에 별도로 저장함으로써, 서버로 이루어지는 다양한 공격 예를 들면, 기밀성, 메시지의 무결성, 세션키의 보안, 존속성, 낮은 동의성, 비 단사 동기화, 비 단사 동의성 등의 공격에 대하여 강력한 보안을 가질 수 있는 효과가 있다.
상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.
110: 사용자 단말 120: 서버

Claims (8)

  1. 서버가 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 스마트카드에 저장하여 발급하는 단계;
    상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근하는 단계;
    상기 서버가 상기 스마트카드에 저장된 사용자 단말의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하는 단계; 및
    상기 서버가 자신에게 접근하고자 하는 사용자 단말이 정당하다고 판단한 경우, 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 단계;
    를 포함하되,
    상기 서버가 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 스마트카드에 저장하여 발급하는 단계는
    상기 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하는 과정;
    적어도 하나의 임의의 변수를 생성하는 과정;
    생성된 임의의 변수 중 제1 변수를 비밀키로 설정하고, 상기 비밀키와, 상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 조합 후 암호화하여 제1 사용자 검증값 및 제2 사용자 검증값을 생성하는 과정;
    상기 임의의 변수 중 제2 변수 및 제3 변수를 디피-헬만(Diffie-Hellman) 알고리즘에 적용하여 서버 공개키를 획득하는 과정; 및
    상기 제1 사용자 검증값, 제2 사용자 검증값, 서버 공개키, 제2 변수, 제3 변수, 상기 서버의 아이디 정보, 해시함수를 스마트카드에 저장하여 발급하는 과정;
    을 포함하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 서버가 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하는 단계는
    상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 Out-of-Band 채널을 통해 수신하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 방법.
  4. 제1항에 있어서,
    상기 사용자 단말이 자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근하는 단계는
    적어도 하나의 임의의 변수를 생성하는 과정;
    상기 스마트 카드 내 저장된 제3 변수에 기초하여 사용자 단말 공개키를 연산하는 과정;
    상기 스마트 카드 내 저장된 서버 공개키에 기초하여 암호화키를 연산하는 과정;
    상기 임의의 변수 중 하나인 제5 변수, 타임 스탬프, 자신의 고유 식별자 정보 및 패스워드 정보를 암호화하여 고유정보 암호화값을 생성하는 과정;
    상기 제1 사용자 검증값, 제2 사용자 검증값 및 타임 스탬프를 상기 암호화키로 암호화하여 사용자 검증 암호화값을 생성하는 과정; 및
    상기 고유정보 암호화값, 사용자 검증 암호화값, 사용자 단말 공개키를 상기 서버로 전송하는 과정;
    을 포함하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 방법.
  5. 제1항에 있어서,
    상기 서버가 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하는 단계는
    상기 사용자 단말로부터 수신한 사용자 단말 공개키를 이용하여 제1 복호화키를 연산하는 과정;
    상기 제1 복호화키를 이용하여 상기 사용자 단말로부터 수신한 사용자 검증 암호화값을 복호화하는 과정;
    복호화된 상기 사용자 검증 암호화값으로부터 타임스탬프를 추출하여 유효성을 확인하는 과정;
    상기 제1 복호화키와 상기 사용자 단말로부터 수신한 패스워드 정보에 기초하여 제2 복호화키를 생성하는 과정;
    생성된 상기 제2 복호화키를 이용하여 상기 사용자 단말로부터 수신한 고유정보 암호화값을 복호화하는 과정;
    복호화된 상기 고유정보 암호화값으로부터 상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 획득하고, 획득한 상기 고유 식별자 정보 및 패스워드 정보가 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보와 동일한지 비교하는 과정; 및
    상기 고유정보 암호화값으로부터 획득한 고유 식별자 정보 및 패스워드 정보가 상기 서버로 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보와 동일한 경우, 상기 서버로 접근하고자 하는 사용자 단말이 정당하다고 판단하는 과정;
    을 포함하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 방법.
  6. 제5항에 있어서,
    상기 서버가 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 단계는
    상기 고유정보 암호화값으로부터 제5 변수를 획득하는 과정;
    임의의 제6 변수를 생성하는 과정;
    상기 제5 변수와 제6 변수에 기초하여 세션키를 생성하여 설립하는 과정; 및
    상기 제5 변수, 제6 변수, 서버의 고유 식별자 정보 및 타임스탬프를 암호화하여 상기 사용자 단말로 전송하는 과정;
    을 포함하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 방법.
  7. 제1항 및 제3항 내지 제6항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
  8. 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 상기 암호화된 고유 식별자 정보 및 패스워드 정보를 저장하는 스마트카드를 발급하고, 상기 스마트카드에 저장된 사용자 단말의 고유 식별자 정보 및 패스워드 정보와 자신에게 접근하고자 하는 사용자 단말로부터 수신한 고유 식별자 정보 및 패스워드 정보를 상호 비교하여 자신에게 접근하고자 하는 사용자 단말의 정당성 여부를 판단하며, 자신에게 접근하고자 하는 사용자 단말이 정당하다고 판단한 경우, 정당하다고 판단한 사용자 단말간에 세션키를 설립하여 통신 채널을 구축하는 서버; 및
    자신의 고유 식별자 정보 및 패스워드 정보를 상기 서버로 전송하여 상기 서버로 접근을 시도하는 사용자 단말;
    을 포함하되,
    상기 서버는
    상기 사용자 단말로부터 암호화된 고유 식별자 정보 및 패스워드 정보를 수신하고, 적어도 하나의 임의의 변수를 생성하며, 생성된 임의의 변수 중 제1 변수를 비밀키로 설정하고, 상기 비밀키와, 상기 사용자 단말의 고유 식별자 정보 및 패스워드 정보를 조합 후 암호화하여 제1 사용자 검증값 및 제2 사용자 검증값을 생성하고, 상기 임의의 변수 중 제2 변수 및 제3 변수를 디피-헬만(Diffie-Hellman) 알고리즘에 적용하여 서버 공개키를 획득하며, 상기 제1 사용자 검증값, 제2 사용자 검증값, 서버 공개키, 제2 변수, 제3 변수, 상기 서버의 아이디 정보, 해시함수를 스마트카드에 저장하여 발급하는 것을 특징으로 하는 사용자 단말과 서버간 상호 인증 시스템.
KR1020130168424A 2013-12-31 2013-12-31 사용자 단말과 서버간 상호 인증 방법 및 시스템 KR101531662B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130168424A KR101531662B1 (ko) 2013-12-31 2013-12-31 사용자 단말과 서버간 상호 인증 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130168424A KR101531662B1 (ko) 2013-12-31 2013-12-31 사용자 단말과 서버간 상호 인증 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101531662B1 true KR101531662B1 (ko) 2015-06-25

Family

ID=53519838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130168424A KR101531662B1 (ko) 2013-12-31 2013-12-31 사용자 단말과 서버간 상호 인증 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101531662B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147673A1 (ko) * 2017-02-09 2018-08-16 에스지에이솔루션즈 주식회사 무선 센서 네트워크 환경에서의 익명성을 보장하는 대칭키 기반의 사용자 인증 방법
WO2018147488A1 (ko) * 2017-02-08 2018-08-16 에스지에이솔루션즈 주식회사 클라우드 컴퓨팅을 위한 안전한 속성기반 인증 방법
KR101959439B1 (ko) * 2017-09-12 2019-03-18 (주)한컴인터프리 통역방법
WO2020197221A1 (ko) * 2019-03-22 2020-10-01 삼성전자 주식회사 통신 방법 및 통신 디바이스
KR20210013788A (ko) * 2019-07-29 2021-02-08 유비벨록스(주) 계좌이체 시스템 및 그 방법
WO2022103890A1 (en) * 2020-11-10 2022-05-19 Thirdwayv Inc. Identification and authentication of multiple controllers
CN115102712A (zh) * 2022-05-17 2022-09-23 刘勇 一种增强的终端标识的方法、装置、电子设备及储存介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040052304A (ko) * 2002-12-16 2004-06-23 한국전자통신연구원 디지털 하드웨어 시스템 보안 장치 및 방법
KR20050048760A (ko) * 2003-11-20 2005-05-25 주식회사 비즈모델라인 스마트 카드를 이용한 정보 또는 데이터 수신 방법 및시스템
KR100629495B1 (ko) * 2005-07-23 2006-09-28 삼성전자주식회사 그룹 키 생성방법
KR20130042266A (ko) * 2011-10-18 2013-04-26 동서대학교산학협력단 무선 센서 네트워크를 위한 암호 및 스마트카드 기반의 사용자 인증방법.

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040052304A (ko) * 2002-12-16 2004-06-23 한국전자통신연구원 디지털 하드웨어 시스템 보안 장치 및 방법
KR20050048760A (ko) * 2003-11-20 2005-05-25 주식회사 비즈모델라인 스마트 카드를 이용한 정보 또는 데이터 수신 방법 및시스템
KR100629495B1 (ko) * 2005-07-23 2006-09-28 삼성전자주식회사 그룹 키 생성방법
KR20130042266A (ko) * 2011-10-18 2013-04-26 동서대학교산학협력단 무선 센서 네트워크를 위한 암호 및 스마트카드 기반의 사용자 인증방법.

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147488A1 (ko) * 2017-02-08 2018-08-16 에스지에이솔루션즈 주식회사 클라우드 컴퓨팅을 위한 안전한 속성기반 인증 방법
WO2018147673A1 (ko) * 2017-02-09 2018-08-16 에스지에이솔루션즈 주식회사 무선 센서 네트워크 환경에서의 익명성을 보장하는 대칭키 기반의 사용자 인증 방법
KR101959439B1 (ko) * 2017-09-12 2019-03-18 (주)한컴인터프리 통역방법
WO2020197221A1 (ko) * 2019-03-22 2020-10-01 삼성전자 주식회사 통신 방법 및 통신 디바이스
KR20210013788A (ko) * 2019-07-29 2021-02-08 유비벨록스(주) 계좌이체 시스템 및 그 방법
KR102278763B1 (ko) * 2019-07-29 2021-07-19 유비벨록스(주) 계좌이체 시스템 및 그 방법
WO2022103890A1 (en) * 2020-11-10 2022-05-19 Thirdwayv Inc. Identification and authentication of multiple controllers
CN115102712A (zh) * 2022-05-17 2022-09-23 刘勇 一种增强的终端标识的方法、装置、电子设备及储存介质
CN115102712B (zh) * 2022-05-17 2024-04-16 刘勇 一种增强的终端标识的方法、装置、电子设备及储存介质

Similar Documents

Publication Publication Date Title
CN109309565B (zh) 一种安全认证的方法及装置
US9847882B2 (en) Multiple factor authentication in an identity certificate service
KR101531662B1 (ko) 사용자 단말과 서버간 상호 인증 방법 및 시스템
US8209744B2 (en) Mobile device assisted secure computer network communication
JP6896940B2 (ja) 第1のアプリケーションと第2のアプリケーションとの間の対称型相互認証方法
US10594479B2 (en) Method for managing smart home environment, method for joining smart home environment and method for connecting communication session with smart device
CN108418691A (zh) 基于sgx的动态网络身份认证方法
JP2009529832A (ja) 発見不可能、即ち、ブラック・データを使用するセキュアなデータ通信
CN108809633B (zh) 一种身份认证的方法、装置及系统
TW200402981A (en) Methods for remotely changing a communications password
CN112351037B (zh) 用于安全通信的信息处理方法及装置
CN112751821B (zh) 一种数据传输方法、电子设备和一种存储介质
KR20110083886A (ko) 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법
EP3000216B1 (en) Secured data channel authentication implying a shared secret
Noh et al. Secure authentication and four-way handshake scheme for protected individual communication in public wi-fi networks
CN110519222B (zh) 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
CN104243452A (zh) 一种云计算访问控制方法及系统
KR100957044B1 (ko) 커버로스를 이용한 상호 인증 방법 및 그 시스템
CN111740995B (zh) 一种授权认证方法及相关装置
KR20090054774A (ko) 분산 네트워크 환경에서의 통합 보안 관리 방법
KR102415628B1 (ko) Dim을 이용한 드론 인증 방법 및 장치
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
WO2022135383A1 (zh) 一种身份鉴别方法和装置
CN115333779A (zh) 一种验证数据的方法、装置及电子设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190411

Year of fee payment: 5

R401 Registration of restoration