KR20190023353A - Smart card based authentication system, device and method - Google Patents

Smart card based authentication system, device and method Download PDF

Info

Publication number
KR20190023353A
KR20190023353A KR1020170108943A KR20170108943A KR20190023353A KR 20190023353 A KR20190023353 A KR 20190023353A KR 1020170108943 A KR1020170108943 A KR 1020170108943A KR 20170108943 A KR20170108943 A KR 20170108943A KR 20190023353 A KR20190023353 A KR 20190023353A
Authority
KR
South Korea
Prior art keywords
authentication
value
smart card
service providing
server
Prior art date
Application number
KR1020170108943A
Other languages
Korean (ko)
Other versions
KR102021956B1 (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 KR1020170108943A priority Critical patent/KR102021956B1/en
Publication of KR20190023353A publication Critical patent/KR20190023353A/en
Application granted granted Critical
Publication of KR102021956B1 publication Critical patent/KR102021956B1/en

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/3236Cryptographic 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 cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to smart card-based authentication system, device and method. The smart card based authentication system according to one technical idea of the present invention comprises a user terminal, a service providing server, and an authentication server, wherein the authentication server can receive a service providing server ID from the service providing server and calculate a hash value on the received service providing server ID and security information. The authentication server can receive a registration request message including a user information value from the user terminal, and generate a smart card verification value for smart card verification based production method the received registration request message. The authentication server can store the generated smart card value in the smart card and issue a smart card storing the smart card verification value to the user terminal.

Description

스마트 카드 기반 인증 시스템, 장치 및 인증 방법{SMART CARD BASED AUTHENTICATION SYSTEM, DEVICE AND METHOD}TECHNICAL FIELD [0001] The present invention relates to a smart card-based authentication system,

본 발명의 기술적 사상은 스마트 카드 기반 인증 시스템, 장치 및 방법에 관한 것으로, 보다 상세하게는, 다중 서버 환경에서의 스마트 카드 기반 인증에 관한 것이다.The technical idea of the present invention relates to a smart card-based authentication system, apparatus and method, and more particularly to smart card-based authentication in a multi-server environment.

컴퓨터 네트워크 및 서비스 제공 서버 등의 급속한 성정으로, 자원 효율성을 높이기 위한 다중 서버 아키텍처(Multi-server Architecture)가 제안되었다.In order to increase resource efficiency, a multi-server architecture has been proposed due to the rapid growth of computer networks and service providing servers.

이러한 다중 서버 아키텍처는 하나의 서버에 대한 자원의 제약성을 높일 수 있어서, 다중 서버 환경에서의 인증 프로토콜은 다양한 연구를 통해 지속적으로 발전되고 있다.These multi-server architectures can increase resource constraints on a single server, so authentication protocols in a multi-server environment are constantly evolving through various studies.

다만, 다중 서버 환경에서는 서비스를 제공받고자 하는 사용자가 원격으로 서버에 접속하기 때문에, 데이터 도청 및 위변조 공격에 노출될 수 있다.However, in a multi-server environment, a user who wants to receive a service accesses the server remotely, which may be exposed to data eavesdropping and forgery attacks.

따라서, 이러한 데이터 도청 및 위변조 공격과 같은 보안 문제를 해결하기 위한 안전한 인증 기술이 필요하다.Therefore, there is a need for a secure authentication technique to solve security problems such as data interception and forgery attacks.

본 발명의 기술적 사상에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 다중 서버 환경에서 안전성이 향상된 스마트 카드 기반 인증 프로토콜을 제공하는데 목적이 있다.A smart card-based authentication system, apparatus and method according to the technical idea of the present invention is intended to provide a smart card-based authentication protocol with improved security in a multi-server environment.

본 발명은 인증을 위한 프로토콜의 연산량을 감소시켜 인증 프로토콜의 효율성을 향상시키는데 목적이 있다.An object of the present invention is to reduce the amount of computation of a protocol for authentication and to improve the efficiency of an authentication protocol.

또한, 본 발명은 스마트 카드를 이용한 키 교환 및 다양한 응용 분야에 활용하는데 목적이 있다.In addition, the present invention has an object to utilize smart cards for key exchange and various applications.

본 발명의 기술적 사상에 따른 충돌예측장치 및 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem to be solved by the apparatus and method for predicting collision according to the technical idea of the present invention is not limited to the above-mentioned problem (s), and another problem (s) not mentioned is clearly understood by those skilled in the art .

본 발명의 기술적 사상에 의한 일 양태에 따른 스마트 카드 기반 인증 방법은 서비스 제공 서버로부터 서비스 제공 서버 ID를 수신하는 단계; 상기 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산하는 단계; 사용자 단말로부터 사용자 정보 값을 포함하는 등록 요청 메시지를 수신하는 단계; 상기 수신된 등록 요청 메시지를 기초로, 스마트 카드 검증을 위한 스마트 카드 검증값을 생성하는 단계; 상기 생성된 스마트 카드 검증값을 스마트 카드에 저장하는 단계; 및 상기 스마트 카드 검증값이 저장된 스마트 카드를 상기 사용자 단말에 발행하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a smart card-based authentication method including: receiving a service providing server ID from a service providing server; Calculating a hash value for the received service providing server ID and security information; Receiving a registration request message including a user information value from a user terminal; Generating a smart card verification value for smart card verification based on the received registration request message; Storing the generated smart card verification value in a smart card; And issuing a smart card to the user terminal in which the smart card verification value is stored.

예시적인 실시예에 따르면, 상기 사용자 정보 값 및 보안 정보를 기초로, 사용자 검증값을 생성하는 단계; 및 상기 생성된 사용자 검증값, 상기 사용자 정보 값 및 사용자 등록 상태에 대한 상태 비트 값을 검증자 테이블에 저장하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method includes generating a user verification value based on the user information value and the security information; And storing the generated user verification value, the user information value, and the status bit value for the user registration status in the verifier's table.

예시적인 실시예에 따르면, 상기 보안 정보는 마스터 시크릿 키(master secret key) 및 시크릿 넘버(secret number)를 포함할 수 있다.According to an exemplary embodiment, the security information may include a master secret key and a secret number.

예시적인 실시예에 따르면, 상기 서비스 제공 서버로부터, 상기 서비스 제공 서버가 생성한 인증값 및 타임 스탬프를 포함하는 로그인 요청 메시지를 수신하는 단계; 및 상기 수신된 로그인 요청 메시지를 수신한 때의 타임 스탬프와 상기 로그인 요청 메시지에 포함된 상기 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함할 수 있다.According to an exemplary embodiment of the present invention, the method includes receiving a login request message including the authentication value and the time stamp generated by the service providing server from the service providing server; And confirming the authentication time based on the time stamp when the received login request message is received and the time stamp included in the login request message.

예시적인 실시예에 따르면, 상기 수신된 로그인 요청 메시지에 포함된 인증값, 상기 서비스 제공 서버 ID 및 상기 보안 정보를 기초로, 제2 랜덤값을 계산하는 단계; 상기 계산된 제2 랜덤값 및 상기 보안 정보를 기초로, 인증값 M′을 계산하는 단계; 상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M을 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M이 동일하면, 상기 서비스 제공 서버를 정당한 서비스 제공 서버로 인증하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method includes calculating a second random value based on the authentication value included in the received login request message, the service providing server ID, and the security information. Calculating an authentication value M 'based on the calculated second random value and the security information; Comparing the calculated authentication value M 'with an authentication value M included in the login request message; And authenticating the service providing server as a legitimate service providing server if the calculated authentication value M 'is equal to the authentication value M included in the login request message as a result of the comparison.

예시적인 실시예에 따르면, 상기 사용자 단말을 인증하기 위한 사용자 검증값을 검색하는 단계; 상기 검색된 사용자 검증값을 기초로, 상기 사용자 단말이 생성한 제1 랜덤값을 계산하는 단계; 상기 계산된 제1 랜덤값을 기초로, 상기 인증값 C′을 계산하는 단계; 상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C이 동일하면, 상기 사용자 단말을 정당한 사용자 단말로 인증하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, there is provided a method comprising: retrieving a user verification value for authenticating the user terminal; Calculating a first random value generated by the user terminal based on the retrieved user verification value; Calculating the authentication value C 'based on the calculated first random value; Comparing the calculated authentication value C 'with an authentication value C included in the login request message; And authenticating the user terminal as a legitimate user terminal if the calculated authentication value C 'is equal to the authentication value C included in the login request message as a result of the comparison.

본 발명의 기술적 사상에 의한 다른 양태에 따른 스마트 카드 기반 인증 방법은 사용자 단말에 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득하는 단계; 상기 획득된 사용자 정보를 기초로, 스마트 카드 검증값(VerforSCi′)을 계산하는 단계; 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)을 비교하는 단계; 및 비교 결과, 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)이 동일하면, 상기 스마트 카드에 대한 사용자를 인증하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a smart card-based authentication method including: acquiring user information in a state that a smart card is inserted in a user terminal; Calculating a smart card verification value (VerforSC i ') based on the obtained user information; Comparing the calculated smart card verification value (VerforSC i ') with a smart card verification value (VerforSC i ) stored in the smart card; And authenticating the user to the smart card if the calculated smart card verification value VerforSC i 'is the same as the smart card verification value VerforSC i stored in the smart card as a result of the comparison.

예시적인 실시예에 따르면, 선택된 제1 랜덤값을 이용하여 인증값 B 및 인증값 C를 계산하는 단계; 및 상기 계산된 인증값 B, 인증값 C 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버에 전송하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, calculating an authentication value B and an authentication value C using the selected first random value; And transmitting the login request message including the calculated authentication value B, the authentication value C, and the time stamp to the service providing server.

예시적인 실시예에 따르면, 상기 서비스 제공 서버로부터 응답 메시지를 수신하는 단계; 및 상기 수신된 응답 메시지에 포함된 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method includes receiving a response message from the service providing server; And confirming the authentication time based on the time stamp included in the received response message.

예시적인 실시예에 따르면, 상기 응답 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계; 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V가 동일하면, 상기 서비스 제공 서버 및 상기 인증 서버를 인증하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, calculating an authentication value V 'based on the authentication value included in the response message; Comparing the calculated authentication value V 'with an authentication value V included in the received response message; And authenticating the service providing server and the authentication server when the calculated authentication value V 'is equal to the authentication value V included in the received response message as a result of the comparison.

예시적인 실시예에 따르면, 상기 인증된 서비스 제공 서버 및 상기 인증된 인증 서버와 동일한 세션키를 생성하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method may further include generating the same session key as the authenticated service providing server and the authenticated authentication server.

본 발명의 기술적 사상에 의한 또 다른 양태에 따른 스마트 카드 기반 인증 방법은 사용자 단말로부터 로그인 요청 메시지를 수신하는 단계; 선택된 제2 랜덤값과, 인증 서버로부터 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 기초로 인증값 K 및 인증값 M을 계산하는 단계; 및 상기 계산된 인증값 K 및 인증값 M과, 상기 서비스 제공 서버 ID 및 타임 스탬프를 포함하는 로그인 요청 메시지를 상기 인증 서버에 전송하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a smart card-based authentication method comprising: receiving a login request message from a user terminal; Calculating an authentication value K and an authentication value M based on the selected second random value, the service providing server ID received from the authentication server, and the hash value for the security information; And transmitting the login request message including the calculated authentication value K and the authentication value M, the service providing server ID, and the time stamp to the authentication server.

예시적인 실시예에 따르면, 상기 인증 서버로부터, 상기 전송된 로그인 요청 메시지에 대응하는 상호 인증 메시지를 수신하는 단계; 상기 상호 인증 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계; 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V가 동일하면, 상기 인증 서버를 정당한 인증 서버로 인증하는 단계를 포함할 수 있다.According to an exemplary embodiment, receiving from the authentication server a mutual authentication message corresponding to the transmitted login request message; Calculating an authentication value V 'based on the authentication value included in the mutual authentication message; Comparing the calculated authentication value V 'with an authentication value V included in the mutual authentication message; And authenticating the authentication server to a valid authentication server if the calculated authentication value V 'and the authentication value V included in the mutual authentication message are equal to each other.

예시적인 실시예에 따르면, 상기 인증값 V 및 타임 스탬프를 포함하는 응답 메시지를 상기 사용자 단말에 전송하는 단계를 더 포함할 수 있다.According to an exemplary embodiment, the method may further include transmitting a response message including the authentication value V and a time stamp to the user terminal.

본 발명의 기술적 사상에 의한 실시예들에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 다중 서버 환경에서의 인증 프로토콜의 안정성을 향상시킬 수 있다.The smart card-based authentication system, apparatus and method according to embodiments of the present invention can improve the stability of an authentication protocol in a multi-server environment.

본 발명은 인증을 위한 프로토콜의 연산량을 감소시킬 수 있어서, 인증 프로토콜의 효율성을 향상시킬 수 있다.The present invention can reduce the amount of computation of the protocol for authentication, thereby improving the efficiency of the authentication protocol.

또한, 본 발명에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 스마트 카드를 이용한 키 교환 및 다양한 응용 분야에 활용할 수 있다. Further, the smart card-based authentication system, apparatus, and method according to the present invention can be utilized for key exchange using a smart card and various application fields.

본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 2는 본 발명의 다양한 실시예에 따른 단말기의 구성을 나타내는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계에 대한 흐름도이다.
도 4는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계에 대한 흐름도이다.
도 5는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계에 대한 흐름도이다.
도 6은 본 발명의 다양한 실시예에 따른 패스워드 변경 동작에 대한 흐름도이다.
BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited herein.
1 is a block diagram illustrating a configuration of a server according to various embodiments of the present invention.
2 is a block diagram illustrating a configuration of a terminal according to various embodiments of the present invention.
3 is a flow diagram of the registration step of a smart card-based authentication protocol according to various embodiments of the present invention.
4 is a flow diagram of a login step of a smart card-based authentication protocol in accordance with various embodiments of the present invention.
5 is a flowchart of authentication and key agreement steps of a smart card-based authentication protocol according to various embodiments of the present invention.
6 is a flow diagram of a password change operation in accordance with various embodiments of the present invention.

본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. However, it should be understood that the technical idea of the present invention is not limited to the specific embodiments but includes all changes, equivalents, and alternatives included in the technical idea of the present invention.

본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0027] In the following description of the present invention, a detailed description of known technologies will be omitted when it is determined that the technical idea of the present invention may be unnecessarily obscured. In addition, numerals (e.g., first, second, etc.) used in the description of the present invention are merely an identifier for distinguishing one component from another.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.Also, in this specification, when an element is referred to as being "connected" or "connected" with another element, the element may be directly connected or directly connected to the other element, It should be understood that, unless an opposite description is present, it may be connected or connected via another element in the middle.

또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processor), 어플리케이션 프로세서(Application Processor), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. The terms "to", "to", "to", "to", and "module" in the present specification mean units for processing at least one function or operation, An application processor, a microcontroller, a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processor unit (APU), a digital signal processor (DSP) Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), or the like, or a combination of hardware and software.

그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.It is to be clarified that the division of constituent parts in this specification is merely a division by each main function of each constituent part. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more functions according to functions that are more subdivided. In addition, each of the constituent units described below may additionally perform some or all of the functions of other constituent units in addition to the main functions of the constituent units themselves, and that some of the main functions, And may be carried out in a dedicated manner.

이하, 본 발명의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail.

먼저, 본 발명에 따른 다중 서버 아키텍처에 포함되는 서버의 구성에 대해 설명한다.First, the configuration of a server included in the multi-server architecture according to the present invention will be described.

도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of a server according to various embodiments of the present invention.

도 1을 참조하면, 서버(100)는 프로세서(110), 메모리(130) 및 통신 모듈(150)을 포함할 수 있다.Referring to FIG. 1, a server 100 may include a processor 110, a memory 130, and a communication module 150.

프로세서(110)는 서버(100)의 전반적인 동작을 제어할 수 있다.The processor 110 may control the overall operation of the server 100.

예를 들면, 프로세서(110)는 스마트 키 기반의 인증 프로토콜과 관련된 다양한 동작을 제어할 수 있고, 수행할 수 있다.For example, processor 110 may control and perform various operations associated with a smart key based authentication protocol.

메모리(130)는 서버(100)의 동작과 관련된 다양한 정보를 저장할 수 있다. The memory 130 may store various information related to the operation of the server 100.

예를 들면, 메모리(130)는 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 저장할 수 있다. For example, the memory 130 may store various information related to a smart card-based authentication protocol.

통신 모듈(150)은 서버(100)와 다른 서버 또는 서버(100)와 사용자 단말 간의 유선 통신 또는 무선 통신을 제공할 수 있다. The communication module 150 may provide wired or wireless communication between the server 100 and another server or server 100 and a user terminal.

예를 들면, 통신 모듈(150)은 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 송수신할 수 있다.For example, the communication module 150 may send and receive various information related to a smart card-based authentication protocol.

서버(100)는 후술할 서비스 제공 서버(400), 인증 서버(500)일 수 있고, 사용자 단말(300)일 수도 있다.The server 100 may be a service providing server 400, an authentication server 500, or a user terminal 300, which will be described later.

도 2는 본 발명의 다양한 실시예에 따른 단말기의 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of a terminal according to various embodiments of the present invention.

도 2를 참조하면, 단말기(200)는 프로세서(210), 메모리(230), 통신 모듈(250) 및 스마트 키 리더 모듈(270)을 포함할 수 있다.Referring to FIG. 2, the terminal 200 may include a processor 210, a memory 230, a communication module 250, and a smart key reader module 270.

프로세서(210)는 단말기(200)의 전반적인 동작을 제어할 수 있다.The processor 210 may control the overall operation of the terminal 200.

예를 들면, 프로세서(210)는 스마트 키 기반의 인증 프로토콜과 관련된 다양한 동작을 제어할 수 있고, 수행할 수 있다.For example, processor 210 may control and perform various operations associated with a smart key-based authentication protocol.

또한, 프로세서(210)는 스마트 카드 읽기/쓰기와 관련된 동작을 제어할 수 있고, 수행할 수도 있다.In addition, the processor 210 may control and perform operations related to smart card read / write operations.

메모리(230)는 단말기(200)의 동작과 관련된 다양한 정보를 저장 수 있다. The memory 230 may store various information related to the operation of the terminal 200.

예를 들면, 메모리(230)는 스마트 카드, 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 저장할 수 있다. For example, the memory 230 may store various information related to a smart card, a smart card-based authentication protocol.

통신 모듈(250)은 단말기(200)와 서버(100) 간의 유선 통신 또는 무선 통신을 제공할 수 있다. The communication module 250 may provide wired communication or wireless communication between the terminal 200 and the server 100.

예를 들면, 통신 모듈(250)은 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 송수신할 수 있다.For example, the communication module 250 may send and receive various information related to a smart card-based authentication protocol.

스마트 키 리더 모듈(270)은 스마트 카드 읽기/쓰기와 관련된 동작을 수행할 수 있다. 여기서 스마트 카드는 실물 형태가 없는 가상 카드일 수 있고, 물리적인 카드 형태의 실물 카드일 수도 있다.The smart key reader module 270 may perform operations related to smart card read / write. Here, the smart card may be a virtual card having no physical form, or may be a physical card in the form of a physical card.

예를 들면, 스마트 키 리더 모듈(270)은 가상 카드를 인식하고, 읽기/쓰기할 수 있는 모듈일 수 있고, 실물 카드를 인식하고, 읽기/쓰기 할 수 있는 모듈일 수도 있다.For example, the smart key reader module 270 may be a module capable of recognizing a virtual card, reading / writing, and recognizing and reading / writing a physical card.

스마트 키 리더 모듈(270)은 상술한 프로세서(210) 및 메모리(230)에 의해 구현될 수도 있다. 이에 따라, 단말기(200)는 스마트 키 리더 모듈(270)을 실질적으로 구비하지 않을 수도 있다.The smart key reader module 270 may be implemented by the processor 210 and the memory 230 described above. Accordingly, the terminal 200 may not substantially include the smart key reader module 270.

다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법의 동작 과정에 따른 스마트 카드 기반의 인증 프로토콜은 등록 단계(10), 로그인 단계(20) 및 인증 및 키 동의 단계(30)를 포함할 수 있다. 이하, 이에 대해 설명한다.The smart card-based authentication protocol according to the operation procedure of the smart card-based authentication system, apparatus and authentication method according to various embodiments includes a registration step 10, a login step 20, and an authentication and key agreement step 30 . This will be described below.

먼저, 도 3을 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계(10)를 설명한다.First, with reference to FIG. 3, a registration step (10) of a smart card-based authentication protocol according to various embodiments of the present invention is described.

도 3은 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계에 대한 흐름도이다.3 is a flow diagram of the registration step of a smart card-based authentication protocol according to various embodiments of the present invention.

도 3을 참조하면, 스마트 카드 기반의 인증 프로토콜은 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500)가 포함된 다중 서버 아키텍처로 구성될 수 있다.Referring to FIG. 3, a smart card-based authentication protocol may be configured with a multi-server architecture including a user terminal 300, a service providing server 400, and an authentication server 500.

여기서 사용자 단말(300)은 i번째 사용자 단말(Ui)일 수 있고, 서비스 제공 서버(400)는 j번째 서비스 제공 서버(Sj)일 수 있다. 그리고 인증 서버(500)는 신뢰할 수 있는 인증 서버로, 사용자 단말(300)과 서비스 제공 서버(400)의 등록 및 인증을 수행할 수 있다. 인증 서버(500)는 컨트롤 서버(control server)라고 칭할 수도 있다.Here, the user terminal 300 may be an i-th user terminal U i , and the service providing server 400 may be a j-th service providing server S j . The authentication server 500 is a trusted authentication server and can perform registration and authentication of the user terminal 300 and the service providing server 400. The authentication server 500 may also be referred to as a control server.

서비스 제공 서버(400)는 인증 서버(500)에 서비스 제공 서버 ID를 전송할 수 있다(S101).The service providing server 400 may transmit the service providing server ID to the authentication server 500 (S101).

예를 들면, 서비스 제공 서버(400)는 서비스 제공 서버(400)의 ID 값인 SIDj를 인증 서버(500)에 전송할 수 있다. For example, the service providing server 400 may transmit the SID j, which is the ID value of the service providing server 400, to the authentication server 500.

구체적으로, 서비스 제공 서버(400)는 서비스 제공 서버(400)의 ID 값인 SIDj를 보안 채널을 통해 인증 서버(500)에 전송할 수 있다.Specifically, the service providing server 400 may transmit the SID j, which is the ID value of the service providing server 400, to the authentication server 500 through the secure channel.

인증 서버(500)는 전송된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산할 수 있다(S103).The authentication server 500 may calculate a hash value for the transmitted service providing server ID and security information (S103).

예를 들면, 인증 서버(500)는 전송된 서비스 제공 서버 ID인 SIDj 및 보안 정보를 해쉬 함수(hash function) 처리한 해쉬 값을 계산할 수 있다. 여기서 보안 정보는 인증 서버(500)가 선택한 마스터 시크릿 키(master secret key, x) 및 인증 서버(500)가 선택한 시크릿 넘버(secret number, y)를 포함할 수 있다.For example, the authentication server 500 may calculate the hash value of the transmitted service providing server ID SID j and the hash function of the security information. Here, the security information may include a master secret key (x) selected by the authentication server (500) and a secret number (y) selected by the authentication server (500).

인증 서버(500)는 상술한 서비스 제공 서버 ID(SIDj), 마스터 시크릿 키(x), 시크릿 넘버(y)를 아래와 같은 식(1), (2)으로 계산할 수 있다.The authentication server 500 can calculate the service providing server ID SID j , the master secret key x and the secret number y by the following equations (1) and (2).

(1) h(SIDj||y)(1) h (SID j || y)

(2) h(x||y)(2) h (x || y)

인증 서버(500)는 서비스 제공 서버 ID(SIDj), 마스터 시크릿 키(x), 시크릿 넘버(y)를 식 (1), (2)에 의해 계산된 결과인 해쉬 값을 얻을 수 있다.The authentication server 500 can obtain the hash value that is the result of the calculation of the service providing server ID (SID j ), the master secret key (x), and the secret number (y) using the equations (1) and (2).

인증 서버(500)는 계산된 해쉬 값을 서비스 제공 서버(400)에 전송할 수 있다(S105).The authentication server 500 can transmit the calculated hash value to the service providing server 400 (S105).

예를 들면, 인증 서버(500)는 상술한 식(1), (2)에 의해 계산된 결과인 해쉬 값을 서비스 제공 서버(400)에 보안 채널을 통해 전송할 수 있다.For example, the authentication server 500 can transmit a hash value, which is a result calculated by the above equations (1) and (2), to the service providing server 400 through the secure channel.

사용자 단말(300)은 사용자 정보값을 계산할 수 있다(S107).The user terminal 300 may calculate the user information value (S107).

예를 들면, 사용자 단말(300)은 사용자의 ID(IDi), 패스워드(Pi)를 선택하고, 선택된 사용자 ID 및 패스워드로 사용자 정보 해쉬 값을 계산할 수 있다.For example, the user terminal 300 can select a user ID (ID i ) and a password (P i ), and calculate a user information hash value with the selected user ID and password.

구체적으로, 사용자 단말(300)은 사용자 ID(IDi) 및 패스워드(Pi)를 아래 식(3)으로 계산할 수 있다.Specifically, the user terminal 300 can calculate the user ID (ID i ) and the password (P i ) by the following equation (3).

(3) UIi=h(IDi||h(Pi))(3) UI i = h (ID i || h (P i )

사용자 단말(300)은 계산된 사용자 정보 값을 포함하는 등록 요청 메시지를 인증 서버(500)에 전송할 수 있다(S109).The user terminal 300 may transmit a registration request message including the calculated user information value to the authentication server 500 (S109).

예를 들면, 사용자 단말(300)은 인증 서버(500)에 등록 요청 메시지(IDi, UIi)를 전송할 수 있다.For example, the user terminal 300 may transmit a registration request message (ID i , UI i ) to the authentication server 500.

인증 서버(500)는 검증 값을 생성할 수 있다(S111).The authentication server 500 may generate a verification value (S111).

예를 들면, 인증 서버(500)는 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)을 생성할 수 있다. 여기서 스마트 카드 검증값(VerforSCi) 은 후술할 로그인 단계에서 사용자를 검증하기 위한 스마트 카드 검증값의 기준값이 될 수 있다. 이에 따라, 인증 서버(500)가 생성한 스마트 카드 검증값(VerforSCi)은 스마트 카드 검증 기준값이라고 할 수 있다.For example, the authentication server 500 may generate a user verification value (UserVer i ), a smart card verification value (VerforSC i ), and a first authentication value (A i ). Here, the smart card verification value (VerforSC i ) may be a reference value of the smart card verification value for verifying the user at a login step to be described later. Accordingly, the smart card verification value (VerforSC i ) generated by the authentication server 500 can be referred to as a smart card verification reference value.

구체적으로, 인증 서버(500)는 전송된 등록 요청 메시지를 기초로, 아래의 식(4), (5), (6)으로 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai) 각각을 계산할 수 있다. Specifically, based on the transmitted registration request message, the authentication server 500 calculates the user verification value UserVer i , the smart card verification value VerforSC i , It is possible to calculate each of the first authentication values A i .

(4) UserVeri=h(IDi||x)(4) UserVer i = h (ID i || x)

(5) VerforSCi=h(IDi||h(y)||UIi)(5) VerforSC i = h (ID i || h (y) || UI i )

(6) Ai=UserVeri

Figure pat00001
UIi
Figure pat00002
h(x)(6) A i = UserVer i
Figure pat00001
UI i
Figure pat00002
h (x)

식(6)에서

Figure pat00003
은 Exclusive OR Operation을 의미하며, 이하 동일하다In equation (6)
Figure pat00003
Means Exclusive OR Operation, and the following is the same

인증 서버(500)는 생성된 검증값을 포함하는 검증 정보를 스마트 카드에 저장할 수 있다(S113).The authentication server 500 may store the verification information including the generated verification value in the smart card (S113).

예를 들면, 인증 서버(500)는 생성된 검증값 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)과, 해쉬 연산값 h(*), h(y)을 스마트 카드에 저장할 수 있다.For example, the authentication server 500 generates the verification value user verification value UserV i , the smart card verification value VerforSC i , the first authentication value A i , the hash calculation value h (*), h (y) to the smart card.

여기서 h(*)은 충돌 회피 일방향 함수 해쉬 함수(a collision free one-way hash function)이고, h(y)는 상술한 시크릿 넘버(y)에 대한 해쉬 값을 의미한다.Here, h (*) is a collision free one-way hash function, and h (y) is a hash value for the secret number (y).

인증 서버(500)는 검증값을 저장할 수 있다(S115).The authentication server 500 may store the verification value (S115).

예를 들면, 인증 서버(500)는 사용자 정보 값(UIi), 사용자 검증 값(UserVeri) 및 상태 비트값을 검증자 테이블(verifier table)에 저장할 수 있다. 검증자 테이블은 아래 표와 같을 수 있다.For example, the authentication server 500 may store the user values (UI i), user verification value (UserVer i) and state party verifying the bit value table (table verifier). The validator table can be as shown in the table below.

구체적으로, 인증 서버(500)는 상태 비트값을, 사용자가 등록을 하면 상태 비트값은 1로 저장하고, 등록이 되어 있지 않으면 0으로 저장할 수 있다.Specifically, the authentication server 500 may store the status bit value as 1 when the user registers the status bit value, and may store the status bit value as 0 if not registered.

예를 들면 아래 표 1과 같이 저장될 수 있다.For example, as shown in Table 1 below.

사용자 정보
(User information)
User information
(User information)
사용자 검증자 값
(User-verifier)
User Verifier Value
(User-verifier)
상태 비트 값
(Status-bit)
Status bit value
(Status-bit)
UIi UI i UserVeri UserVer i 0/10/1 Uij Ui j UserVerj UserVer j 0/10/1

인증 서버(500)는 생성한 스마트 카드를 사용자 단말(300)에 발행할 수 있다(S117).The authentication server 500 can issue the generated smart card to the user terminal 300 (S117).

인증 서버(500)는 검증 정보를 저장한 스마트 카드를 사용자 단말(300)에 발행(issue)할 수 있다. 예를 들면, 인증 서버(500)는 생성된 검증값 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)과, 해쉬 연산값 h(*), h(y)을 저장한 스마트 카드를 사용자 단말(300)에 발행할 수 있다.The authentication server 500 may issue a smart card to the user terminal 300 storing the verification information. For example, the authentication server 500 generates the verification value user verification value UserV i , the smart card verification value VerforSC i , the first authentication value A i , the hash calculation value h (*), h (y) stored in the smart card to the user terminal 300.

도 4를 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계(20)를 설명한다. 여기서 로그인 단계는 사용자 단말(300)이 로그인을 수행하기 위해, 서비스 제공 서버(400)에 로그인 요청 메시지를 전송하는 과정일 수 있다. Referring to FIG. 4, a login step 20 of a smart card-based authentication protocol according to various embodiments of the present invention is described. The login step may be a process in which the user terminal 300 transmits a login request message to the service providing server 400 to perform login.

도 4는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계에 대한 흐름도이다.4 is a flow diagram of a login step of a smart card-based authentication protocol in accordance with various embodiments of the present invention.

도 4를 참조하면, 사용자 단말(300)은 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득할 수 있다(S119).Referring to FIG. 4, the user terminal 300 can acquire user information in a state where the smart card is inserted (S119).

예를 들면, 사용자 단말(300)은 스마트 카드 리더 모듈(270)에 스마트 카드가 삽입된 상태에서, 사용자 정보인 사용자 아이디(IDi) 및 패스워드(Pi)를 획득할 수 있다. For example, the user terminal 300 can acquire the user ID (ID i ) and the password (P i ), which are the user information, with the smart card inserted in the smart card reader module 270.

여기서 스마트 카드가 삽입된 상태는 상술한 바와 같이, 가상 카드가 인식된 상태 또는 물리적 형태의 카드가 물리적으로 삽입된 상태를 의미할 수 있다. As described above, the inserted state of the smart card may refer to a state in which a virtual card is recognized or a card in a physical form is physically inserted.

사용자 단말(300)은 획득한 사용자 정보를 기초로, 스마트 카드 검증값을 계산할 수 있다(S121). The user terminal 300 can calculate the smart card verification value based on the acquired user information (S121).

예를 들면, 사용자 단말(300)은 획득된 사용자 아이디(IDi) 및 패스워드(Pi)를 상술한 식(3)인 UIi=h(IDi||h(Pi))으로 계산할 수 있고, 계산된 UIi를 이용하여 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.For example, the user terminal 300 can calculate the obtained user ID (ID i ) and the password (P i ) as UI i = h (ID i || h (P i ) , And the smart card verification value (VerforSC i ') can be generated using the calculated UI i .

여기서 사용자 단말(300)은 스마트 카드 검증값(VerforSCi′)은 아래 식 (7)으로 계산할 수 있다.Here, the smart card verification value (VerforSC i ') of the user terminal 300 can be calculated by the following equation (7).

(7) VerforSCi′= h(IDi||h(y)||UIi)(7) VerforSC i '= h (ID i || h (y) || UI i )

사용자 단말(300)은 스마트 카드 검증값을 기초로, 사용자 인증을 수행할 수 있다(S123).The user terminal 300 may perform user authentication based on the smart card verification value (S123).

예를 들면, 사용자 단말(300)은 생성된 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 포함된 스마트 카드 검증 기준값(VerforSCi)을 비교할 수 있다. 그리고 사용자 단말(300)은 비교 결과를 기초로, 사용자를 인증할 수 있다.For example, the user terminal 300 can compare the generated smart card verification value (VerforSC i ') with the smart card verification reference value (VerforSC i ) included in the smart card. The user terminal 300 can authenticate the user based on the comparison result.

일 실시예로, 사용자 단말(300)은 아래 식(8)과 같이, 스마트 카드 검증값(VerforSCi′)과 스마트 카드 검증 기준값(VerforSCi)이 일치하면, 사용자를 스마트 카드의 정당한 소유자로 인증할 수 있다.In one embodiment, when the user terminal 300 is as shown in the following formula (8), the smart card verification value (VerforSC i ') and smart card verification reference value (VerforSC i) a match, authenticates the user as the rightful owner of the smart card can do.

(8) VerforSCi =?VerforSCi(8) VerforSC i =? VerforSC i '

사용자 단말(300)은 인증값 및 타임 스탬프를 생성할 수 있다(S125).The user terminal 300 may generate an authentication value and a time stamp (S125).

예를 들면, 사용자 단말(300)은 제1 랜덤값(Ni1)을 선택하고, 선택된 제1 랜덤값(Ni1)을 이용하여 제2 인증값(Bi) 및 제3 인증값(Ci)를 계산할 수 있고, 타임 스탬프(Ts)를 생성할 수 있다. For example, the user terminal 300 has the first random value (N i1) the selection, and the selected first random value, the second authentication value by using the (N i1), (B i) and the third authentication value (C i ), And can generate a time stamp (T s ).

구체적으로, 사용자 단말(300)은 아래 식(9), (10)으로, 제2 인증값(Bi) 및 제3 인증값(Ci)를 계산할 수 있다. 여기서 제1 랜덤값(Ni1)은 세션 키 합의(session key agreement)를 위한, 사용자 단말(300)의 스마트 카드에 의해 생성된 랜덤값일 수 있다.Specifically, the user terminal 300 can calculate the second authentication value B i and the third authentication value C i using the following equations (9) and (10). Where the first random value N i1 may be a random value generated by the smart card of the user terminal 300 for a session key agreement.

(9) Bi= Ai

Figure pat00004
UIi
Figure pat00005
Ni1 (9) B i = A i
Figure pat00004
UI i
Figure pat00005
N i1

(10) Ci=h(Ni1||h(y))(10) C i = h (N i1 || h (y))

사용자 단말(300)은 로그인 요청 메시지를 서비스 제공 서버(400)에 전송할 수 있다(S127).The user terminal 300 may transmit a login request message to the service providing server 400 (S127).

예를 들면, 사용자 단말(300)은 생성된 인증값 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버(400)에 전송할 수 있다.For example, the user terminal 300 may transmit a login request message including the generated authentication value and the time stamp to the service providing server 400.

구체적으로, 사용자 단말(300)은 제2 인증값(Bi), 제3 인증값(Ci) 및 타임 스탬프(Ts)를 포함하는 로그인 요청 메시지(Bi, Ci, Ts)를 서비스 제공 서버(400)에 전송할 수 있다.Specifically, the user terminal 300 transmits a login request message (B i , C i , T s ) including the second authentication value B i , the third authentication value C i , and the time stamp T s To the service providing server (400).

도 5를 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계(30)를 설명한다. 여기서 인증 및 키 동의 단계(30)는 수신된 로그인 요청 메시지를 이용하여 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 간의 검증을 수행하는 과정일 수 있다.Referring to FIG. 5, the authentication and key agreement step 30 of a smart card-based authentication protocol according to various embodiments of the present invention is described. Here, the authentication and key agreement step 30 may be a process of performing verification between the user terminal 300, the service providing server 400, and the authentication server 500 using the received login request message.

도 5는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계에 대한 흐름도이다.5 is a flowchart of authentication and key agreement steps of a smart card-based authentication protocol according to various embodiments of the present invention.

도 5를 참조하면, 서비스 제공 서버(400)는 수신된 로그인 요청 메시지를 이용하여 인증값을 계산할 수 있다(S129).Referring to FIG. 5, the service providing server 400 may calculate an authentication value using the received login request message (S129).

예를 들면, 서비스 제공 서버(400)는 제2 랜덤값(Ni2)을 선택하고, 선택된 제2 랜덤값(Ni2)을 이용하여 제4 인증값(Ki) 및 제5 인증값(Mi)를 계산할 수 있다.For example, the service providing server 400 is a second random value, select (N i2), and the selected second random value, the fourth authentication value (K i) and the fifth by utilizing a (N i2) value (M i can be calculated.

구체적으로, 사용자 단말(300)은 아래 식(11), (12)으로, 제4 인증값(Ki) 및 제5 인증값(Mi)를 계산할 수 있다. 여기서 제2 랜덤값(Ni2)은 세션 키 합의(session key agreement)를 위한, 서비스 제공 서버(400)에 의해 생성된 랜덤값일 수 있다.Specifically, the user terminal 300 can calculate the fourth authentication value K i and the fifth authentication value M i by the following equations (11) and (12). Where the second random value N i2 may be a random value generated by the service providing server 400 for a session key agreement.

(11) Ki = h(SIDj||y)

Figure pat00006
Ni2 (11) K i = h (SID j || y)
Figure pat00006
N i2

(12) Mi =h(h(x||y)||Ni2)(12) M i = h (h (x || y) | N i2 )

서비스 제공 서버(400)는 생성된 인증값을 포함하는 로그인 요청 메시지를 인증 서버(500)에 전송할 수 있다(S131).The service providing server 400 may transmit a login request message including the generated authentication value to the authentication server 500 (S131).

예를 들면, 서비스 제공 서버(400)는 복수의 인증값인 제2 인증값(Bi), 제3 인증값(Ci), 제4 인증값(Ki) 및 제5 인증값(Mi)과 서비스 제공 서버 ID(SIDj) 및 타임 스탬프(Ts)를 포함하는 로그인 요청 메시지(Bi, Ci, Ki, Mi, SIDj, Ts)를 전송할 수 있다.For example, the service providing server 400 includes a plurality of authentication value in a second authentication value (B i), a third authentication value (C i), the fourth authentication value (K i) and the fifth authentication value (M i (B i , j ) including the service providing server ID (SID j ) and the time stamp (T s ) C i , K i , M i , SID j , T s ).

인증 서버(500)는 전송된 로그인 요청 메시지를 기초로, 인증 시간을 확인할 수 있다(S133).The authentication server 500 can confirm the authentication time based on the transmitted login request message (S133).

예를 들면, 인증 서버(500)는 Ts′= Ts+1를 계산하여 △Ts≥Ts′-Ts를 확인할 수 있다. 여기서 Ts′는 인증 서버(500)가 로그인 요청 메시지를 수신하였을 때의 타임 스탬프이고, △Ts는 로그인 메시지 전송 시간을 고려한 최소한의 인증 시간을 의미할 수 있다.For example, the authentication server 500 can check ΔT s ≥T s '-T s by calculating T s ' = T s +1. Here, T s ' is a time stamp when the authentication server 500 receives the login request message, and? T s may mean the minimum authentication time considering the login message transmission time.

인증 서버(500)는 인증값 계산을 기초로, 서비스 제공 서버(400)를 인증할 수 있다(S135).The authentication server 500 can authenticate the service providing server 400 based on the authentication value calculation (S135).

예를 들면, 인증 서버(500)는 제2 랜덤값(Ni2) 계산을 통해, 제5 인증값(Mi′)을 계산할 수 있고, 로그인 요청 메시지에 포함된 제5 인증값(Mi)과 비교할 수 있다. 그리고 인증 서버(500)는 비교 결과를 기초로, 서비스 제공 서버(400)를 인증할 수 있다.For example, the authentication server 500 is a second random value (N i2) through the calculation, it is possible to calculate the fifth authentication value (M i '), the fifth authentication value included in the login request message (M i) . Then, the authentication server 500 can authenticate the service providing server 400 based on the comparison result.

일 실시예로, 인증 서버(500)는 아래 식(13) 내지 식(14)로 제5 인증값(Mi′)을 계산할 수 있고, 식(15)와 같이 계산된 제5 인증값(Mi′)이 로그인 요청 메시지에 포함된 제5 인증값(Mi)과 일치하면, 서비스 제공 서버(400)를 정당한 서비스 제공 서버(400)로 인증할 수 있다.In one embodiment, the authentication server 500 may calculate the fifth authentication value M i 'from the following equations (13) to (14), and calculate the fifth authentication value M i ') matches the fifth authentication value (M i ) included in the login request message, the service providing server 400 can be authenticated to the legitimate service providing server 400.

(13) Ni2= Ki

Figure pat00007
h(SIDj||y)(13) N i2 = K i
Figure pat00007
h (SIDj || y)

(14) Mi′=h(h(x||y)|| Ni2)(14) M i '= h (h (x || y) | N i2 )

(15) Mi=?Mi(15) M i =? M i '

인증 서버(500)는 사용자 단말(300)을 인증하기 위한 사용자 검증값(UserVeri )을 검색할 수 있다(S137).The authentication server 500 may retrieve a user verification value (UserVer i ) for authenticating the user terminal 300 (S137).

예를 들면, 인증 서버(500)는 사용자 단말(300)을 인증하기 위해, 사용자 정보값(UIi)에 일치하는 사용자 검증값(UserVeri)을 검증자 테이블에서 검색할 수 있다.For example, the authentication server 500 may retrieve a user verification value (UserVer i ) that matches the user information value UI i in the verifier table to authenticate the user terminal 300.

인증 서버(500)는 검색된 사용자 검증값(UserVeri)을 기초로, 사용자 단말(300)을 인증할 수 있다(S139). The authentication server 500 may authenticate the user terminal 300 based on the user verification value (UserVer i ) searched (S 139).

예를 들면, 인증 서버(500)는 검색된 사용자 검증값(UserVeri)을 기초로, 아래 식(16)으로 제1 랜덤값(Ni1)을 계산할 수 있다.For example, the authentication server 500 may calculate the first random value N i1 based on the retrieved user verification value (UserVer i ) using the following equation (16).

(16) Ni1= Bi

Figure pat00008
h(UserVeri||h(x))(16) N i1 = B i
Figure pat00008
h (UserVer i || h (x))

인증 서버(500)는 계산된 제1 랜덤값(Ni1)을 이용하여 식(17)으로, 제3 인증값(Ci′)을 계산할 수 있다.Authentication server 500 can be calculated by the equation (17) using the calculated first random value (N i1), a third authentication value (C i ').

(17) Ci′=h(h(y)|| Ni1 (17) C i '= h (h (y) || N i1

인증 서버(500)는 아래 식(18)과 같이, 계산된 제3 인증값(Ci′)이 로그인 요청 메시지에 포함된 제3 인증값(Ci)과 일치하면, 사용자 단말(300)을 정당한 사용자 단말(300)로 인증할 수 있다.If the calculated third authentication value C i 'matches the third authentication value C i included in the login request message as shown in the following equation (18), the authentication server 500 determines that the user terminal 300 And can authenticate with the legitimate user terminal 300.

(18) Ci=? Ci(18) C i =? C i '

인증 서버(500)는 인증값 및 타임 스탬프를 생성할 수 있다(S141).The authentication server 500 may generate an authentication value and a time stamp (S141).

예를 들면, 인증 서버(500)는 제3 랜덤값(Ni3)을 선택하고, 선택된 제3 랜덤값(Ni3)을 이용하여 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)를 계산할 수 있고, 타임 스탬프(Ts)를 생성할 수 있다. For example, the authentication server 500, the third random value selected the (N i3), and the selected third random value (N i3) the sixth authentication value (Q i), a seventh authentication value (R i using ), 8 may calculate the authentication value (V i) and 9 authentication value (W i), may generate a time stamp (T s).

구체적으로, 인증 서버(500)는 아래 식(19) 내지 (22)으로, 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)을 계산할 수 있다. 여기서 제3 랜덤값(Ni3)은 세션 키 합의(session key agreement)를 위한, 인증 서버(500)에 의해 생성된 랜덤값일 수 있다.Specifically, the authentication server 500 obtains the sixth authentication value Q i , the seventh authentication value R i , the eighth authentication value V i , and the ninth authentication The value W i can be calculated. Where the third random value N i3 may be a random value generated by the authentication server 500 for a session key agreement.

(19) Qi= Ni1

Figure pat00009
Ni3
Figure pat00010
h(SIDj
Figure pat00011
Ni2)(19) Q i = N i1
Figure pat00009
N i3
Figure pat00010
h (SID j
Figure pat00011
N i2 )

(20) Ri=h(UserVeri||h(x))

Figure pat00012
h(SIDj||Ni2)(20) R i = h (UserVer i || h (x))
Figure pat00012
h (SID j || N i2 )

(21) Vi=h(h(UserVeri||h(x))||h(Ni1

Figure pat00013
Ni2
Figure pat00014
Ni3)(21) V i = h (h (UserVer i || h (x)) || h (N i1
Figure pat00013
N i2
Figure pat00014
N i3 )

(22) Wi= Ni2

Figure pat00015
Ni3
Figure pat00016
h(UserVeri||h(x))(22) W i = N i2
Figure pat00015
N i3
Figure pat00016
h (UserVer i || h (x))

인증 서버(500)는 생성된 인증값 및 타임 스탬프를 포함하는 상호 인증 메시지를 서비스 제공 서버(400)에 전송할 수 있다(S143).The authentication server 500 may transmit the mutual authentication message including the generated authentication value and the time stamp to the service providing server 400 (S143).

예를 들면, 인증 서버(500)는 생성된 인증값인 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)과 타임 스탬프(Ts)를 포함하는 상호 인증 메시지(Qi, Ri, Vi, Wi, Ts)를 서비스 제공 서버(400)에 전송할 수 있다.For example, the authentication server 500 generates the sixth authentication value Q i , the seventh authentication value R i , the eighth authentication value V i , and the ninth authentication value W i , (Q i , R i , V i , W i , and T s ) including the time stamp T s to the service providing server 400.

서비스 제공 서버(400)는 수신된 상호 인증 메시지를 기초로, 인증 서버(500)를 인증할 수 있다(S145).The service providing server 400 can authenticate the authentication server 500 based on the received mutual authentication message (S145).

예를 들면, 서비스 제공 서버(400)는 수신된 상호 인증 메시지(Qi, Ri, Vi, Wi, Ts)를 기초로, 아래 식(23) 내지 (25)로, 제8 인증값(Vi′)을 계산할 수 있다.For example, based on the received mutual authentication messages (Q i , R i , V i , W i , and T s ), the service providing server 400 transmits the eighth authentication The value V i 'can be calculated.

(23) Ni1

Figure pat00017
Ni3= Qi
Figure pat00018
h(SIDj
Figure pat00019
Ni2)(23) N i1
Figure pat00017
N i3 = Q i
Figure pat00018
h (SID j
Figure pat00019
N i2 )

(24) h(UserVeri||h(x))= Ri

Figure pat00020
h(SIDj||Ni2)(24) h (UserVer i || h (x)) = R i
Figure pat00020
h (SID j || N i2 )

(25) Vi′=h(h(UserVeri||h(x))||h(Ni1

Figure pat00021
Ni2
Figure pat00022
Ni3))(25) V i '= h (h (UserVer i || h (x)) || h (N i1
Figure pat00021
N i2
Figure pat00022
N i3 ))

서비스 제공 서버(400)는 아래 식(26)과 같이, 계산된 제8 인증값(Vi′)이 상호 인증 메시지에 포함된 제8 인증값(Vi)과 일치하면, 인증 서버(500)를 정당한 인증 서버(500)로 인증할 수 있다.If the calculated eighth authentication value V i 'coincides with the eighth authentication value V i included in the mutual authentication message, the service providing server 400 determines whether the eighth authentication value V i ' To the valid authentication server (500).

(26) Vi=? Vi(26) V i =? V i '

서비스 제공 서버(400)는 응답 메시지를 사용자 단말(300)에 전송할 수 있다(S147).The service providing server 400 may transmit a response message to the user terminal 300 (S147).

예를 들면, 서비스 제공 서버(400)는 응답 메시지(Vi, Wi, Ts)를 사용자 단말(300)에 전송할 수 있다.For example, the service providing server 400 may transmit the response message (V i , W i , T s ) to the user terminal 300.

사용자 단말(300)은 수신된 응답 메시지를 기초로, 인증 시간을 확인할 수 있다(S149).The user terminal 300 can confirm the authentication time based on the received response message (S149).

예를 들면, 사용자 단말(300)은 전송된 응답 메시지를 수신할 수 있고, 수신된 응답 메시지에 포함된 타임 스탬프(Ts)를 기초로, 인증 시간을 확인할 수 있다.For example, the user terminal 300 can receive the transmitted response message and confirm the authentication time based on the time stamp (T s ) included in the received response message.

구체적으로, 사용자 단말(300)은 Ts′= Ts+1를 계산하여 △Ts≥Ts′-Ts를 확인할 수 있다. 여기서 Ts′는 인증 서버(500)가 로그인 요청 메시지를 수신하였을 때의 타임 스탬프이고, △Ts는 로그인 메시지 전송 시간을 고려한 최소한의 인증 시간을 의미할 수 있다.Specifically, the user terminal 300 can check ΔT s ≥T s '-T s by calculating T s ' = T s +1. Here, T s ' is a time stamp when the authentication server 500 receives the login request message, and? T s may mean the minimum authentication time considering the login message transmission time.

사용자 단말(300)은 수신된 응답 메시지를 기초로, 서비스 제공 서버(400) 및 인증 서버(500)를 인증할 수 있다(S151).The user terminal 300 can authenticate the service providing server 400 and the authentication server 500 based on the received response message (S151).

예를 들면, 사용자 단말(300)은 수신된 응답 메시지(Vi, Wi, Ts)를 기초로, 아래 식(27) 내지 (29)로, 제8 인증값(Vi′)을 계산할 수 있다.For example, the user terminal 300 calculates the eighth authentication value V i 'based on the received response message (V i , W i , T s ) using the following equations (27) to (29) .

(27) h(UserVeri||h(x))= Ai

Figure pat00023
UIi (27) h (UserVer i || h (x)) = A i
Figure pat00023
UI i

(28) Ni2

Figure pat00024
Ni3= Wi
Figure pat00025
h(UserVeri||h(x))(28) N i2
Figure pat00024
N i3 = W i
Figure pat00025
h (UserVer i || h (x))

(29) Vi′=h(h(UserVeri||h(x))||h(Ni1

Figure pat00026
Ni2
Figure pat00027
Ni3))(29) V i '= h (h (UserVer i || h (x)) || h (N i1
Figure pat00026
N i2
Figure pat00027
N i3 ))

사용자 단말(300)은 아래 식(30)과 같이, 계산된 제8 인증값(Vi′)이 응답 메시지에 포함된 제8 인증값(Vi)과 일치하면, 서비스 제공 서버(400) 및 인증 서버(500)를 정당한 서비스 제공 서버(400) 및 인증 서버(500)로 인증할 수 있다.If the calculated eighth authentication value V i 'matches the eighth authentication value V i included in the response message, the user terminal 300 transmits the eighth authentication value Vi to the service providing server 400 and / The authentication server 500 can be authenticated by the legitimate service providing server 400 and the authentication server 500. [

(30) Vi=? Vi(30) V i =? V i '

사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500)는 동일한세션키를 생성할 수 있다(S153).The user terminal 300, the service providing server 400, and the authentication server 500 can generate the same session key (S153).

예를 들면, 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 각각은 아래 식(31)과 같이, 동일한 세션키(SK)를 생성할 수 있고, 인증을 수행할 수 있다.For example, each of the user terminal 300, the service providing server 400, and the authentication server 500 can generate the same session key (SK) as shown in the following equation (31) .

(31) SK=h(h(UserVeri||h(x))||h(Ni1

Figure pat00028
Ni2
Figure pat00029
Ni3))(31) SK = h (h (UserVer i || h (x)) || h (N i1
Figure pat00028
N i2
Figure pat00029
N i3 ))

다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 스마트 카드에 대응하는 패스워드를 변경할 수 있다. 이에 대해 도 6을 참조하여 설명한다.The smart card based authentication system, apparatus and authentication method according to various embodiments may change the password corresponding to the smart card. This will be described with reference to FIG.

도 6은 본 발명의 다양한 실시예에 따른 패스워드 변경 동작에 대한 흐름도이다.6 is a flow diagram of a password change operation in accordance with various embodiments of the present invention.

도 6을 참조하면, 사용자 단말(300)은 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득할 수 있다(S201).Referring to FIG. 6, the user terminal 300 can acquire user information in a state where a smart card is inserted (S201).

예를 들면, 사용자 단말(300)은 스마트 카드 리더 모듈(270)에 스마트 카드가 삽입된 상태에서, 사용자 정보인 사용자 아이디(IDi) 및 패스워드(Pi)를 획득할 수 있다. For example, the user terminal 300 can acquire the user ID (ID i ) and the password (P i ), which are the user information, with the smart card inserted in the smart card reader module 270.

여기서 스마트 카드가 삽입된 상태는 상술한 바와 같이, 가상 카드가 인식된 상태 또는 물리적 형태의 카드가 물리적으로 삽입된 상태를 의미할 수 있다. As described above, the inserted state of the smart card may refer to a state in which a virtual card is recognized or a card in a physical form is physically inserted.

사용자 단말(300)은 획득된 사용자 정보를 기초로, 스마트 카드 검증값을 생성할 수 있다(S203).The user terminal 300 may generate a smart card verification value based on the acquired user information (S203).

예를 들면, 사용자 단말(300)은 획득된 사용자의 ID(IDi), 패스워드(Pi)를 기초로, 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.For example, the user terminal 300 may generate a smart card verification value (VerforSC i ') based on the acquired user's ID (ID i ) and password (P i ).

구체적으로, 사용자 단말(300)은 획득된 사용자 ID(IDi) 및 패스워드(Pi)를 기초로, 아래 식(32), (33)을 계산하여 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.Specifically, generating a user terminal 300 on the basis of the user ID (ID i) and the password (P i) obtained, the smart card calculates the following equation (32), (33) a verification value (VerforSC i ') can do.

(32) UIi=h(IDi||h(Pi))(32) UI i = h (ID i || h (P i ))

(33) VerforSCi′=h(IDi||h(y)||UIi)(33) VerforSC i '= h (ID i || h (y) || UI i )

사용자 단말(300)은 생성된 스마트 카드 검증값(VerforSCi′)이 스마트 카드 검증 기준값(VerforSCi)과 동일한지 판단할 수 있다(S205).The user terminal 300 can determine whether the generated smart card verification value VerforSC i 'is the same as the smart card verification reference value VerforSC i (S205).

예를 들면, 사용자 단말(300)은 아래 식(34)와 같이, 생성한 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 포함된 스마트 카드 검증 기준값(VerforSCi)이 동일한지 판단할 수 있다. 사용자 단말(300)은 계산된 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 저장된 스마트 카드 검증 기준값(VerforSCi)이 동일하면, 사용자를 정당한 스마트 카드의 소유자로 검증할 수 있다.For example, the user terminal 300 can determine whether the generated smart card verification value (VerforSC i ') and the smart card verification reference value (VerforSC i ) included in the smart card are the same as in the following equation (34) . The user terminal 300 can verify the user as a legitimate owner of the smart card if the calculated smart card verification value VerforSC i 'and the smart card verification reference value VerforSC i stored in the smart card are the same.

(34) VerforSCi=? VerforSCi(34) VerforSC i =? VerforSC i '

사용자 단말(300)은 변경될 새로운 패스워드와 관련된 정보를 획득할 수 있다(S207).The user terminal 300 can acquire information related to a new password to be changed (S207).

예를 들면, 사용자 단말(300)은 변경될 새로운 패스워드(NwPi)를 획득할 수 있고, 획득된 새로운 패스워드(NwPi)를 아래 식(35)으로 계산하여 새로운 사용자 정보값(NwUIi)을 생성할 수 있다. For example, the user terminal 300 by computing a new password (NwP i) new password formula (35) below (NwP i) a can be obtained, obtaining the change new user information value (NwUI i) the Can be generated.

(35) NwUIi=h(IDi||h(NwPi))(35) NwUI i = h (ID i || h (NwP i ))

이를 통해, 사용자 단말(300)은 새로운 사용자 정보값(NwUIi)과 같은 새로운 패스워드와 관련된 정보를 획득할 수 있다. Through this, the user terminal 300 can acquire information associated with a new password, such as a new user information value (NwUI i ).

사용자 단말(300)은 획득된 새로운 패스워드와 관련된 정보를 기초로, 새로운 스마트 카드 검증값을 계산할 수 있다(S209). The user terminal 300 may calculate a new smart card verification value based on information associated with the obtained new password (S209).

예를 들면, 사용자 단말(300)은 생성된 새로운 사용자 정보값(NwUIi)을 기초로, 새로운 스마트 카드 검증값(NwVerforSCi)을 계산할 수 있다.For example, the user terminal 300 based on the generated new user information value (NwUI i), one can calculate the new smart card verification value (NwVerforSC i).

구체적으로, 사용자 단말(300)은 새로운 사용자 정보값(NwUIi)을 기초로, 아래 식(36)으로 새로운 스마트 카드 검증값(NwVerforSCi)을 계산할 수 있다.Specifically, the user terminal 300 can calculate a new smart card verification value (NwVerforSC i) as the basis of the new user information value (NwUI i), the following equation (36).

(36) NwVerforSCi=h(IDi||h(y)|| NwUIi)(36) NwVerforSC i = h (ID i || h (y) || NwUI i )

사용자 단말(300)은 계산된 새로운 스마트 카드 검증값을 저장할 수 있다(S211).The user terminal 300 may store the calculated new smart card verification value (S211).

예를 들면, 사용자 단말(300)은 저장된 스마트 카드 검증값(VerforSCi)을 대체하여, 계산된 새로운 스마트 카드 검증값(NwVerforSCi)을 스마트 카드에 저장할 수 있다. 이에 따라, 스마트 카드의 패스워드가 변경될 수 있다.For example, the user terminal 300 may replace the stored smart card verification value (VerforSC i ) and store the calculated new smart card verification value (NwVerforSC i ) on the smart card. Accordingly, the password of the smart card can be changed.

본 발명의 다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 인증 서버(500)가 스마트 카드에 대한 쓰기 권한을 가지며, 사용자 단말(300)은 스마트 카드에 대한 쓰기 권한을 가지지 않을 수 있어서, 인가된 사용자로 가장하는 공격자에 의한 스마트 카드에 대한 위변조를 방지할 수 있다.The smart card-based authentication system, apparatus and authentication method according to various embodiments of the present invention may allow the authentication server 500 to have write access to the smart card and the user terminal 300 to have no write access to the smart card Thus, it is possible to prevent forgery and falsification of the smart card by an attacker pretending to be an authorized user.

또한, 본 발명은 공격자가 이전 세션의 공개된 채널을 통해 인증값 및 타임 스탬프 등을 알더라도 세션키는 도출할 수 없어서, 세션키 유출 공격에 안전할 수 있다.In addition, the present invention can secure the session key outflow attack because the attacker can not derive the session key even if the attacker knows the authentication value, the time stamp, etc. through the open channel of the previous session.

또한, 본 발명은 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 간의 로그인 요청 메시지 및 인증 메시지에 타임 스탬프를 사용하므로, 공격자의 재전송 공격에 대응할 수 있다.In addition, since the present invention uses a time stamp for a login request message and an authentication message between the user terminal 300, the service providing server 400, and the authentication server 500, it is possible to cope with a retransmission attack of an attacker.

또한, 본 발명은 검증 테이블을 사용하여 상태 비트 값이 1로 저장되어 있는 경우, 이에 해당하는 로그인 요청 메시지를 받지 않으므로 서비스의 가용성을 침해하는 서비스 거부 공격에 안전할 수 있다.In addition, when the status bit value is stored as 1 using the verification table, the present invention does not receive the corresponding login request message, and thus can be safe against a denial of service attack that invades the service availability.

또한, 본 발명에 다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 기존 방식에 비해 적은 횟수, 적은 연산량의 XOR 연산과 해쉬 암호화 연산이 필요하므로, 인증 프로토콜의 동작 효율성을 향상시킬 수 있다.In addition, the smart card-based authentication system, apparatus, and authentication method according to various embodiments of the present invention require an XOR operation and a hash encryption operation with a small number of operations, have.

이상, 본 발명의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Various modifications and variations are possible.

100: 서버
110: 프로세서
130: 메모리
150: 통신 모듈
200: 단말기
210: 프로세서
230: 메모리
250: 통신 모듈
270: 스마트 키 리더 모듈
300: 사용자 단말
400: 서비스 제공 서버
500: 인증 서버
100: Server
110: Processor
130: memory
150: Communication module
200: terminal
210: Processor
230: Memory
250: Communication module
270: Smart Key Reader Module
300: user terminal
400: service providing server
500: authentication server

Claims (14)

서비스 제공 서버로부터 서비스 제공 서버 ID를 수신하는 단계;
상기 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산하는 단계;
사용자 단말로부터 사용자 정보 값을 포함하는 등록 요청 메시지를 수신하는 단계;
상기 수신된 등록 요청 메시지를 기초로, 스마트 카드 검증을 위한 스마트 카드 검증값을 생성하는 단계;
상기 생성된 스마트 카드 검증값을 스마트 카드에 저장하는 단계; 및
상기 스마트 카드 검증값이 저장된 스마트 카드를 상기 사용자 단말에 발행하는 단계를 포함하는
스마트 카드 기반 인증 방법.
Receiving a service providing server ID from a service providing server;
Calculating a hash value for the received service providing server ID and security information;
Receiving a registration request message including a user information value from a user terminal;
Generating a smart card verification value for smart card verification based on the received registration request message;
Storing the generated smart card verification value in a smart card; And
And issuing a smart card to the user terminal in which the smart card verification value is stored
Smart card based authentication method.
제1항에 있어서,
상기 사용자 정보 값 및 보안 정보를 기초로, 사용자 검증값을 생성하는 단계; 및
상기 생성된 사용자 검증값, 상기 사용자 정보 값 및 사용자 등록 상태에대한 상태 비트 값을 검증자 테이블에 저장하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
The method according to claim 1,
Generating a user verification value based on the user information value and security information; And
Storing the generated user verification value, the user information value, and the status bit value for the user registration status in a verifier table
Smart card based authentication method.
제2항에 있어서,
상기 보안 정보는 마스터 시크릿 키(master secret key) 및 시크릿 넘버(secret number)를 포함하는
스마트 카드 기반 인증 방법.
3. The method of claim 2,
The security information includes a master secret key and a secret number.
Smart card based authentication method.
제1항에 있어서,
상기 서비스 제공 서버로부터, 상기 서비스 제공 서버가 생성한 인증값 및 타임 스탬프를 포함하는 로그인 요청 메시지를 수신하는 단계; 및
상기 수신된 로그인 요청 메시지를 수신한 때의 타임 스탬프와 상기 로그인 요청 메시지에 포함된 상기 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
The method according to claim 1,
Receiving, from the service providing server, a login request message including an authentication value and a time stamp generated by the service providing server; And
Further comprising checking the authentication time based on the time stamp when the received login request message is received and the time stamp included in the login request message
Smart card based authentication method.
제4항에 있어서,
상기 수신된 로그인 요청 메시지에 포함된 인증값, 상기 서비스 제공 서버 ID 및 상기 보안 정보를 기초로, 제2 랜덤값을 계산하는 단계;
상기 계산된 제2 랜덤값 및 상기 보안 정보를 기초로, 인증값 M′을 계산하는 단계;
상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M을 비교하는 단계; 및
비교 결과, 상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M이 동일하면, 상기 서비스 제공 서버를 정당한 서비스 제공 서버로 인증하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
5. The method of claim 4,
Calculating a second random value based on the authentication value, the service providing server ID, and the security information included in the received login request message;
Calculating an authentication value M 'based on the calculated second random value and the security information;
Comparing the calculated authentication value M 'with an authentication value M included in the login request message; And
If the calculated authentication value M 'is equal to the authentication value M included in the login request message, authenticating the service providing server as a legitimate service providing server
Smart card based authentication method.
제5항에 있어서,
상기 사용자 단말을 인증하기 위한 사용자 검증값을 검색하는 단계;
상기 검색된 사용자 검증값을 기초로, 상기 사용자 단말이 생성한 제1 랜덤값을 계산하는 단계;
상기 계산된 제1 랜덤값을 기초로, 상기 인증값 C′을 계산하는 단계;
상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C를 비교하는 단계; 및
비교 결과, 상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C이 동일하면, 상기 사용자 단말을 정당한 사용자 단말로 인증하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
6. The method of claim 5,
Retrieving a user verification value for authenticating the user terminal;
Calculating a first random value generated by the user terminal based on the retrieved user verification value;
Calculating the authentication value C 'based on the calculated first random value;
Comparing the calculated authentication value C 'with an authentication value C included in the login request message; And
If the calculated authentication value C 'is equal to the authentication value C included in the login request message, the authenticating step may further include authenticating the user terminal as a legitimate user terminal
Smart card based authentication method.
사용자 단말에 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득하는 단계;
상기 획득된 사용자 정보를 기초로, 스마트 카드 검증값(VerforSCi′)을 계산하는 단계;
상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)을 비교하는 단계; 및
비교 결과, 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)이 동일하면, 상기 스마트 카드에 대한 사용자를 인증하는 단계를 포함하는
스마트 카드 기반 인증 방법.
Acquiring user information in a state where a smart card is inserted in the user terminal;
Calculating a smart card verification value (VerforSC i ') based on the obtained user information;
Comparing the calculated smart card verification value (VerforSC i ') with a smart card verification value (VerforSC i ) stored in the smart card; And
And authenticating the user to the smart card if the calculated smart card verification value (VerforSC i ') is the same as the smart card verification value (VerforSC i ) stored in the smart card as a result of the comparison
Smart card based authentication method.
제7항에 있어서,
선택된 제1 랜덤값을 이용하여 인증값 B 및 인증값 C를 계산하는 단계; 및
상기 계산된 인증값 B, 인증값 C 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버에 전송하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
8. The method of claim 7,
Calculating an authentication value B and an authentication value C using the selected first random value; And
And transmitting the login request message including the calculated authentication value B, the authentication value C, and the time stamp to the service providing server
Smart card based authentication method.
제7항에 있어서,
상기 서비스 제공 서버로부터 응답 메시지를 수신하는 단계; 및
상기 수신된 응답 메시지에 포함된 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
8. The method of claim 7,
Receiving a response message from the service providing server; And
Further comprising confirming an authentication time based on a time stamp included in the received response message
Smart card based authentication method.
제9항에 있어서,
상기 응답 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계;
상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V를 비교하는 단계; 및
비교 결과, 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V가 동일하면, 상기 서비스 제공 서버 및 상기 인증 서버를 인증하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
10. The method of claim 9,
Calculating an authentication value V 'based on the authentication value included in the response message;
Comparing the calculated authentication value V 'with an authentication value V included in the received response message; And
And authenticating the service providing server and the authentication server if the calculated authentication value V 'is equal to the authentication value V included in the received response message
Smart card based authentication method.
제10항에 있어서,
상기 인증된 서비스 제공 서버 및 상기 인증된 인증 서버와 동일한 세션키를 생성하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
11. The method of claim 10,
And generating a same session key as the authenticated service providing server and the authenticated authentication server
Smart card based authentication method.
사용자 단말로부터 로그인 요청 메시지를 수신하는 단계;
선택된 제2 랜덤값과, 인증 서버로부터 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 기초로 인증값 K 및 인증값 M을 계산하는 단계; 및
상기 계산된 인증값 K 및 인증값 M과, 상기 서비스 제공 서버 ID 및 타임 스탬프를 포함하는 로그인 요청 메시지를 상기 인증 서버에 전송하는 단계를 포함하는
스마트 카드 기반 인증 방법.
Receiving a login request message from a user terminal;
Calculating an authentication value K and an authentication value M based on the selected second random value, the service providing server ID received from the authentication server, and the hash value for the security information; And
And transmitting the login request message including the calculated authentication value K and the authentication value M, the service providing server ID and the time stamp to the authentication server
Smart card based authentication method.
제12항에 있어서,
상기 인증 서버로부터, 상기 전송된 로그인 요청 메시지에 대응하는 상호 인증 메시지를 수신하는 단계;
상기 상호 인증 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계;
상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V를 비교하는 단계; 및
비교 결과, 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V가 동일하면, 상기 인증 서버를 정당한 인증 서버로 인증하는 단계를 포함하는
스마트 카드 기반 인증 방법.
13. The method of claim 12,
Receiving, from the authentication server, a mutual authentication message corresponding to the transmitted login request message;
Calculating an authentication value V 'based on the authentication value included in the mutual authentication message;
Comparing the calculated authentication value V 'with an authentication value V included in the mutual authentication message; And
If the calculated authentication value V 'is equal to the authentication value V included in the mutual authentication message, authenticating the authentication server as a valid authentication server
Smart card based authentication method.
제13항에 있어서,
상기 인증값 V 및 타임 스탬프를 포함하는 응답 메시지를 상기 사용자 단말에 전송하는 단계를 더 포함하는
스마트 카드 기반 인증 방법.
14. The method of claim 13,
And transmitting a response message including the authentication value V and a time stamp to the user terminal
Smart card based authentication method.
KR1020170108943A 2017-08-28 2017-08-28 Smart card based authentication system, device and method KR102021956B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170108943A KR102021956B1 (en) 2017-08-28 2017-08-28 Smart card based authentication system, device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170108943A KR102021956B1 (en) 2017-08-28 2017-08-28 Smart card based authentication system, device and method

Publications (2)

Publication Number Publication Date
KR20190023353A true KR20190023353A (en) 2019-03-08
KR102021956B1 KR102021956B1 (en) 2019-09-17

Family

ID=65800638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170108943A KR102021956B1 (en) 2017-08-28 2017-08-28 Smart card based authentication system, device and method

Country Status (1)

Country Link
KR (1) KR102021956B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666786A (en) * 2020-12-04 2022-06-24 中国联合网络通信集团有限公司 Identity authentication method and system based on telecommunication smart card

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100015238A (en) * 2008-08-04 2010-02-12 에스케이 텔레콤주식회사 System and method for authentication of smart card
KR20120124175A (en) * 2011-05-03 2012-11-13 주식회사 케이티 Method and apparatus for issuing smart card
KR20150077981A (en) * 2013-12-30 2015-07-08 고려대학교 산학협력단 Method for remote authentication using smart card
KR20150098595A (en) * 2014-02-20 2015-08-28 류창화 Smart card, smart authentication server and smart card authentication method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100015238A (en) * 2008-08-04 2010-02-12 에스케이 텔레콤주식회사 System and method for authentication of smart card
KR20120124175A (en) * 2011-05-03 2012-11-13 주식회사 케이티 Method and apparatus for issuing smart card
KR20150077981A (en) * 2013-12-30 2015-07-08 고려대학교 산학협력단 Method for remote authentication using smart card
KR20150098595A (en) * 2014-02-20 2015-08-28 류창화 Smart card, smart authentication server and smart card authentication method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666786A (en) * 2020-12-04 2022-06-24 中国联合网络通信集团有限公司 Identity authentication method and system based on telecommunication smart card

Also Published As

Publication number Publication date
KR102021956B1 (en) 2019-09-17

Similar Documents

Publication Publication Date Title
EP3444999B1 (en) Method for generating a public/private key pair and public key certificate for an internet of things device
CN106656907B (en) Method, device, terminal equipment and system for authentication
AU2015308608B2 (en) Methods for secure cryptogram generation
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US9830447B2 (en) Method and system for verifying an access request
CN113691502B (en) Communication method, device, gateway server, client and storage medium
JP2018521417A (en) Safety verification method based on biometric features, client terminal, and server
CN103124269A (en) Bidirectional identity authentication method based on dynamic password and biologic features under cloud environment
CN106576046B (en) System and apparatus for binding metadata with hardware-inherent properties
JP2001326632A (en) Distribution group management system and method
CN113971274B (en) Identity recognition method and device
KR20210095093A (en) Method for providing authentification service by using decentralized identity and server using the same
CN111740995B (en) Authorization authentication method and related device
KR20190031986A (en) Apparatus for executing telebiometric authentication and apparatus for requesting the same
KR102372503B1 (en) Method for providing authentification service by using decentralized identity and server using the same
CN114070559A (en) Industrial Internet of things session key negotiation method based on multiple factors
CN110168550A (en) Data-message certification based on random number
CN117040767B (en) Fine-grained multi-terminal identity authentication method based on PUF (physical unclonable function) and related equipment
KR102021956B1 (en) Smart card based authentication system, device and method
Chen et al. Anti-synchronization and robust authentication for noisy PUF-based smart card
CN111404680B (en) Password management method and device
Malina et al. Efficient and secure access control system based on programmable smart cards
Jung et al. Robust biometric-based anonymous user authenticated key agreement scheme for telecare medicine information systems
JP2019062394A (en) Information processing apparatus, information processing method, and computer program
US20240314570A1 (en) System and method for secure and performant ecu pairing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant