KR102021956B1 - 스마트 카드 기반 인증 시스템, 장치 및 인증 방법 - Google Patents

스마트 카드 기반 인증 시스템, 장치 및 인증 방법 Download PDF

Info

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

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 기술적 사상에 의한 일 양태에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 사용자 단말, 서비스 제공 서버 및 인증 서버를 포함하고, 상기 인증 서버는 서비스 제공 서버로부터 서비스 제공 서버 ID를 수신하고, 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산할 수 있다. 인증 서버는 사용자 단말로부터 사용자 정보 값을 포함하는 등록 요청 메시지를 수신하고, 수신된 등록 요청 메시지를 기초로, 스마트 카드 검증을 위한 스마트 카드 검증값을 생성할 수 있다. 인증 서버는 생성된 스마트 카드 검증값을 스마트 카드에 저장하고, 스마트 카드 검증값이 저장된 스마트 카드를 사용자 단말에 발행할 수 있다.

Description

스마트 카드 기반 인증 시스템, 장치 및 인증 방법{SMART CARD BASED AUTHENTICATION SYSTEM, DEVICE AND METHOD}
본 발명의 기술적 사상은 스마트 카드 기반 인증 시스템, 장치 및 방법에 관한 것으로, 보다 상세하게는, 다중 서버 환경에서의 스마트 카드 기반 인증에 관한 것이다.
컴퓨터 네트워크 및 서비스 제공 서버 등의 급속한 성정으로, 자원 효율성을 높이기 위한 다중 서버 아키텍처(Multi-server Architecture)가 제안되었다.
이러한 다중 서버 아키텍처는 하나의 서버에 대한 자원의 제약성을 높일 수 있어서, 다중 서버 환경에서의 인증 프로토콜은 다양한 연구를 통해 지속적으로 발전되고 있다.
다만, 다중 서버 환경에서는 서비스를 제공받고자 하는 사용자가 원격으로 서버에 접속하기 때문에, 데이터 도청 및 위변조 공격에 노출될 수 있다.
따라서, 이러한 데이터 도청 및 위변조 공격과 같은 보안 문제를 해결하기 위한 안전한 인증 기술이 필요하다.
본 발명의 기술적 사상에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 다중 서버 환경에서 안전성이 향상된 스마트 카드 기반 인증 프로토콜을 제공하는데 목적이 있다.
본 발명은 인증을 위한 프로토콜의 연산량을 감소시켜 인증 프로토콜의 효율성을 향상시키는데 목적이 있다.
또한, 본 발명은 스마트 카드를 이용한 키 교환 및 다양한 응용 분야에 활용하는데 목적이 있다.
본 발명의 기술적 사상에 따른 충돌예측장치 및 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 기술적 사상에 의한 일 양태에 따른 스마트 카드 기반 인증 방법은 서비스 제공 서버로부터 서비스 제공 서버 ID를 수신하는 단계; 상기 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산하는 단계; 사용자 단말로부터 사용자 정보 값을 포함하는 등록 요청 메시지를 수신하는 단계; 상기 수신된 등록 요청 메시지를 기초로, 스마트 카드 검증을 위한 스마트 카드 검증값을 생성하는 단계; 상기 생성된 스마트 카드 검증값을 스마트 카드에 저장하는 단계; 및 상기 스마트 카드 검증값이 저장된 스마트 카드를 상기 사용자 단말에 발행하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 사용자 정보 값 및 보안 정보를 기초로, 사용자 검증값을 생성하는 단계; 및 상기 생성된 사용자 검증값, 상기 사용자 정보 값 및 사용자 등록 상태에 대한 상태 비트 값을 검증자 테이블에 저장하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 보안 정보는 마스터 시크릿 키(master secret key) 및 시크릿 넘버(secret number)를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 서비스 제공 서버로부터, 상기 서비스 제공 서버가 생성한 인증값 및 타임 스탬프를 포함하는 로그인 요청 메시지를 수신하는 단계; 및 상기 수신된 로그인 요청 메시지를 수신한 때의 타임 스탬프와 상기 로그인 요청 메시지에 포함된 상기 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 수신된 로그인 요청 메시지에 포함된 인증값, 상기 서비스 제공 서버 ID 및 상기 보안 정보를 기초로, 제2 랜덤값을 계산하는 단계; 상기 계산된 제2 랜덤값 및 상기 보안 정보를 기초로, 인증값 M′을 계산하는 단계; 상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M을 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 M′과 상기 로그인 요청 메시지에 포함된 인증값 M이 동일하면, 상기 서비스 제공 서버를 정당한 서비스 제공 서버로 인증하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 사용자 단말을 인증하기 위한 사용자 검증값을 검색하는 단계; 상기 검색된 사용자 검증값을 기초로, 상기 사용자 단말이 생성한 제1 랜덤값을 계산하는 단계; 상기 계산된 제1 랜덤값을 기초로, 상기 인증값 C′을 계산하는 단계; 상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 C′와 상기 로그인 요청 메시지에 포함된 인증값 C이 동일하면, 상기 사용자 단말을 정당한 사용자 단말로 인증하는 단계를 더 포함할 수 있다.
본 발명의 기술적 사상에 의한 다른 양태에 따른 스마트 카드 기반 인증 방법은 사용자 단말에 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득하는 단계; 상기 획득된 사용자 정보를 기초로, 스마트 카드 검증값(VerforSCi′)을 계산하는 단계; 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)을 비교하는 단계; 및 비교 결과, 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)이 동일하면, 상기 스마트 카드에 대한 사용자를 인증하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 선택된 제1 랜덤값을 이용하여 인증값 B 및 인증값 C를 계산하는 단계; 및 상기 계산된 인증값 B, 인증값 C 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버에 전송하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 서비스 제공 서버로부터 응답 메시지를 수신하는 단계; 및 상기 수신된 응답 메시지에 포함된 타임 스탬프를 기초로, 인증 시간을 확인하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 응답 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계; 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V가 동일하면, 상기 서비스 제공 서버 및 상기 인증 서버를 인증하는 단계를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 인증된 서비스 제공 서버 및 상기 인증된 인증 서버와 동일한 세션키를 생성하는 단계를 더 포함할 수 있다.
본 발명의 기술적 사상에 의한 또 다른 양태에 따른 스마트 카드 기반 인증 방법은 사용자 단말로부터 로그인 요청 메시지를 수신하는 단계; 선택된 제2 랜덤값과, 인증 서버로부터 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 기초로 인증값 K 및 인증값 M을 계산하는 단계; 및 상기 계산된 인증값 K 및 인증값 M과, 상기 서비스 제공 서버 ID 및 타임 스탬프를 포함하는 로그인 요청 메시지를 상기 인증 서버에 전송하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 인증 서버로부터, 상기 전송된 로그인 요청 메시지에 대응하는 상호 인증 메시지를 수신하는 단계; 상기 상호 인증 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계; 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V를 비교하는 단계; 및 비교 결과, 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V가 동일하면, 상기 인증 서버를 정당한 인증 서버로 인증하는 단계를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 인증값 V 및 타임 스탬프를 포함하는 응답 메시지를 상기 사용자 단말에 전송하는 단계를 더 포함할 수 있다.
본 발명의 기술적 사상에 의한 실시예들에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 다중 서버 환경에서의 인증 프로토콜의 안정성을 향상시킬 수 있다.
본 발명은 인증을 위한 프로토콜의 연산량을 감소시킬 수 있어서, 인증 프로토콜의 효율성을 향상시킬 수 있다.
또한, 본 발명에 따른 스마트 카드 기반 인증 시스템, 장치 및 방법은 스마트 카드를 이용한 키 교환 및 다양한 응용 분야에 활용할 수 있다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 2는 본 발명의 다양한 실시예에 따른 단말기의 구성을 나타내는 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계에 대한 흐름도이다.
도 4는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계에 대한 흐름도이다.
도 5는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계에 대한 흐름도이다.
도 6은 본 발명의 다양한 실시예에 따른 패스워드 변경 동작에 대한 흐름도이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 기술적 사상의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(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) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.
먼저, 본 발명에 따른 다중 서버 아키텍처에 포함되는 서버의 구성에 대해 설명한다.
도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 1을 참조하면, 서버(100)는 프로세서(110), 메모리(130) 및 통신 모듈(150)을 포함할 수 있다.
프로세서(110)는 서버(100)의 전반적인 동작을 제어할 수 있다.
예를 들면, 프로세서(110)는 스마트 키 기반의 인증 프로토콜과 관련된 다양한 동작을 제어할 수 있고, 수행할 수 있다.
메모리(130)는 서버(100)의 동작과 관련된 다양한 정보를 저장할 수 있다.
예를 들면, 메모리(130)는 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 저장할 수 있다.
통신 모듈(150)은 서버(100)와 다른 서버 또는 서버(100)와 사용자 단말 간의 유선 통신 또는 무선 통신을 제공할 수 있다.
예를 들면, 통신 모듈(150)은 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 송수신할 수 있다.
서버(100)는 후술할 서비스 제공 서버(400), 인증 서버(500)일 수 있고, 사용자 단말(300)일 수도 있다.
도 2는 본 발명의 다양한 실시예에 따른 단말기의 구성을 나타내는 블록도이다.
도 2를 참조하면, 단말기(200)는 프로세서(210), 메모리(230), 통신 모듈(250) 및 스마트 키 리더 모듈(270)을 포함할 수 있다.
프로세서(210)는 단말기(200)의 전반적인 동작을 제어할 수 있다.
예를 들면, 프로세서(210)는 스마트 키 기반의 인증 프로토콜과 관련된 다양한 동작을 제어할 수 있고, 수행할 수 있다.
또한, 프로세서(210)는 스마트 카드 읽기/쓰기와 관련된 동작을 제어할 수 있고, 수행할 수도 있다.
메모리(230)는 단말기(200)의 동작과 관련된 다양한 정보를 저장 수 있다.
예를 들면, 메모리(230)는 스마트 카드, 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 저장할 수 있다.
통신 모듈(250)은 단말기(200)와 서버(100) 간의 유선 통신 또는 무선 통신을 제공할 수 있다.
예를 들면, 통신 모듈(250)은 스마트 카드 기반의 인증 프로토콜과 관련된 다양한 정보를 송수신할 수 있다.
스마트 키 리더 모듈(270)은 스마트 카드 읽기/쓰기와 관련된 동작을 수행할 수 있다. 여기서 스마트 카드는 실물 형태가 없는 가상 카드일 수 있고, 물리적인 카드 형태의 실물 카드일 수도 있다.
예를 들면, 스마트 키 리더 모듈(270)은 가상 카드를 인식하고, 읽기/쓰기할 수 있는 모듈일 수 있고, 실물 카드를 인식하고, 읽기/쓰기 할 수 있는 모듈일 수도 있다.
스마트 키 리더 모듈(270)은 상술한 프로세서(210) 및 메모리(230)에 의해 구현될 수도 있다. 이에 따라, 단말기(200)는 스마트 키 리더 모듈(270)을 실질적으로 구비하지 않을 수도 있다.
다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법의 동작 과정에 따른 스마트 카드 기반의 인증 프로토콜은 등록 단계(10), 로그인 단계(20) 및 인증 및 키 동의 단계(30)를 포함할 수 있다. 이하, 이에 대해 설명한다.
먼저, 도 3을 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계(10)를 설명한다.
도 3은 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 등록 단계에 대한 흐름도이다.
도 3을 참조하면, 스마트 카드 기반의 인증 프로토콜은 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500)가 포함된 다중 서버 아키텍처로 구성될 수 있다.
여기서 사용자 단말(300)은 i번째 사용자 단말(Ui)일 수 있고, 서비스 제공 서버(400)는 j번째 서비스 제공 서버(Sj)일 수 있다. 그리고 인증 서버(500)는 신뢰할 수 있는 인증 서버로, 사용자 단말(300)과 서비스 제공 서버(400)의 등록 및 인증을 수행할 수 있다. 인증 서버(500)는 컨트롤 서버(control server)라고 칭할 수도 있다.
서비스 제공 서버(400)는 인증 서버(500)에 서비스 제공 서버 ID를 전송할 수 있다(S101).
예를 들면, 서비스 제공 서버(400)는 서비스 제공 서버(400)의 ID 값인 SIDj를 인증 서버(500)에 전송할 수 있다.
구체적으로, 서비스 제공 서버(400)는 서비스 제공 서버(400)의 ID 값인 SIDj를 보안 채널을 통해 인증 서버(500)에 전송할 수 있다.
인증 서버(500)는 전송된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 계산할 수 있다(S103).
예를 들면, 인증 서버(500)는 전송된 서비스 제공 서버 ID인 SIDj 및 보안 정보를 해쉬 함수(hash function) 처리한 해쉬 값을 계산할 수 있다. 여기서 보안 정보는 인증 서버(500)가 선택한 마스터 시크릿 키(master secret key, x) 및 인증 서버(500)가 선택한 시크릿 넘버(secret number, y)를 포함할 수 있다.
인증 서버(500)는 상술한 서비스 제공 서버 ID(SIDj), 마스터 시크릿 키(x), 시크릿 넘버(y)를 아래와 같은 식(1), (2)으로 계산할 수 있다.
(1) h(SIDj||y)
(2) h(x||y)
인증 서버(500)는 서비스 제공 서버 ID(SIDj), 마스터 시크릿 키(x), 시크릿 넘버(y)를 식 (1), (2)에 의해 계산된 결과인 해쉬 값을 얻을 수 있다.
인증 서버(500)는 계산된 해쉬 값을 서비스 제공 서버(400)에 전송할 수 있다(S105).
예를 들면, 인증 서버(500)는 상술한 식(1), (2)에 의해 계산된 결과인 해쉬 값을 서비스 제공 서버(400)에 보안 채널을 통해 전송할 수 있다.
사용자 단말(300)은 사용자 정보값을 계산할 수 있다(S107).
예를 들면, 사용자 단말(300)은 사용자의 ID(IDi), 패스워드(Pi)를 선택하고, 선택된 사용자 ID 및 패스워드로 사용자 정보 해쉬 값을 계산할 수 있다.
구체적으로, 사용자 단말(300)은 사용자 ID(IDi) 및 패스워드(Pi)를 아래 식(3)으로 계산할 수 있다.
(3) UIi=h(IDi||h(Pi))
사용자 단말(300)은 계산된 사용자 정보 값을 포함하는 등록 요청 메시지를 인증 서버(500)에 전송할 수 있다(S109).
예를 들면, 사용자 단말(300)은 인증 서버(500)에 등록 요청 메시지(IDi, UIi)를 전송할 수 있다.
인증 서버(500)는 검증 값을 생성할 수 있다(S111).
예를 들면, 인증 서버(500)는 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)을 생성할 수 있다. 여기서 스마트 카드 검증값(VerforSCi) 은 후술할 로그인 단계에서 사용자를 검증하기 위한 스마트 카드 검증값의 기준값이 될 수 있다. 이에 따라, 인증 서버(500)가 생성한 스마트 카드 검증값(VerforSCi)은 스마트 카드 검증 기준값이라고 할 수 있다.
구체적으로, 인증 서버(500)는 전송된 등록 요청 메시지를 기초로, 아래의 식(4), (5), (6)으로 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai) 각각을 계산할 수 있다.
(4) UserVeri=h(IDi||x)
(5) VerforSCi=h(IDi||h(y)||UIi)
(6) Ai=UserVeri
Figure 112017083323326-pat00001
UIi
Figure 112017083323326-pat00002
h(x)
식(6)에서
Figure 112017083323326-pat00003
은 Exclusive OR Operation을 의미하며, 이하 동일하다
인증 서버(500)는 생성된 검증값을 포함하는 검증 정보를 스마트 카드에 저장할 수 있다(S113).
예를 들면, 인증 서버(500)는 생성된 검증값 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)과, 해쉬 연산값 h(*), h(y)을 스마트 카드에 저장할 수 있다.
여기서 h(*)은 충돌 회피 일방향 함수 해쉬 함수(a collision free one-way hash function)이고, h(y)는 상술한 시크릿 넘버(y)에 대한 해쉬 값을 의미한다.
인증 서버(500)는 검증값을 저장할 수 있다(S115).
예를 들면, 인증 서버(500)는 사용자 정보 값(UIi), 사용자 검증 값(UserVeri) 및 상태 비트값을 검증자 테이블(verifier table)에 저장할 수 있다. 검증자 테이블은 아래 표와 같을 수 있다.
구체적으로, 인증 서버(500)는 상태 비트값을, 사용자가 등록을 하면 상태 비트값은 1로 저장하고, 등록이 되어 있지 않으면 0으로 저장할 수 있다.
예를 들면 아래 표 1과 같이 저장될 수 있다.
사용자 정보
(User information)
사용자 검증자 값
(User-verifier)
상태 비트 값
(Status-bit)
UIi UserVeri 0/1
Uij UserVerj 0/1
인증 서버(500)는 생성한 스마트 카드를 사용자 단말(300)에 발행할 수 있다(S117).
인증 서버(500)는 검증 정보를 저장한 스마트 카드를 사용자 단말(300)에 발행(issue)할 수 있다. 예를 들면, 인증 서버(500)는 생성된 검증값 사용자 검증값(UserVeri), 스마트 카드 검증값(VerforSCi) 및 제1 인증값(Ai)과, 해쉬 연산값 h(*), h(y)을 저장한 스마트 카드를 사용자 단말(300)에 발행할 수 있다.
도 4를 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계(20)를 설명한다. 여기서 로그인 단계는 사용자 단말(300)이 로그인을 수행하기 위해, 서비스 제공 서버(400)에 로그인 요청 메시지를 전송하는 과정일 수 있다.
도 4는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 로그인 단계에 대한 흐름도이다.
도 4를 참조하면, 사용자 단말(300)은 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득할 수 있다(S119).
예를 들면, 사용자 단말(300)은 스마트 카드 리더 모듈(270)에 스마트 카드가 삽입된 상태에서, 사용자 정보인 사용자 아이디(IDi) 및 패스워드(Pi)를 획득할 수 있다.
여기서 스마트 카드가 삽입된 상태는 상술한 바와 같이, 가상 카드가 인식된 상태 또는 물리적 형태의 카드가 물리적으로 삽입된 상태를 의미할 수 있다.
사용자 단말(300)은 획득한 사용자 정보를 기초로, 스마트 카드 검증값을 계산할 수 있다(S121).
예를 들면, 사용자 단말(300)은 획득된 사용자 아이디(IDi) 및 패스워드(Pi)를 상술한 식(3)인 UIi=h(IDi||h(Pi))으로 계산할 수 있고, 계산된 UIi를 이용하여 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.
여기서 사용자 단말(300)은 스마트 카드 검증값(VerforSCi′)은 아래 식 (7)으로 계산할 수 있다.
(7) VerforSCi′= h(IDi||h(y)||UIi)
사용자 단말(300)은 스마트 카드 검증값을 기초로, 사용자 인증을 수행할 수 있다(S123).
예를 들면, 사용자 단말(300)은 생성된 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 포함된 스마트 카드 검증 기준값(VerforSCi)을 비교할 수 있다. 그리고 사용자 단말(300)은 비교 결과를 기초로, 사용자를 인증할 수 있다.
일 실시예로, 사용자 단말(300)은 아래 식(8)과 같이, 스마트 카드 검증값(VerforSCi′)과 스마트 카드 검증 기준값(VerforSCi)이 일치하면, 사용자를 스마트 카드의 정당한 소유자로 인증할 수 있다.
(8) VerforSCi =?VerforSCi
사용자 단말(300)은 인증값 및 타임 스탬프를 생성할 수 있다(S125).
예를 들면, 사용자 단말(300)은 제1 랜덤값(Ni1)을 선택하고, 선택된 제1 랜덤값(Ni1)을 이용하여 제2 인증값(Bi) 및 제3 인증값(Ci)를 계산할 수 있고, 타임 스탬프(Ts)를 생성할 수 있다.
구체적으로, 사용자 단말(300)은 아래 식(9), (10)으로, 제2 인증값(Bi) 및 제3 인증값(Ci)를 계산할 수 있다. 여기서 제1 랜덤값(Ni1)은 세션 키 합의(session key agreement)를 위한, 사용자 단말(300)의 스마트 카드에 의해 생성된 랜덤값일 수 있다.
(9) Bi= Ai
Figure 112017083323326-pat00004
UIi
Figure 112017083323326-pat00005
Ni1
(10) Ci=h(Ni1||h(y))
사용자 단말(300)은 로그인 요청 메시지를 서비스 제공 서버(400)에 전송할 수 있다(S127).
예를 들면, 사용자 단말(300)은 생성된 인증값 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버(400)에 전송할 수 있다.
구체적으로, 사용자 단말(300)은 제2 인증값(Bi), 제3 인증값(Ci) 및 타임 스탬프(Ts)를 포함하는 로그인 요청 메시지(Bi, Ci, Ts)를 서비스 제공 서버(400)에 전송할 수 있다.
도 5를 참조하여, 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계(30)를 설명한다. 여기서 인증 및 키 동의 단계(30)는 수신된 로그인 요청 메시지를 이용하여 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 간의 검증을 수행하는 과정일 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 스마트 카드 기반의 인증 프로토콜의 인증 및 키 동의 단계에 대한 흐름도이다.
도 5를 참조하면, 서비스 제공 서버(400)는 수신된 로그인 요청 메시지를 이용하여 인증값을 계산할 수 있다(S129).
예를 들면, 서비스 제공 서버(400)는 제2 랜덤값(Ni2)을 선택하고, 선택된 제2 랜덤값(Ni2)을 이용하여 제4 인증값(Ki) 및 제5 인증값(Mi)를 계산할 수 있다.
구체적으로, 사용자 단말(300)은 아래 식(11), (12)으로, 제4 인증값(Ki) 및 제5 인증값(Mi)를 계산할 수 있다. 여기서 제2 랜덤값(Ni2)은 세션 키 합의(session key agreement)를 위한, 서비스 제공 서버(400)에 의해 생성된 랜덤값일 수 있다.
(11) Ki = h(SIDj||y)
Figure 112017083323326-pat00006
Ni2
(12) Mi =h(h(x||y)||Ni2)
서비스 제공 서버(400)는 생성된 인증값을 포함하는 로그인 요청 메시지를 인증 서버(500)에 전송할 수 있다(S131).
예를 들면, 서비스 제공 서버(400)는 복수의 인증값인 제2 인증값(Bi), 제3 인증값(Ci), 제4 인증값(Ki) 및 제5 인증값(Mi)과 서비스 제공 서버 ID(SIDj) 및 타임 스탬프(Ts)를 포함하는 로그인 요청 메시지(Bi, Ci, Ki, Mi, SIDj, Ts)를 전송할 수 있다.
인증 서버(500)는 전송된 로그인 요청 메시지를 기초로, 인증 시간을 확인할 수 있다(S133).
예를 들면, 인증 서버(500)는 Ts′= Ts+1를 계산하여 △Ts≥Ts′-Ts를 확인할 수 있다. 여기서 Ts′는 인증 서버(500)가 로그인 요청 메시지를 수신하였을 때의 타임 스탬프이고, △Ts는 로그인 메시지 전송 시간을 고려한 최소한의 인증 시간을 의미할 수 있다.
인증 서버(500)는 인증값 계산을 기초로, 서비스 제공 서버(400)를 인증할 수 있다(S135).
예를 들면, 인증 서버(500)는 제2 랜덤값(Ni2) 계산을 통해, 제5 인증값(Mi′)을 계산할 수 있고, 로그인 요청 메시지에 포함된 제5 인증값(Mi)과 비교할 수 있다. 그리고 인증 서버(500)는 비교 결과를 기초로, 서비스 제공 서버(400)를 인증할 수 있다.
일 실시예로, 인증 서버(500)는 아래 식(13) 내지 식(14)로 제5 인증값(Mi′)을 계산할 수 있고, 식(15)와 같이 계산된 제5 인증값(Mi′)이 로그인 요청 메시지에 포함된 제5 인증값(Mi)과 일치하면, 서비스 제공 서버(400)를 정당한 서비스 제공 서버(400)로 인증할 수 있다.
(13) Ni2= Ki
Figure 112017083323326-pat00007
h(SIDj||y)
(14) Mi′=h(h(x||y)|| Ni2)
(15) Mi=?Mi
인증 서버(500)는 사용자 단말(300)을 인증하기 위한 사용자 검증값(UserVeri )을 검색할 수 있다(S137).
예를 들면, 인증 서버(500)는 사용자 단말(300)을 인증하기 위해, 사용자 정보값(UIi)에 일치하는 사용자 검증값(UserVeri)을 검증자 테이블에서 검색할 수 있다.
인증 서버(500)는 검색된 사용자 검증값(UserVeri)을 기초로, 사용자 단말(300)을 인증할 수 있다(S139).
예를 들면, 인증 서버(500)는 검색된 사용자 검증값(UserVeri)을 기초로, 아래 식(16)으로 제1 랜덤값(Ni1)을 계산할 수 있다.
(16) Ni1= Bi
Figure 112017083323326-pat00008
h(UserVeri||h(x))
인증 서버(500)는 계산된 제1 랜덤값(Ni1)을 이용하여 식(17)으로, 제3 인증값(Ci′)을 계산할 수 있다.
(17) Ci′=h(h(y)|| Ni1
인증 서버(500)는 아래 식(18)과 같이, 계산된 제3 인증값(Ci′)이 로그인 요청 메시지에 포함된 제3 인증값(Ci)과 일치하면, 사용자 단말(300)을 정당한 사용자 단말(300)로 인증할 수 있다.
(18) Ci=? Ci
인증 서버(500)는 인증값 및 타임 스탬프를 생성할 수 있다(S141).
예를 들면, 인증 서버(500)는 제3 랜덤값(Ni3)을 선택하고, 선택된 제3 랜덤값(Ni3)을 이용하여 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)를 계산할 수 있고, 타임 스탬프(Ts)를 생성할 수 있다.
구체적으로, 인증 서버(500)는 아래 식(19) 내지 (22)으로, 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)을 계산할 수 있다. 여기서 제3 랜덤값(Ni3)은 세션 키 합의(session key agreement)를 위한, 인증 서버(500)에 의해 생성된 랜덤값일 수 있다.
(19) Qi= Ni1
Figure 112017083323326-pat00009
Ni3
Figure 112017083323326-pat00010
h(SIDj
Figure 112017083323326-pat00011
Ni2)
(20) Ri=h(UserVeri||h(x))
Figure 112017083323326-pat00012
h(SIDj||Ni2)
(21) Vi=h(h(UserVeri||h(x))||h(Ni1
Figure 112017083323326-pat00013
Ni2
Figure 112017083323326-pat00014
Ni3)
(22) Wi= Ni2
Figure 112017083323326-pat00015
Ni3
Figure 112017083323326-pat00016
h(UserVeri||h(x))
인증 서버(500)는 생성된 인증값 및 타임 스탬프를 포함하는 상호 인증 메시지를 서비스 제공 서버(400)에 전송할 수 있다(S143).
예를 들면, 인증 서버(500)는 생성된 인증값인 제6 인증값(Qi), 제7 인증값(Ri), 제8 인증값(Vi) 및 제9 인증값(Wi)과 타임 스탬프(Ts)를 포함하는 상호 인증 메시지(Qi, Ri, Vi, Wi, Ts)를 서비스 제공 서버(400)에 전송할 수 있다.
서비스 제공 서버(400)는 수신된 상호 인증 메시지를 기초로, 인증 서버(500)를 인증할 수 있다(S145).
예를 들면, 서비스 제공 서버(400)는 수신된 상호 인증 메시지(Qi, Ri, Vi, Wi, Ts)를 기초로, 아래 식(23) 내지 (25)로, 제8 인증값(Vi′)을 계산할 수 있다.
(23) Ni1
Figure 112017083323326-pat00017
Ni3= Qi
Figure 112017083323326-pat00018
h(SIDj
Figure 112017083323326-pat00019
Ni2)
(24) h(UserVeri||h(x))= Ri
Figure 112017083323326-pat00020
h(SIDj||Ni2)
(25) Vi′=h(h(UserVeri||h(x))||h(Ni1
Figure 112017083323326-pat00021
Ni2
Figure 112017083323326-pat00022
Ni3))
서비스 제공 서버(400)는 아래 식(26)과 같이, 계산된 제8 인증값(Vi′)이 상호 인증 메시지에 포함된 제8 인증값(Vi)과 일치하면, 인증 서버(500)를 정당한 인증 서버(500)로 인증할 수 있다.
(26) Vi=? Vi
서비스 제공 서버(400)는 응답 메시지를 사용자 단말(300)에 전송할 수 있다(S147).
예를 들면, 서비스 제공 서버(400)는 응답 메시지(Vi, Wi, Ts)를 사용자 단말(300)에 전송할 수 있다.
사용자 단말(300)은 수신된 응답 메시지를 기초로, 인증 시간을 확인할 수 있다(S149).
예를 들면, 사용자 단말(300)은 전송된 응답 메시지를 수신할 수 있고, 수신된 응답 메시지에 포함된 타임 스탬프(Ts)를 기초로, 인증 시간을 확인할 수 있다.
구체적으로, 사용자 단말(300)은 Ts′= Ts+1를 계산하여 △Ts≥Ts′-Ts를 확인할 수 있다. 여기서 Ts′는 인증 서버(500)가 로그인 요청 메시지를 수신하였을 때의 타임 스탬프이고, △Ts는 로그인 메시지 전송 시간을 고려한 최소한의 인증 시간을 의미할 수 있다.
사용자 단말(300)은 수신된 응답 메시지를 기초로, 서비스 제공 서버(400) 및 인증 서버(500)를 인증할 수 있다(S151).
예를 들면, 사용자 단말(300)은 수신된 응답 메시지(Vi, Wi, Ts)를 기초로, 아래 식(27) 내지 (29)로, 제8 인증값(Vi′)을 계산할 수 있다.
(27) h(UserVeri||h(x))= Ai
Figure 112017083323326-pat00023
UIi
(28) Ni2
Figure 112017083323326-pat00024
Ni3= Wi
Figure 112017083323326-pat00025
h(UserVeri||h(x))
(29) Vi′=h(h(UserVeri||h(x))||h(Ni1
Figure 112017083323326-pat00026
Ni2
Figure 112017083323326-pat00027
Ni3))
사용자 단말(300)은 아래 식(30)과 같이, 계산된 제8 인증값(Vi′)이 응답 메시지에 포함된 제8 인증값(Vi)과 일치하면, 서비스 제공 서버(400) 및 인증 서버(500)를 정당한 서비스 제공 서버(400) 및 인증 서버(500)로 인증할 수 있다.
(30) Vi=? Vi
사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500)는 동일한세션키를 생성할 수 있다(S153).
예를 들면, 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 각각은 아래 식(31)과 같이, 동일한 세션키(SK)를 생성할 수 있고, 인증을 수행할 수 있다.
(31) SK=h(h(UserVeri||h(x))||h(Ni1
Figure 112017083323326-pat00028
Ni2
Figure 112017083323326-pat00029
Ni3))
다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 스마트 카드에 대응하는 패스워드를 변경할 수 있다. 이에 대해 도 6을 참조하여 설명한다.
도 6은 본 발명의 다양한 실시예에 따른 패스워드 변경 동작에 대한 흐름도이다.
도 6을 참조하면, 사용자 단말(300)은 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득할 수 있다(S201).
예를 들면, 사용자 단말(300)은 스마트 카드 리더 모듈(270)에 스마트 카드가 삽입된 상태에서, 사용자 정보인 사용자 아이디(IDi) 및 패스워드(Pi)를 획득할 수 있다.
여기서 스마트 카드가 삽입된 상태는 상술한 바와 같이, 가상 카드가 인식된 상태 또는 물리적 형태의 카드가 물리적으로 삽입된 상태를 의미할 수 있다.
사용자 단말(300)은 획득된 사용자 정보를 기초로, 스마트 카드 검증값을 생성할 수 있다(S203).
예를 들면, 사용자 단말(300)은 획득된 사용자의 ID(IDi), 패스워드(Pi)를 기초로, 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.
구체적으로, 사용자 단말(300)은 획득된 사용자 ID(IDi) 및 패스워드(Pi)를 기초로, 아래 식(32), (33)을 계산하여 스마트 카드 검증값(VerforSCi′)을 생성할 수 있다.
(32) UIi=h(IDi||h(Pi))
(33) VerforSCi′=h(IDi||h(y)||UIi)
사용자 단말(300)은 생성된 스마트 카드 검증값(VerforSCi′)이 스마트 카드 검증 기준값(VerforSCi)과 동일한지 판단할 수 있다(S205).
예를 들면, 사용자 단말(300)은 아래 식(34)와 같이, 생성한 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 포함된 스마트 카드 검증 기준값(VerforSCi)이 동일한지 판단할 수 있다. 사용자 단말(300)은 계산된 스마트 카드 검증값(VerforSCi′)과 스마트 카드에 저장된 스마트 카드 검증 기준값(VerforSCi)이 동일하면, 사용자를 정당한 스마트 카드의 소유자로 검증할 수 있다.
(34) VerforSCi=? VerforSCi
사용자 단말(300)은 변경될 새로운 패스워드와 관련된 정보를 획득할 수 있다(S207).
예를 들면, 사용자 단말(300)은 변경될 새로운 패스워드(NwPi)를 획득할 수 있고, 획득된 새로운 패스워드(NwPi)를 아래 식(35)으로 계산하여 새로운 사용자 정보값(NwUIi)을 생성할 수 있다.
(35) NwUIi=h(IDi||h(NwPi))
이를 통해, 사용자 단말(300)은 새로운 사용자 정보값(NwUIi)과 같은 새로운 패스워드와 관련된 정보를 획득할 수 있다.
사용자 단말(300)은 획득된 새로운 패스워드와 관련된 정보를 기초로, 새로운 스마트 카드 검증값을 계산할 수 있다(S209).
예를 들면, 사용자 단말(300)은 생성된 새로운 사용자 정보값(NwUIi)을 기초로, 새로운 스마트 카드 검증값(NwVerforSCi)을 계산할 수 있다.
구체적으로, 사용자 단말(300)은 새로운 사용자 정보값(NwUIi)을 기초로, 아래 식(36)으로 새로운 스마트 카드 검증값(NwVerforSCi)을 계산할 수 있다.
(36) NwVerforSCi=h(IDi||h(y)|| NwUIi)
사용자 단말(300)은 계산된 새로운 스마트 카드 검증값을 저장할 수 있다(S211).
예를 들면, 사용자 단말(300)은 저장된 스마트 카드 검증값(VerforSCi)을 대체하여, 계산된 새로운 스마트 카드 검증값(NwVerforSCi)을 스마트 카드에 저장할 수 있다. 이에 따라, 스마트 카드의 패스워드가 변경될 수 있다.
본 발명의 다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 인증 서버(500)가 스마트 카드에 대한 쓰기 권한을 가지며, 사용자 단말(300)은 스마트 카드에 대한 쓰기 권한을 가지지 않을 수 있어서, 인가된 사용자로 가장하는 공격자에 의한 스마트 카드에 대한 위변조를 방지할 수 있다.
또한, 본 발명은 공격자가 이전 세션의 공개된 채널을 통해 인증값 및 타임 스탬프 등을 알더라도 세션키는 도출할 수 없어서, 세션키 유출 공격에 안전할 수 있다.
또한, 본 발명은 사용자 단말(300), 서비스 제공 서버(400) 및 인증 서버(500) 간의 로그인 요청 메시지 및 인증 메시지에 타임 스탬프를 사용하므로, 공격자의 재전송 공격에 대응할 수 있다.
또한, 본 발명은 검증 테이블을 사용하여 상태 비트 값이 1로 저장되어 있는 경우, 이에 해당하는 로그인 요청 메시지를 받지 않으므로 서비스의 가용성을 침해하는 서비스 거부 공격에 안전할 수 있다.
또한, 본 발명에 다양한 실시예에 따른 스마트 카드 기반 인증 시스템, 장치 및 인증 방법은 기존 방식에 비해 적은 횟수, 적은 연산량의 XOR 연산과 해쉬 암호화 연산이 필요하므로, 인증 프로토콜의 동작 효율성을 향상시킬 수 있다.
이상, 본 발명의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.
100: 서버
110: 프로세서
130: 메모리
150: 통신 모듈
200: 단말기
210: 프로세서
230: 메모리
250: 통신 모듈
270: 스마트 키 리더 모듈
300: 사용자 단말
400: 서비스 제공 서버
500: 인증 서버

Claims (14)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 사용자 단말에 스마트 카드가 삽입된 상태에서, 사용자 정보를 획득하는 단계;
    상기 획득된 사용자 정보를 기초로, 스마트 카드 검증값(VerforSCi′)을 계산하는 단계;
    상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)을 비교하는 단계;
    비교 결과, 상기 계산된 스마트 카드 검증값(VerforSCi′)과 상기 스마트 카드에 저장된 스마트 카드 검증값(VerforSCi)이 동일하면, 상기 스마트 카드에 대한 사용자를 인증하는 단계;
    서비스 제공 서버로부터 응답 메시지를 수신하는 단계;
    상기 수신된 응답 메시지에 포함된 타임 스탬프를 기초로, 인증 시간을 확인하는 단계;
    상기 응답 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계;
    상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V를 비교하는 단계; 및
    비교 결과, 상기 계산된 인증값 V′과 상기 수신된 응답 메시지에 포함된 인증값 V가 동일하면, 상기 서비스 제공 서버 및 인증 서버를 인증하는 단계;
    를 포함하는, 스마트 카드 기반 인증 방법.
  8. 제7항에 있어서,
    선택된 제1 랜덤값을 이용하여 인증값 B 및 인증값 C를 계산하는 단계; 및
    상기 계산된 인증값 B, 인증값 C 및 타임 스탬프를 포함하는 로그인 요청 메시지를 서비스 제공 서버에 전송하는 단계를 더 포함하는
    스마트 카드 기반 인증 방법.
  9. 삭제
  10. 삭제
  11. 제7항에 있어서,
    상기 인증된 서비스 제공 서버 및 상기 인증된 인증 서버와 동일한 세션키를 생성하는 단계를 더 포함하는
    스마트 카드 기반 인증 방법.
  12. 사용자 단말로부터 로그인 요청 메시지를 수신하는 단계;
    선택된 제2 랜덤값과, 인증 서버로부터 수신된 서비스 제공 서버 ID 및 보안 정보에 대한 해쉬 값을 기초로 인증값 K 및 인증값 M을 계산하는 단계;
    상기 계산된 인증값 K 및 인증값 M과, 상기 서비스 제공 서버 ID 및 타임 스탬프를 포함하는 로그인 요청 메시지를 상기 인증 서버에 전송하는 단계;
    상기 인증 서버로부터, 상기 전송된 로그인 요청 메시지에 대응하는 상호 인증 메시지를 수신하는 단계;
    상기 상호 인증 메시지에 포함된 인증값을 기초로, 인증값 V′를 계산하는 단계;
    상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V를 비교하는 단계;
    비교 결과, 상기 계산된 인증값 V′와 상기 상호 인증 메시지에 포함된 인증값 V가 동일하면, 상기 인증 서버를 정당한 인증 서버로 인증하는 단계;
    상기 인증값 V 및 타임 스탬프를 포함하는 응답 메시지를 상기 사용자 단말에 전송하는 단계;
    를 포함하는, 스마트 카드 기반 인증 방법.
  13. 삭제
  14. 삭제
KR1020170108943A 2017-08-28 2017-08-28 스마트 카드 기반 인증 시스템, 장치 및 인증 방법 KR102021956B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170108943A KR102021956B1 (ko) 2017-08-28 2017-08-28 스마트 카드 기반 인증 시스템, 장치 및 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170108943A KR102021956B1 (ko) 2017-08-28 2017-08-28 스마트 카드 기반 인증 시스템, 장치 및 인증 방법

Publications (2)

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

Family

ID=65800638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170108943A KR102021956B1 (ko) 2017-08-28 2017-08-28 스마트 카드 기반 인증 시스템, 장치 및 인증 방법

Country Status (1)

Country Link
KR (1) KR102021956B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101124923B1 (ko) * 2008-08-04 2012-03-28 에스케이플래닛 주식회사 스마트 카드 인증 시스템 및 그 방법
KR20120124175A (ko) * 2011-05-03 2012-11-13 주식회사 케이티 스마트 카드를 발급하는 방법 및 장치
KR20150077981A (ko) * 2013-12-30 2015-07-08 고려대학교 산학협력단 스마트카드를 이용한 원거리 인증 방법
KR101609274B1 (ko) * 2014-02-20 2016-04-05 류창화 스마트카드, 스마트인증서버 및 스마트카드 인증 방법

Also Published As

Publication number Publication date
KR20190023353A (ko) 2019-03-08

Similar Documents

Publication Publication Date Title
CN108768660B (zh) 基于物理不可克隆函数的物联网设备身份认证方法
CN106656907B (zh) 用于认证的方法、装置、终端设备及系统
US11621855B2 (en) Electronic device and method for managing blockchain address using the same
KR102493744B1 (ko) 생체 특징에 기초한 보안 검증 방법, 클라이언트 단말, 및 서버
US10523441B2 (en) Authentication of access request of a device and protecting confidential information
US9830447B2 (en) Method and system for verifying an access request
EP3121991B1 (en) System and method of user authentication using digital signatures
CN106161350B (zh) 一种管理应用标识的方法及装置
US20110047377A1 (en) Secure digital communications via biometric key generation
CN106576046B (zh) 将元数据与硬件固有属性绑定的系统和设备
EP3206329B1 (en) Security check method, device, terminal and server
EP3018607B1 (en) Device and authentication system
US20150244695A1 (en) Network authentication method for secure user identity verification
CN107690791A (zh) 用于使电子通信中的认证安全的方法
CN113971274B (zh) 一种身份识别方法及装置
KR20160113248A (ko) 기기 증명서 제공 장치, 기기 증명서 제공 시스템 및 기기 증명서 제공 프로그램을 기록한 컴퓨터 판독 가능한 비 일시적 기록 매체
US11522849B2 (en) Authentication system and computer readable medium
KR102372503B1 (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
KR101912403B1 (ko) 장비들 간의 보안 인증 방법
EP2916509B1 (en) Network authentication method for secure user identity verification
KR102021956B1 (ko) 스마트 카드 기반 인증 시스템, 장치 및 인증 방법
JP2014230156A (ja) 認証システム、認証方法、認証プログラムおよび認証装置
CN110168550A (zh) 基于随机数的数据消息认证
JP7280338B1 (ja) 情報処理システム、トークン発行装置、情報処理方法、及びプログラム
US10491385B2 (en) Information processing system, information processing method, and recording medium for improving security of encrypted communications

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