KR101604009B1 - 공인인증을 위한 보안 토큰 및 그 구동 방법 - Google Patents

공인인증을 위한 보안 토큰 및 그 구동 방법 Download PDF

Info

Publication number
KR101604009B1
KR101604009B1 KR1020140056106A KR20140056106A KR101604009B1 KR 101604009 B1 KR101604009 B1 KR 101604009B1 KR 1020140056106 A KR1020140056106 A KR 1020140056106A KR 20140056106 A KR20140056106 A KR 20140056106A KR 101604009 B1 KR101604009 B1 KR 101604009B1
Authority
KR
South Korea
Prior art keywords
key pair
public key
private key
wireless terminal
public
Prior art date
Application number
KR1020140056106A
Other languages
English (en)
Other versions
KR20150129869A (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 KR1020140056106A priority Critical patent/KR101604009B1/ko
Priority to CN201580024504.XA priority patent/CN106462900A/zh
Priority to US15/310,745 priority patent/US10063381B2/en
Priority to PCT/KR2015/004649 priority patent/WO2015174696A1/ko
Publication of KR20150129869A publication Critical patent/KR20150129869A/ko
Application granted granted Critical
Publication of KR101604009B1 publication Critical patent/KR101604009B1/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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3223Realising banking transactions through M-devices
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/327Short range or proximity payments by means of M-devices
    • G06Q20/3278RFID or NFC payments by means of M-devices
    • 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/3825Use of electronic signatures
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Abstract

본 발명은 공인인증을 위한 보안 토큰 및 그 구동 방법에 관한 것이다.
본 발명에 따른 공인인증을 위한 보안 토큰은, 공인인증서를 위한 개인키와 공개키 쌍을 생성하는 키쌍생성 모듈; 상기 공인인증서에 기초하여 전자서명을 생성하는 전자서명 모듈; 상기 공인인증서, 개인키, 공개키를 저장하는 내부 메모리; 무선 단말과 NFC(Near Field Communication) 통신을 수행하는 NFC 통신 모듈; 및 상기 키쌍생성 모듈, 전자서명 모듈, 내부 메모리, NFC 통신 모듈을 제어하는 제어부를 포함하는 보안 칩을 구비하는 것을 특징으로 한다.

Description

공인인증을 위한 보안 토큰 및 그 구동 방법 {Hardware Security Module for Certification and Processing Method thereof}
본 발명은 공인인증을 위한 보안 토큰 및 그 구동 방법에 관한 것으로, 보다 상세하게는 PC 환경과 스마트 폰 환경에서 공용으로 공인인증서를 안전하고 편리하게 사용할 수 있는 공인인증을 위한 보안 토큰 및 그 구동 방법에 관한 것이다.
공인인증서는 공신력이 있는 공인인증기관에서 발급한 전자서명 인증서로서, 우리나라의 경우 인터넷 뱅킹뿐만 아니라 온라인 증명서 발급, 전자상거래, 인터넷 주식거래 등 매우 다양한 분야에서 필수적으로 사용되고 있다. 그리고, 최근에는 급격히 보급된 스마트 폰(smart phone)에서의 금융거래가 급증하고 있어 스마트 폰에서의 공인인증서 사용도 점차 확대되고 있다.
기존의 PC 환경에서 공인인증서 사용 형태를 살펴보면, 공인인증서를 하드 디스크, 이동식 디스크, 휴대폰, 저장 토큰, 보안 토큰 등에 저장해 두고 있다가 인터넷 금융거래를 위해 공인인증이 필요한 경우 하드 디스크 등에 저장된 공인인증서를 통해 전자서명을 생성하고 이를 인증 서버가 검증함으로써 공인인증을 수행하는 방식이다.
하지만, 하드 디스크 또는 이동식 디스크 저장방식의 경우, 해킹 프로그램이 특정 폴더에 파일 형태로 저장되어 있는 공인인증서를 손쉽게 복사할 수 있고 또한 PC를 모니터링하여 공인인증서 비밀번호를 손쉽게 알아낼 수 있으므로, 보안이 취약하여 해킹으로 인한 금융사고가 빈번히 발생하는 문제점이 있다. 한편 이동식 디스크를 사용하면 PC에 연결되어 있을 때만 해킹에 노출될 수 있으므로 하드 디스크보다 안전하다고 생각할 수 있지만, 반면 이동식 디스크는 분실의 가능성이 높아 이로 인한 공인인증서의 유출 가능성이 높다. 그리고, 휴대폰, 저장 토큰 저장방식의 경우에도, 비록 공인인증서가 파일 형태로 저장되지는 않지만 공인인증서를 사용할 때 PC에서 전자서명을 수행해야 하므로, 공인인증서의 개인키가 PC 메모리에 노출되어 해킹될 수 있는 취약점이 여전히 존재한다.
그러므로, 공인인증서를 보안 칩 안에 저장하고 보안 칩 안에서 전자서명을 수행하는 보안 토큰(HSM; Hardware Security Module) 저장방식이 가장 안전하며, 한국인터넷진흥원(KISA)에서도 보안 토큰의 사용을 권장하고 있다. 그러나, 현재 한국인터넷진흥원(KISA)에서 인증받아 판매되고 있는 이러한 형태의 보안 토큰 제품들은 PC 환경에서만 동작하는 방식이므로 스마트 폰에서는 사용할 수 없는 문제점이 있다.
이와 관련하여, 기존의 스마트 폰 환경에서 공인인증서를 사용하는 형태를 살펴보면, PC에서 발급된 공인인증서를 스마트 폰으로 복사하여 특정 폴더에 파일 형태로 저장해 두고 여러 애플리케이션(Application)들이 공용으로 사용하거나 또는 PC에서 발급된 공인인증서를 스마트 폰 애플리케이션마다 자신의 데이터 저장공간에 복사하여 저장해 두고 사용하는 방식이다.
하지만, 이 경우에도 PC 환경에서 하드 디스크 저장방식과 마찬가지로 스마트 폰에 저장되어 있는 공인인증서가 해킹될 수 있으며, 이동식 디스크 저장방식과 마찬가지로 스마트 폰 분실로 인하여 공인인증서가 유출될 수 있는 문제점이 있다.
그러므로, 해킹이 사실상 불가능하고 분실에 대해서도 안전한 보안 토큰을 스마트 폰에서도 사용할 수 있는 방안이 요구되며, 특히 이러한 보안 토큰을 PC 환경과 스마트 폰 환경에서 공용으로 안전하고 편안하게 사용할 수 있는 방안이 절실히 요구된다.
한편, 최근 한국인터넷진흥원(KISA)에서는 공인인증서 암호체계 고도화 사업을 진행하고 있는데, 이 사업의 핵심은 전자서명 알고리즘의 개인키(비밀키) 길이를 1024비트에서 2048비트로 상향 조정하여, 전자서명 알고리즘의 안전성을 증가시키는 데 목적이 있다.
현재 공인인증서의 전자서명 알고리즘은 RSA(Rivest Shamir Adleman) 알고리즘을 사용하고 있으며, 1024비트의 RSA 알고리즘을 2048비트로 상향하면 이론적으로 약 4배 이상의 연산시간이 걸리게 된다. 구체적으로, 현재 스마트카드 칩에서 1024비트의 개인키와 공개키 쌍 생성 시간은 평균 2~3초이며 경우에 따라서는 6초 이상 걸릴 수도 있는데, 암호체계를 상향할 경우 2048비트의 개인키와 공개키 쌍 생성 시간은 평균 20~30초이며 경우에 따라서는 60초 이상이 걸릴 수도 있다.
따라서, 보안 토큰을 사용하여 2048비트의 공인인증서를 발급받는 경우, 발급과정이 1분 이상 걸릴 수 있어서 사용자가 매우 불편함을 느낄 수 있다. 이에 한국인터넷진흥원(KISA)에서는 보안 토큰에서 2048비트의 개인키와 공개키 쌍 생성 시간을 수초 이내로 줄일 것을 원하고 있지만, 현재의 기술로는 해결할 수 있는 방법이 제시되고 있지 않다.
그러므로, 스마트 폰 환경에서 NFC(Near Field Communication) 통신을 이용하여 보안 토큰이 개인키와 공개키 쌍을 효율적으로 생성하여 사용할 수 있는 방안도 절실히 요구된다.
대한민국 등록특허공보 제10-0651718호
본 발명은 전술한 바와 같은 요구를 충족시키기 위해 창안된 것으로, 본 발명의 목적은 PC 환경과 스마트 폰 환경에서 공인인증서를 안전하고 편리하게 사용할 수 있는 공인인증을 위한 보안 토큰 및 그 구동 방법을 제공하는 것이다.
본 발명의 다른 목적은 스마트 폰 환경에서 NFC 통신을 이용하여 개인키와 공개키 쌍을 사전에 생성하는 공인인증을 위한 보안 토큰 및 그 구동 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 개인키와 공개키 쌍 생성 과정을 2 이상의 하위 과정으로 분리하여 진행함으로써 전력이 약한 NFC 통신을 통해서도 개인키와 공개키 쌍을 생성할 수 있는 공인인증을 위한 보안 토큰 및 그 구동 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 스마트 폰 환경에서 NFC 통신을 이용하여 전자서명을 생성하는 공인인증을 위한 보안 토큰 및 그 구동 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 전자서명 생성 과정을 2 이상의 하위 과정으로 분리하여 진행함으로써 전력이 약한 NFC 통신을 통해서도 전자서명을 생성할 수 있는 공인인증을 위한 보안 토큰 및 그 구동 방법을 제공하는 것이다.
상기 목적을 위하여, 본 발명의 일 형태에 따른 공인인증을 위한 보안 토큰은, 공인인증서를 위한 개인키와 공개키 쌍을 생성하는 키쌍생성 모듈; 상기 공인인증서에 기초하여 전자서명을 생성하는 전자서명 모듈; 상기 공인인증서, 개인키, 공개키를 저장하는 내부 메모리; 무선 단말과 NFC(Near Field Communication) 통신을 수행하는 NFC 통신 모듈; 및 상기 키쌍생성 모듈, 전자서명 모듈, 내부 메모리, NFC 통신 모듈을 제어하는 제어부를 포함하는 보안 칩을 구비하는 것을 특징으로 한다.
바람직하게는, 상기 보안 칩은 상기 무선 단말로부터 개인키와 공개키 쌍 생성 명령을 수신하면, 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 저장되어 있는지 확인하고, 만약 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 저장되어 있으면 상기 사전 생성된 개인키와 공개키 쌍을 읽어온다.
그리고, 상기 보안 칩은, 상기 무선 단말로부터 전자서명의 생성의 준비를 요청받으면, 상기 무선 단말로부터 방출된 전자기파를 통해 충전된 전력을 이용하여, 상기 무선 단말로부터 수신된 키정보에 해당하는 공인인증서의 개인키를 선택하여 상기 선택된 개인키로 전자서명 연산을 초기화한 후 상기 무선 단말로 상태정보를 전송하고, 상기 무선 단말로부터 전자서명의 생성의 실행을 요청받으면, 상기 무선 단말로부터 방출된 전자기파를 통해 재충전된 전력을 이용하여, 상기 무선 단말로부터 수신된 서명될 데이터에 대해서 전자서명 연산을 수행하고 전자서명 값을 상기 무선 단말로 전송한다.
한편, 본 발명의 일 형태에 따른 공인인증을 위한 보안 토큰의 구동 방법은, 상기 보안 토큰이 NFC(Near Field Communication) 통신을 통해 무선 단말로부터 개인키와 공개키 쌍 생성 명령을 수신하는 단계; 상기 보안 토큰이 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 있는지 확인하는 단계; 및 만약 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 있으면, 상기 보안 토큰이 NFC 통신을 통해 상기 무선 단말로 상기 개인키와 공개키 쌍 생성을 응답하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 보안 토큰의 구동 방법은, 만약 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 없으면, 상기 보안 토큰이 상기 무선 단말로부터 방출된 전자기파를 통해 상기 개인키와 공개키 쌍을 실시간으로 생성하고 NFC 통신을 통해 상기 무선 단말로 응답하는 단계를 더 포함한다.
본 발명에 따르면, PC 환경과 스마트 폰 환경 어디에서든지 공인인증을 안전하고 편리하게 수행할 수 있는 효과를 가진다.
그리고, 본 발명에 따르면, NFC(Near Field Communication) 통신을 이용하여 스마트 폰에서도 보안 토큰을 이용한 공인인증이 가능한 효과를 가지며, 특히 NFC 통신을 이용하기 때문에 배터리가 필요없어 가볍고 휴대하기 편하며 제조단가가 낮은 효과를 가진다.
또한, 본 발명에 따르면, 보안 토큰이 대기 시간을 이용하여 개인키와 공개키 쌍을 사전 생성하여 저장해 두기 때문에 개인키와 공개키 쌍의 생성 요청에 따른 응답시간을 최소화할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, 보안 토큰이 개인키와 공개키 쌍 생성 과정을 2 이상의 하위 과정으로 분리하여 진행하기 때문에 전력이 약한 NFC 통신을 통해서도 개인키와 공개키 쌍을 생성할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, 보안 토큰이 전자서명 생성 과정을 2 이상의 하위 과정으로 분리하여 진행하기 때문에 전력이 약한 NFC 통신을 통해서도 전자서명을 생성할 수 있는 효과를 가진다.
도 1은 본 발명에 따른 PC 환경과 스마트 폰 환경에서 공용으로 사용하는 공인인증 시스템의 개요도이다.
도 2는 본 발명의 일 실시예에 따른 보안 토큰의 상세 구성도이다.
도 3은 종래기술에 따른 스마트카드 칩에서 개인키와 공개키 쌍을 생성하고 사용하는 과정을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 보안 토큰에서 개인키와 공개키 쌍을 생성하고 사용하는 과정을 나타낸 흐름도이다.
도 5는 도 4의 단계 S420에 대한 세부 과정을 나타낸 흐름도이다.
도 6은 스마트카드 칩이 사용되는 일반적인 과정을 나타낸 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 보안 칩이 대기모드에서 개인키와 공개키 쌍을 생성하는 과정을 나타낸 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 보안 칩이 명령어를 처리하면서 개인키와 공개키 쌍을 생성하는 과정을 나타낸 흐름도이다.
도 9는 일반적인 스마트카드 칩이 NFC 통신을 통해 무선 단말에 연결되어 사용되는 경우 스마트카드 칩의 연산 시간에 따른 전력 변화를 나타낸 그래프이다.
도 10은 본 발명의 일 실시예에 따른 보안 칩이 NFC 통신을 통해 무선 단말에 연결되어 사용되는 경우 개인키와 공개키 쌍 생성 하위 과정들을 수행하는 동안 보안 칩의 연산 시간에 따른 전력 변화를 나타낸 그래프이다.
도 11은 본 발명의 일 실시예에 따른 보안 토큰이 PC 환경에서 공인인증을 수행하는 방식을 설명하는 개요도이다.
도 12는 본 발명의 일 실시예에 따른 보안 토큰이 PC 환경에서 공인인증을 수행하는 방법의 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 보안 토큰이 스마트 폰 환경에서 공인인증을 수행하는 방식을 설명하는 개요도이다.
도 14는 본 발명의 일 실시예에 따른 보안 토큰이 스마트 폰 환경에서 공인인증을 수행하는 방법의 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 보안 칩이 전자서명을 생성하는 일 실시예의 흐름도이다.
도 16은 본 발명의 일 실시예에 따른 보안 칩이 전자서명을 생성하는 다른 실시예의 흐름도이다.
도 17은 도 16의 실시예의 경우 보안 칩의 전력 변화를 나타낸 도면이다.
이하에서는 첨부 도면 및 바람직한 실시예를 참조하여 본 발명을 상세히 설명한다. 참고로, 하기 설명에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
먼저, 보안 토큰을 PC 환경과 스마트 폰 환경에서 공용으로 사용하는 방안으로는, 보안 토큰을 PC와는 USB로 연결하여 사용하고 스마트 폰(무선 단말)과는 와이파이(Wi-Fi), 블루투스(Bluetooth), NFC(Near Field Communication) 통신 등으로 연결하여 사용하는 방안을 고려할 수 있다.
하지만, 보안 토큰을 와이파이 또는 블루투스로 스마트 폰과 연결하기 위해서는 반드시 배터리를 통한 전력 공급이 필요하며, 보안 토큰에 배터리를 내장하게 되면 제조사 입장에서는 제조 단가가 상승하고 사용자 입장에서는 충전 관리가 필요하다. 또한, 와이파이나 블루투스는 연결 거리가 길어 보안 취약점이 발생할 수 있는 문제점이 있다.
그러므로, 본 발명에서는 NFC(Near Field Communication) 통신을 이용하여 보안 토큰을 스마트 폰(무선 단말)과 연결하여 사용하는 방안을 제안한다.
도 1은 본 발명에 따른 PC 환경과 스마트 폰 환경에서 공용으로 사용하는 공인인증 시스템의 개요도이다.
도 1을 참조하면, 본 발명에 따른 공인인증 시스템은 크게 보안 토큰(100), 컴퓨터(200), 무선 단말(300), 인증 서버(400) 등으로 구성된다.
이를 간단히 설명하면, 보안 토큰(100)은 컴퓨터 및 무선 단말 모두에 접속될 수 있으며, 내부에 공인인증서를 구비하여 전자서명을 생성할 수 있는 HSM(Hardware Security Module)이다. 예컨대, 보안 토큰(100)은 컴퓨터(200)와는 USB(Universal Serial Bus) 통신을 수행하고 무선 단말(300)과는 NFC(Near Field Communication) 통신을 수행하여 컴퓨터 및 무선 단말과 모두 통신할 수 있으며, 내부의 공인인증서에 기초하여 생성된 전자서명을 컴퓨터(200) 및/또는 무선 단말(300)에 전송하거나 또는 내부의 공인인증서를 직접 컴퓨터(200) 및/또는 무선 단말(300)에 전송하여 공인인증을 수행한다.
컴퓨터(200)는 예컨대 USB 통신을 통해 보안 토큰(100)으로부터 전송된 전자서명을 인증 서버(400)로 전송하여 공인인증을 수행하고, 이에 기초하여 금융, 발급, 게임, 교육 등의 서비스를 제공한다. 참고로, 본 발명에서 컴퓨터(200)는 PC(Personal Computer), 노트북 등과 같이 USB 포트를 구비하여 USB 통신이 가능하며 또한 유무선 인터넷을 통해 인증 서버(400)와 통신할 수 있는 모든 종류의 컴퓨터를 포함하는 의미이다.
그리고, 무선 단말(300)은 예컨대 NFC 통신을 통해 보안 토큰(100)으로부터 전송된 전자서명을 인증 서버(400)로 전송하거나 또는 보안 토큰(100)으로부터 전송된 공인인증서에 기초하여 전자서명을 생성하고 이를 인증 서버(400)로 전송하여 공인인증을 수행하고, 마찬가지로 이에 기초하여 금융, 발급, 게임, 교육 등의 서비스를 제공한다. 참고로, 본 발명에서 무선 단말(300)은 스마트 폰, 테블릿 PC 등과 같이 NFC 통신이 가능하며 또한 무선 인터넷을 통해 인증 서버(400)와 통신할 수 있는 모든 종류의 무선 단말을 포함하는 의미이다.
마지막으로, 인증 서버(400)는 컴퓨터(200) 및/또는 무선 단말(300)로부터 전송된 전저서명을 검증하여 본인 인증을 수행하고 그 결과를 알려주는 장치이다.
도 2는 본 발명의 일 실시예에 따른 보안 토큰(100)의 상세 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 보안 토큰(100)은 USB 연결부(110), 내부 통신 제어부(120), 보안 칩(130), 안테나(140) 등을 포함하고, 보안 칩(130)은 다시 접촉식 통신 모듈(131), NFC 통신 모듈(132), 키쌍생성 모듈(133), 전자서명 모듈(134), 내부 메모리(135), 제어부(136) 등으로 구성된다.
USB 연결부(110)는 컴퓨터(200)의 USB 포트(220)와 보안 토큰(100)(구체적으로는, 내부 통신 제어부(120))을 연결하기 위한 장치이다. USB 포트의 모양은 일반적으로 가장 많이 사용되는 Type A가 바람직하지만, Type B, Mini-A, Mini-B, Micro-A, Micro-B 등으로 형성될 수도 있다.
내부 통신 제어부(120)는 컴퓨터(200)와 USB 통신을 제어하고 보안 칩(130)과 접촉식 통신을 제어하는 장치로, USB 규격에 따라서 컴퓨터(200)로부터 전력을 공급받아 동작한다. 컴퓨터(200)와는 USB 규격을 준수하여 통신하고, 보안 칩(130)의 접촉식 통신모듈(131)과는 예컨대 ISO7816 규격을 준수하여 통신하며, 컴퓨터(200)의 응용 소프트웨어(210)에서 전송된 명령어를 보안 칩(130)으로 전송하고, 보안 칩(130)의 응답을 컴퓨터(200)의 응용 소프트웨어(210)로 전송하는 역할을 한다. 내부 통신 제어부(120)는 하나의 칩으로 구성되는 것이 바람직하지만, USB 통신 제어부와 접촉식 통신 제어부가 독립된 칩으로 구성될 수도 있으며, 또한 내부 통신 제어부(120)가 범용 MCU(Micro Control Unit) 또는 보안 칩(130)의 일부로 구성될 수도 있다. 내부 통신 제어부(120)가 보안 칩(130)의 일부로 구성될 경우, 보안 칩(130)의 접촉식 통신모듈(131)과 통신하지 않고 직접 보안 칩(130)의 제어부(136)와 통신할 수도 있다.
보안 칩(130)은 접촉식 통신 모듈(131), NFC 통신 모듈(132), 키쌍생성 모듈(133), 전자서명 모듈(134), 내부 메모리(135), 제어부(136) 등으로 구성된다. 보안 칩(130)은 보안 토큰(100)이 컴퓨터(200)에 연결된 경우에는 예컨대 ISO7816 규격에 따라서 컴퓨터(200) 및/또는 내부 통신 제어부(120)로부터 전력을 공급받아 동작하고, 컴퓨터(200)에 연결되지 않고 무선 단말(300)에 근접한 경우에는 예컨대 ISO14443 규격에 따라서 무선 단말(300)의 NFC 통신 모듈(330)로부터 안테나(140)로 유도된 전력으로 동작한다. 보안 칩(130)은 보안 토큰(100)의 기판에 고정된 형태로 구현되는 것이 바람직하지만, SIM(Subscriber Identity Module) 타입으로 삽입되는 형태일 수도 있다.
접촉식 통신 모듈(131)은 내부 통신 제어부(120)와 접촉식 통신을 수행하는 모듈이다. 내부 통신 제어부(120)와는 예컨대 ISO7816 규격을 준수하여 통신하며, 컴퓨터(200)의 응용 소프트웨어(210)에서 전송된 명령어를 내부 통신 제어부(120)를 통해 보안 칩(130)으로 수신하고, 보안 칩(130)의 응답을 다시 내부 통신 제어부(120)를 통해 컴퓨터(200)의 응용 소프트웨어(210)로 전송하는 역할을 한다.
NFC 통신 모듈(132)은 무선 단말(300)의 NFC 통신 모듈(330)과 통신을 수행하는 모듈이다. 무선 단말(300)의 NFC 통신 모듈(330)과는 예컨대 ISO14443 규격을 준수하여 통신하며, 무선 단말(300)의 애플리케이션(320)에서 전송된 명령어를 무선 단말(300)의 NFC 통신 모듈(330)을 통해 보안 칩(130)으로 수신하고, 보안 칩(130)의 응답을 다시 무선 단말(300)의 NFC 통신 모듈(330)을 통해 무선 단말(300)의 애플리케이션(320)으로 전송하는 역할을 한다.
키쌍생성 모듈(133)은 공인인증서 발급 과정에서 필요한 개인키와 공개키 쌍을 생성한다. 키쌍생성 모듈(133)은 접촉식 통신 모듈(131)이나 NFC 통신 모듈(132)을 통해 컴퓨터(200)나 무선 단말(300)로부터 개인키와 공개키 쌍 생성 명령이 수신되면 제어부(136)의 제어 하에 개인키와 공개키 쌍을 생성한다. 또한, 본 발명의 바람직한 실시예에 따르면, 키쌍생성 모듈(133)은 컴퓨터(200)나 무선 단말(300)로부터 개인키와 공개키 쌍 생성 명령이 없더라도 제어부(136)의 제어 하에 개인키와 공개키 쌍을 미리 생성하고 이를 내부 메모리(135)에 저장해 둔다. 본 발명의 개인키와 공개키 쌍 생성에 관한 설명은 하기에서 상술하기로 한다.
전자서명 모듈(134)은 접촉식 통신 모듈(131)이나 NFC 통신 모듈(132)을 통해 컴퓨터(200)나 무선 단말(300)로부터 전자서명 명령이 수신되면 제어부(136)의 제어 하에 내부 메모리(135)에 저장되어 있는 공인인증서의 개인키를 사용하여 전자서명을 생성한다. 본 발명의 전자서명 생성에 관한 상세한 설명은 하기에서 상술하기로 한다.
내부 메모리(135)는 보안 칩(130) 내부에 있는 메모리로서 예컨대 EEPROM(Electrically Erasable Programmable Read Only Memory) 등으로 구현될 수 있으며, 보안 칩(130)을 구동하는 OS(Operating System), 개인키, 공개키, 공인인증서 등을 저장한다. 참고로, 공인인증서는 보안 칩(130) 내부에서 생성되는 것이 바람직하나, 보안 칩(130) 외부에서 생성된 공인인증서를 보안 칩(130) 내부 메모리(135)로 복사하여 사용하는 것도 가능하다.
제어부(136)는 보안 칩(130)의 접촉식 통신 모듈(131), NFC 통신 모듈(132), 키쌍생성 모듈(133), 전자서명 모듈(134), 내부 메모리(135) 등을 전반적으로 제어하며, 개인키와 공개키 쌍 생성 및 저장, 공인인증서 발급 및 복사, 전자서명 생성 및 전송, 비밀번호 설정 및 변경, 보안 토큰 자동잠김, 보안 토큰 초기화 등 다양한 기능을 수행한다.
한편, 안테나(140)는 보안 칩(130)의 NFC 통신 모듈(132)과 연결되어 무선 단말(300)과의 NFC 통신에 사용되는 장치이다. 안테나(140)는 보안 토큰(100)의 기판에 고정되는 것이 바람직하지만, 보안 칩(130)이 SIM 타입으로 보안 토큰(100)에 삽입되는 형태일 경우에는 SIM에 삽입될 수도 있다.
이하에서는 도 3 내지 도 17을 참조하여 본 발명에 따른 보안 토큰이 PC 환경과 스마트 폰 환경에서 공용으로 사용되는 것에 대해 상세 설명한다.
먼저, 도 3은 종래기술에 따른 스마트카드 칩에서 개인키와 공개키 쌍을 생성하고 사용하는 과정을 나타낸 흐름도이다.
도 3을 참조하면, 종래기술의 경우, 단계 S310에서, 외부장치(예, 컴퓨터, 무선 단말)에서 스마트카드 칩으로 개인키와 공개키 쌍 생성 명령이 전송되면, 단계 S320에서, 스마트카드 칩은 개인키와 공개키 쌍을 생성한다. 그리고, 단계 S330에서, 스마트카드 칩은 외부장치에게 개인키와 공개키 쌍 생성 완료를 응답한다.
이와 같이, 종래기술에 따른 스마트카드 칩은 외부장치로부터 개인키와 공개키 쌍 생성이 요청되면 그 때부터 개인키와 공개키 쌍을 생성하였는데, 이 경우 배경기술에서도 언급한 바와 같이 개인키와 공개키 쌍 생성에 시간이 많이 소요되고, 특히 2048비트의 개인키와 공개키 쌍을 생성할 경우에는 평균 20~30초 길게는 60초 이상 걸릴 수도 있어 사용상 불편함이 있었다.
한편, 도 4는 본 발명의 일 실시예에 따른 보안 토큰(100)에서 개인키와 공개키 쌍을 생성하고 사용하는 과정을 나타낸 흐름도이다. 그리고, 도 5는 도 4의 단계 S420에 대한 세부 과정을 나타낸 흐름도이다.
도 4를 참조하면, 본 발명의 경우, 단계 S410에서, 외부장치(예, 컴퓨터, 무선 단말)에서 보안 토큰(100)으로 개인키와 공개키 쌍 생성 명령이 전송되면, 단계 S420에서, 보안 토큰(100)의 보안 칩(130)은 개인키와 공개키 쌍을 생성하거나 사전 생성된 개인키와 공개키 쌍을 읽어온다.
도 5를 참조하여 이를 상술하면, 컴퓨터(200)나 무선 단말(300)로부터 보안 토큰(100)으로 개인키와 공개키 쌍 생성이 요청되면, 단계 S422에서, 보안 칩(130)의 제어부(136)는 먼저 사전 생성된 개인키와 공개키 쌍이 내부 메모리(135)에 저장되어 있는가를 검색하고, 만약 내부 메모리(135)에 사전 생성된 개인키와 공개키 쌍이 없으면, 단계 S424에서, 보안 칩(130)의 제어부(136)는 키쌍생성 모듈(133)로 하여금 개인키와 공개키 쌍을 실시간으로 생성하도록 한다. 그러나, 만약 내부 메모리(135)에 사전 생성된 개인키와 공개키 쌍이 있으면, 단계 S426에서, 보안 칩(130)의 제어부(136)는 키쌍생성 모듈(133)로 하여금 개인키와 공개키 쌍을 생성하도록 하지 않고 내부 메모리(135)에 저장된 개인키와 공개키 쌍을 읽어온다.
그리고, 단계 S430에서, 보안 토큰(100)은 접촉식 통신이나 NFC 통신을 통해 컴퓨터(200)나 무선 단말(300)로 개인키와 공개키 쌍 생성 완료를 응답한다.
이와 관련하여, 이하에서는 도 6 내지 도 10을 참조하여 본 발명에 따른 보안 토큰(보안 칩)이 개인키와 공개키 쌍을 사전에 생성하는 방식에 대해 설명한다.
먼저, 도 6은 스마트카드 칩이 사용되는 일반적인 과정을 나타낸 흐름도이다.
도 6을 참조하면, 단계 S610에서, 외부장치(예, 컴퓨터, 무선 단말)가 스마트카드 칩으로 전원을 공급하면, 단계 S612에서, 스마트카드 칩은 초기화 작업을 수행한다. 초기화 작업을 완료한 후, 단계 S614에서, 스마트카드 칩은 ATR(Answer To Reset) 신호를 외부장치로 전송한다. 그 후 스마트카드 칩은 대기모드로 전환하여 외부장치가 APDU(Application Protocol Data Unit) 명령어를 입력할 때까지 기다린다.
단계 S620에서, 외부장치가 스마트카드 칩으로 APDU 명령어를 전송하면, 단계 S622에서, 스마트카드 칩은 대기모드에서 벗어나 명령어를 처리한다. 그리고, 단계 S624에서, 스마트카드 칩은 외부장치로 APDU 응답을 전송한다. 그 후 스마트카드 칩은 다시 대기모드로 전환하여 외부장치가 다음 APDU 명령어를 입력할 때까지 기다린다.
그리고, 단계 S630에서, 외부장치가 다시 스마트카드 칩으로 APDU 명령어를 전송하면, 단계 S632에서, 스마트카드 칩은 대기모드에서 벗어나 명령어를 처리한다. 그리고, 단계 S634에서, 스마트카드 칩은 외부장치로 APDU 응답을 전송한다. 그 후 스마트카드 칩은 다시 대기모드로 전환하여 외부장치가 다음 APDU 명령어를 입력할 때까지 기다리며, 이러한 과정을 반복하면서 동작하게 된다.
한편, 본 발명의 일 실시예에 따른 보안 토큰의 보안 칩은 외부장치(예, 컴퓨터, 무선 단말)로부터 명령어가 입력될 때까지 대기하는 동안 개인키와 공개키 쌍을 미리 생성하여 저장해 두는데, 이하에서는 도 7을 참조하여 이를 상술한다.
도 7은 본 발명의 일 실시예에 따른 보안 토큰이 대기모드에서 개인키와 공개키 쌍을 생성하는 과정을 나타낸 흐름도이다.
도 7을 참조하면, 단계 S710에서, 외부장치가 보안 토큰으로 전원을 공급하면, 단계 S712에서, 보안 토큰의 보안 칩은 초기화 작업을 수행한다. 초기화 작업을 완료한 후, 단계 S714에서, 보안 토큰의 보안 칩은 ATR(Answer To Reset) 신호를 외부장치로 전송한다. 그 후, 단계 S716에서, 보안 토큰의 보안 칩은 다음 명령어 수신을 위해 대기하는 동안 개인키와 공개키 쌍을 사전 생성하여 저장한다.
단계 S720에서, 외부장치가 보안 토큰으로 APDU 명령어를 전송하면, 단계 S722에서, 보안 토큰의 보안 칩은 명령어를 처리한다. 그리고, 단계 S724에서, 보안 토큰의 보안 칩은 외부장치로 APDU 응답을 전송한다. 그 후, 단계 S726에서, 보안 토큰의 보안 칩은 다음 명령어 수신을 위해 대기하는 동안 개인키와 공개키 쌍을 사전 생성하여 저장한다.
그리고, 단계 S730에서, 외부장치가 다시 보안 토큰으로 APDU 명령어를 전송하면, 단계 S732에서, 보안 토큰의 보안 칩은 명령어를 처리한다. 그리고, 단계 S734에서, 보안 토큰의 보안 칩은 외부장치로 APDU 응답을 전송한다. 그 후, 단계 S736에서, 보안 토큰의 보안 칩은 다음 명령어 수신을 위해 대기하는 동안 개인키와 공개키 쌍을 사전 생성하여 저장하고, 이러한 과정을 반복하면서 동작하게 된다.
참고로, 외부장치는 자신이 보안 토큰으로 전송한 APDU 명령어에 대해서 보안 토큰이 일정시간(보통 1초) 안에 응답하지 않으면 보안 토큰에 오류가 발생하였다고 인식하므로, 보안 토큰의 보안 칩은 개인키와 공개키 쌍 사전 생성 중에도 외부장치로부터 입력되는 APDU 명령어를 처리할 수 있어야 한다.
따라서, 도 7에서 보안 토큰의 보안 칩이 개인키와 공개키 쌍을 사전 생성하는 동안(단계 S716, S726, S736) 외부장치로부터 APDU 명령어가 입력되면, 보안 토큰의 보안 칩은 지금까지의 개인키와 공개키 쌍 사전 생성 과정을 내부 메모리에 잠시 저장하고, 입력된 명령어를 우선 처리하여 결과를 응답한다. 그 후 보안 토큰의 보안 칩은 내부 메모리에 임시 저장해 둔 개인키와 공개키 쌍의 사전 생성 과정을 다시 계속한다. 만약, 보안 토큰의 보안 칩이 개인키와 공개키 쌍 사전 생성 과정을 내부 메모리에 잠시 저장하기가 어렵다면, 보안 토큰의 보안 칩은 개인키와 공개키 쌍 사전 생성 과정을 취소하고, 입력된 명령어를 우선 처리하여 결과를 응답한 후, 개인키와 공개키 쌍 사전 생성 과정을 처음부터 다시 시작한다.
한편, 도 7의 대기모드에서 개인키와 공개키 쌍을 사전 생성하는 과정은 보안 토큰(보안 칩)에 전력이 지속적으로 공급되어야 하는 제약성이 있다. 즉, 보안 토큰이 접촉식 통신(예, USB 통신)을 이용하여 계속 전원이 공급되거나 또는 비접촉식 통신(예, NFC 통신)을 이용하더라도 외부의 전자기파로부터 유도된 전력을 계속 공급받을 수 있는 경우에만 구현될 수 있다.
보안 토큰이 USB 통신을 통해 컴퓨터에 연결되어 사용되는 경우는 외부전원도 충분하고, 개인키와 공개키 쌍 사전 생성을 위한 대기모드 시간도 충분한 편이다. 하지만, 보안 토큰이 NFC 통신을 통해 무선 단말에 연결되어 사용되는 경우에는 NFC 통신을 수행할 때에만 무선 단말이 전자기파를 발생시키기 때문에 전원이 충분하지 못하고, 따라서 현재의 보안 토큰으로는 대기모드 동안 1024비트의 개인키와 공개키 쌍 생성도 불가능한 실정이다.
이러한 제약성을 해결하기 위하여, 본 발명에서는 무선 단말과 NFC 통신을 통해 연결되는 경우 보안 토큰의 보안 칩이 명령어를 처리하면서 개인키와 공개키 쌍을 생성하는 방식을 제안한다.
이와 관련하여, 도 8은 본 발명의 일 실시예에 따른 보안 토큰이 명령어를 처리하면서 개인키와 공개키 쌍을 생성하는 과정을 나타낸 흐름도이다.
도 8을 참조하면, 단계 S810에서, NFC 통신을 통해 무선 단말이 보안 토큰으로 전원을 공급하면, 단계 S812에서, 보안 토큰의 보안 칩은 초기화 작업을 수행한다. 초기화 작업을 완료한 후, 단계 S814에서, 보안 토큰의 보안 칩은 ATR(Answer To Reset) 신호를 NFC 통신을 통해 무선 단말로 전송한다. 그 후 보안 토큰의 보안 칩은 대기모드로 전환하여 무선 단말이 APDU(Application Protocol Data Unit) 명령어를 전송할 때까지 기다린다.
단계 S820에서, 무선 단말이 보안 토큰으로 APDU 명령어를 전송하면, 단계 S822에서, 보안 토큰의 보안 칩은 명령어를 처리한다. 이 경우, 보안 토큰의 보안 칩은 명령어를 처리하면서 키쌍생성 모듈을 통해 개인키와 공개키 쌍 사전 생성을 함께 수행한다. 그리고, 단계 S824에서, 보안 토큰의 보안 칩은 무선 단말로 APDU 응답을 전송한다. 그 후 보안 토큰의 보안 칩은 다시 대기모드로 전환하여 무선 단말이 다음 APDU 명령어를 전송할 때까지 기다린다.
그리고, 단계 S830에서, 무선 단말이 다시 보안 토큰으로 APDU 명령어를 전송하면, 단계 S832에서, 보안 토큰의 보안 칩은 명령어를 처리하면서 마찬가지로 키쌍생성 모듈을 통해 개인키와 공개키 쌍 사전 생성을 함께 수행한다. 그리고, 단계 S834에서, 보안 토큰의 보안 칩은 무선 단말로 APDU 응답을 전송한다. 그 후 보안 토큰의 보안 칩은 다시 대기모드로 전환하여 무선 단말이 다음 APDU 명령어를 전송할 때까지 기다리며, 이러한 과정을 반복하면서 동작하게 된다.
한편, 전술한 도 8의 명령어 처리와 개인키와 공개키 쌍 생성을 함께 수행하는 과정은 한 번의 명령어 처리 동안 개인키와 공개키 쌍 생성을 함께 수행할 수 있을 정도로 보안 토큰(보안 칩)에 전력이 지속적으로 공급되어야 하는 제약성이 또한 존재한다.
도 9에 도시된 바와 같이, 일반적인 스마트카드 칩이 NFC 통신을 통해 무선 단말에 연결되어 사용되는 경우 무선 단말에서 방출하는 전자기파로부터 생산하는 전력보다 스마트카드 칩 내부 연산에 소비되는 전력이 더 많아서 스마트카드 칩이 명령어를 처리하는 동안 전력이 점차 줄어들게 되고, 결국 스마트카드 칩을 구동할 수 있는 최소 한계값 이하로 떨어져 리셋(reset)될 수 있다.
그러므로, 한 번의 명령어 처리 동안 개인키와 공개키 쌍 생성을 완료할 수 없는 경우에도 보안 칩(구체적으로는 키쌍생성 모듈)이 최대한 효율적으로 개인키와 공개키 쌍을 생성할 수 있는 대안적인 방안이 필요한데, 이하에서는 이에 대해 상술한다.
본 발명의 바람직한 실시예에 따르면, 보안 토큰의 보안 칩은 개인키와 공개키 쌍 생성 과정을 2 이상의 하위 과정으로 나눈 후 명령어 처리시마다 하나 이상의 하위 과정을 함께 수행하고, 이러한 과정을 반복하여 모든 하위 과정을 완료함으로써 개인키와 공개키 쌍을 사전에 생성한다. 즉, 본 발명에 따른 스마트카드 칩은 하나의 명령어를 처리하는 동안(예, 단계 S822) 하나 이상의 하위 과정을 수행하고, 만약 모든 하위 과정을 수행하지 못한 경우에는 현재까지의 작업 내용을 내부 메모리에 저장하여 임시 중단한다. 그리고, 다음 명령어를 처리하는 동안(예, 단계 S832) 나머지 하위 과정을 수행하는 방식으로 개인키와 공개키 쌍 생성 과정을 완료한다.
이와 관련하여, 이하에서는 본 발명의 바람직한 실시예에 따른 개인키와 공개키 쌍 생성의 하위 과정에 대해 설명한다.
공인인증서에서 사용되는 개인키와 공개키 쌍은 RSA(Rivest Shamir Adleman) 알고리즘의 개인키 D와 공개키 (N, E)이다. 그리고, 아래는 개인키 D와 공개키 (N, E)를 생성하는 알고리즘이다.
[RSA 개인키 D와 공개키 (N, E) 생성 알고리즘]
1) 같은 크기의 서로 다른 큰 소수 P와 Q를 생성한다.
2) N = P × Q, phi = (P - 1) × (Q - 1)을 계산한다.
3) 1 < E < phi, GCD(E, phi) = 1을 만족하는 E를 선택한다. (GCD: 최대공약수)
4) 확장 유클리드(Extended Euclidean) 알고리즘을 사용하여, 1 < D < phi, E × D ≡ 1 (mod phi)를 만족하는 D를 계산한다.
5) 개인키는 D이고, 공개키는 (N, E)를 출력한다.
상기 RSA 알고리즘에서 연산 시간의 대부분을 차지하는 것은 1단계의 큰 소수 P와 Q를 생성하는 것이다. 큰 소수를 생성하는 방법은 여러 가지가 있는데, 본 발명의 일 실시예에서는 임의의 수를 선택한 후 밀러-라빈(Miller-Rabin) 테스트를 통해서 소수인지 합성수인지를 판단하는 방식을 사용한다.
[큰 소수를 생성하는 알고리즘]
1) 임의의 큰 수 Z를 생성한다.
2) 밀러-라빈(Miller-Rabin) 테스트를 실행하여 소수인지 합성수인지 판단한다.
3) Z가 합성수이면, 1단계부터 다시 시작한다.
4) Z가 소수이면, Z를 출력한다.
[큰 수 Z에 대한 밀러-라빈(Miller-Rabin) 테스트]
1) Z - 1 = 2S × R, R은 홀수가 되는 S와 R을 계산한다.
2) i가 1부터 t가 될 때가지 아래를 실행한다. 여기서 t는 보안 파라미터(security parameter)로 Z가 1024비트의 수인 경우 보통 5를 사용한다.
2.1) 1 < A < Z - 1을 만족하는 임의의 수 A를 선택한다.
2.2) Y = AR mod Z를 계산한다.
2.3) Y가 1도 아니고, Z - 1도 아니면 아래를 실행한다.
2.3.1) j = 1.
2.3.2) j가 S보다 작고, Y가 Z - 1이 아니면 아래를 반복 실행한다.
2.3.2.1) Y = Y2 mod Z를 계산한다.
2.3.2.2) Y가 1이면 합성수라고 출력하고 알고리즘을 종료한다.
2.3.2.3) j = j + 1.
2.3.3) Y가 Z - 1이 아니면 합성수라고 출력하고 알고리즘을 종료한다.
3) 소수라고 출력하고 알고리즘을 종료한다.
상기 밀러-라빈(Miller-Rabin) 테스트에서 연산 시간의 대부분을 차지하는 것은 2.2단계 Y = AR mod Z를 계산하는 부분과 2.3.2.1단계 Y = Y2 mod Z를 계산하는 부분 같은 모듈러멱승 연산이다.
결국, 공인인증서에서 사용되는 개인키와 공개키 쌍 생성에 있어서 연산 시간의 대부분을 차지하는 것은 모듈러멱승 연산인 것이다.
그러므로, 본 발명의 바람직한 일 실시예에서는 모듈러멱승 연산을 기준으로 개인키와 공개키 쌍 생성의 하위 과정을 나누어 연산 시간을 고르게 분포시킨다. 예컨대, 개인키와 공개키 쌍 생성 알고리즘의 제1 하위 과정은 첫번째 모듈러멱승 연산까지, 제2 하위 과정은 두번째 모듈러멱승 연산까지, 제N-1 하위 과정은 마지막 모듈러멱승 연산까지, 제N 하위 과정은 개인키와 공개키 쌍 생성 알고리즘의 나머지 연산으로 나누어, 하위 과정들의 연산 시간을 유사하게 분배한다.
그리고, 본 발명의 바람직한 다른 실시예에서는, 개인키와 공개키 쌍 생성 알고리즘의 제1 하위 과정은 제1 소수(P)를 생성하는 연산까지, 제2 하위 과정은 제2 소수(Q)를 생성하는 연산까지, 제3 하위 과정은 개인키와 공개키 쌍 생성 알고리즘의 나머지 연산으로 나누어 구현할 수도 있다.
한편, 도 10은 본 발명의 일 실시예에 따른 보안 토큰(보안 칩)이 NFC 통신을 통해 무선 단말과 연결되어 사용되는 경우 개인키와 공개키 쌍 생성 하위 과정들을 수행하는 동안 보안 칩의 연산 시간에 따른 전력 변화를 나타낸 그래프이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 보안 칩은 개인키와 공개키 쌍 생성 연산을 위한 제1 하위 과정을 수행한 후 다음 동작에 필요한 전력을 충전한다. 그리고, 개인키와 공개키 쌍 생성 연산을 위한 제2 하위 과정을 수행한 후 마찬가지로 다음 동작에 필요한 전력을 충전하고, 이러한 방식을 반복하여 개인키와 공개키 쌍 생성을 완료한다.
이하에서는 도 11 내지 도 17을 참조하여 본 발명에 따른 보안 토큰(보안 칩)이 공인인증을 수행하는 방식에 대해 설명한다.
도 11은 본 발명의 일 실시예에 따른 보안 토큰이 PC 환경에서 공인인증을 수행하는 방식을 설명하는 개요도이다. 그리고, 도 12는 본 발명의 일 실시예에 따른 보안 토큰이 PC 환경에서 공인인증을 수행하는 방법의 흐름도이다.
전술한 바와 같이, 컴퓨터(200)는 PC(Personal Computer), 노트북 등과 같이 USB 포트(220)를 구비하여 USB 통신이 가능하며 유무선 인터넷을 통해 인증 서버(400)와 통신할 수 있는 모든 종류의 컴퓨터가 해당될 수 있다. 컴퓨터(200)에는 응용 소프트웨어(210)가 설치되어 사용자에게 다양한 서비스를 제공하며, 공인인증이 필요한 경우 보안 토큰(100)으로부터 전송된 전자서명을 인증 서버(400)로 전송하고, 금융, 발급, 게임, 교육 등의 서비스를 제공한다.
도 11 및 도 12를 참조하여 이를 상술하면, 컴퓨터의 응용 프로그램 실행 중 공인인증이 필요한 경우, 컴퓨터(200)의 응용 소프트웨어(210)는 USB 포트(220)에서 보안 토큰(100)을 찾는다(단계 S1200 참조).
컴퓨터(200)의 응용 소프트웨어(210)가 보안 토큰(100) 찾기에 성공하면, 컴퓨터(200)의 응용 소프트웨어(210)와 보안 칩(130)이 유선채널을 연결한다. 이때, 컴퓨터(200)의 응용소프트웨어(210)는 USB 통신으로 내부 통신 제어부(120)와 채널을 연결하고, 내부 통신 제어부(120)는 예컨대 ISO7816 통신으로 보안 칩(130)과 채널을 연결한다(단계 S1201 참조).
컴퓨터(200)의 응용 소프트웨어(210)가 연결된 유선채널을 통하여 보안 칩(130)에게 전자서명에 사용할 키정보를 전송하며 전자서명을 요청하면(단계 S1202 참조), 보안 칩(130)은 키정보에 해당하는 내부 메모리(135)에 저장된 공인인증서의 개인키를 읽어와 전자서명 모듈(134)에서 개인키로 전자서명을 생성한다(단계 S1203 참조).
보안 칩(130)이 연결된 유선채널을 통하여 전자서명을 컴퓨터(200)의 응용 소프트웨어(210)로 전송하면(단계 S1204 참조), 컴퓨터(200)의 응용 소프트웨어(210)는 전송된 전자서명을 유무선 인터넷을 통해 인증 서버(400)로 전송한다(단계 S1205 참조).
그러면, 인증 서버(400)는 전송된 전자서명을 검증하여(단계 S1206 참조), 검증 결과를 다시 유무선 인터넷을 통해 컴퓨터(200)의 응용 소프트웨어(210)로 전송한다(단계 S1207 참조).
만약, 검증이 성공하였으면(단계 S1208 참조), 컴퓨터(200)의 응용 소프트웨어(210)는 금융, 발급, 게임, 교육 등의 서비스를 제공하고(단계 S1209 참조), 공인인증 과정은 종료된다.
한편, 단계 S1200에서 컴퓨터(200)의 응용 소프트웨어(210)가 보안 토큰(100) 찾기에 실패하면, 컴퓨터(200)의 응용 소프트웨어(210)의 계속 찾기 조건을 검사한다(단계 S1250 참조). 여기서, 계속 찾기 조건은 설정한 시간 또는 횟수, 무한반복 등을 사용할 수 있다. 그리고, 응용 소프트웨어(210)의 계속 찾기 조건을 만족하면, 다시 단계 S1200으로 돌아가 그 이후의 단계를 진행한다.
그러나, 단계 S1250에서 응용 소프트웨어(210)의 계속 찾기 조건을 만족하지 않으면, 컴퓨터(200)의 응용 소프트웨어(210)는 찾기 실패 메시지를 출력하고(단계 S1251 참조), 인증과정을 종료한다.
한편, 만약 단계 S1208에서 검증이 실패하였으면, 컴퓨터(200)의 응용 소프트웨어(210)는 검증 실패 메시지를 출력하고(단계 S1260 참조), 인증과정을 종료한다.
도 13은 본 발명의 일 실시예에 따른 보안 토큰이 스마트 폰 환경에서 공인인증을 수행하는 방식을 설명하는 개요도이다. 그리고, 도 14는 본 발명의 일 실시예에 따른 보안 토큰이 스마트 폰 환경에서 공인인증을 수행하는 방법의 흐름도이다.
전술한 바와 같이, 무선 단말(300)은 스마트 폰, 테블릿 PC 등과 같이 NFC 통신이 가능하며 무선 인터넷을 통해 인증 서버(400)와 통신할 수 있는 모든 종류의 단말이 해당될 수 있다. 무선 단말(300)은 무선 인터넷 모듈(310), NFC 통신 모듈(330)을 포함하여 구성되며, 스마트 폰 애플리케이션(320)이 설치된다. 무선 인터넷 모듈(310)은 3G, 4G, 와이파이(WiFi), 블루투스(BT) 장치 등으로 구현될 수 있으며, 이 장치들 중에서 적어도 하나를 사용하여 무선으로 인터넷 망에 접속하는 무선통신 모듈이다. 그리고, NFC 통신 모듈(330)은 바람직하게는 10cm이내의 가까운 거리(보통은 3~4cm)에서 무선통신이 가능한 NFC 통신을 사용한다. NFC 통신은 카드 에뮬레이션 모드, 리더 모드, P2P 모드 등으로 동작할 수 있는데, 본 발명에서는 ISO14443 규격의 리더 모드로 사용하는 것이 바람직하다. 한편, 스마트 폰 애플리케이션(320)은 무선 단말(300)에 설치되어 사용자에게 다양한 서비스를 제공하며, 공인인증이 필요한 경우 보안 토큰(100)으로부터 전송된 전자서명을 인증 서버(400)로 전송하고, 금융, 발급, 게임, 교육 등의 서비스를 제공한다.
도 13 및 도 14를 참조하여 이를 상술하면, 무선 단말(300)의 애플리케이션 실행 중 공인인증이 필요한 경우, 무선 단말(300)의 애플리케이션(320)은 NFC 통신을 이용하여 보안 토큰(100)을 찾는다(단계 S1300 참조).
무선 단말(300)의 애플리케이션(320)이 보안 토큰(100) 찾기에 성공하면, 무선 단말(300)의 애플리케이션(320)과 보안 칩(130)이 근거리 무선채널을 연결한다. 이때, 무선 단말(300)의 NFC 통신 모듈(330)은 예컨대 ISO14443 통신으로 보안 칩(130)과 채널을 연결한다(단계 S1301 참조).
무선 단말(300)의 애플리케이션(320)이 연결된 근거리 무선채널을 통하여 보안 칩(130)에게 전자서명에 사용할 키정보를 전송하며 전자서명을 요청하면(단계 S1302 참조), 보안 칩(130)은 키정보에 해당하는 내부 메모리(135)에 저장된 공인인증서의 개인키를 읽어와 전자서명 모듈(134)에서 개인키로 전자서명을 생성한다(단계 S1303 참조).
보안 칩(130)이 연결된 근거리 무선채널을 통하여 전자서명을 무선 단말(300)의 애플리케이션(320)으로 전송하면(단계 S1304 참조), 무선 단말(300)의 애플리케이션(320)은 전송된 전자서명을 무선 인터넷을 통해 인증 서버(400)로 전송한다(단계 S1305 참조).
그러면, 인증 서버(400)는 전송된 전자서명을 검증하여(단계 S1306 참조), 검증 결과를 다시 무선 인터넷을 통해 무선 단말(300)의 애플리케이션(320)으로 전송한다(단계 S1307 참조).
만약, 검증이 성공하였으면(단계 S1308 참조), 무선 단말(300)의 애플리케이션(320)은 금융, 발급, 게임, 교육 등의 서비스를 제공하고(단계 S1309 참조), 공인인증 과정은 종료된다.
한편, 단계 S1300에서 무선 단말(300)의 애플리케이션(320)이 보안 토큰(100) 찾기에 실패하면, 무선 단말(300)의 애플리케이션(320)의 계속 찾기 조건을 검사한다(단계 S1350 참조). 여기서, 계속 찾기 조건은 설정한 시간 또는 횟수, 무한반복 등을 사용할 수 있다. 그리고, 애플리케이션(320)의 계속 찾기 조건을 만족하면, 다시 단계 S1300으로 돌아가 그 이후의 단계를 진행한다.
그러나, 단계 S1350에서 애플리케이션(320)의 계속 찾기 조건을 만족하지 않으면, 무선 단말(300)의 애플리케이션(320)은 찾기 실패 메시지를 출력하고(단계 S1351 참조), 인증과정을 종료한다.
한편, 만약 단계 S1308에서 검증이 실패하였으면, 무선 단말(300)의 애플리케이션(320)은 검증 실패 메시지를 출력하고(단계 S1360 참조), 인증과정을 종료한다.
이하에서는 상기 단계 S1302, S1303 및 S1304과 관련하여 본 발명에 따른 보안 칩(130)이 전자서명을 생성하는 과정에 대해 상세 설명한다.
먼저, 도 15는 본 발명에 따른 보안 칩이 전자서명을 생성하는 일 실시예의 흐름도이다. 참고로, 도 15의 실시예는 보안 칩(130)이 한 번의 전력 충전(즉, 한 번의 명령어 실행)으로 전자서명을 수행하는 경우를 예시한 것이다.
도 15를 참조하면, 무선 단말(300)은 "COMPUTE DIGITAL SIGNATURE 명령어"로 전자서명에 사용할 키정보와 서명될 데이터를 보안 칩(130)으로 전송한다(단계 S1302a 참조).
그러면, 보안 칩(130)은 키정보에 해당하는 공인인증서의 개인키를 선택하고(단계 S1303a 참조), 선택된 개인키로 전자서명 연산을 위한 초기화 작업을 수행한 후(단계 S1303b 참조), 서명될 데이터에 대해서 전자서명 연산을 수행하여 전자서명 값을 생성한다(단계 S1303c 참조).
그리고, 보안 칩(130)은 "COMPUTE DIGITAL SIGNATURE 응답"으로 전자서명 값과 상태정보를 무선 단말(300)에 전송한다(단계 S1304a 참조).
한편, 전술한 바와 같이, NFC 통신은 무선 단말(300)에서 방출하는 전자기파로부터 보안 토큰(100)이 직접 전력을 생산하여 통신하는 방식이므로 배터리가 필요없고 연결 거리도 짧아 보안성이 뛰어나지만, 보안 토큰(100)이 전자서명을 수행할 만큼의 전력을 생산하기가 쉽지 않은 문제점이 있다.
그러므로, 무선 단말(300)에서 방출하는 전자기파의 출력이 약한 경우에도 보안 칩(130)이 최소한의 전력을 이용해 전자서명을 수행할 수 있는 대안적인 방안이 필요한데, 이하에서는 도 16 및 도 17을 참조하여 이를 설명한다.
도 16은 본 발명에 따른 보안 칩이 전자서명을 생성하는 다른 실시예의 흐름도이다. 참고로, 도 16의 실시예는, 한 번의 전자서명 명령어를 2개 이상의 전자서명 명령어로 분리하여 전력 사용을 분산시킨 것으로, 보안 칩(130)이 2 이상의 전력 충전(즉, 2 이상의 명령어 실행)으로 전자서명을 수행하는 경우를 예시한 것이다.
도 16을 참조하면, 먼저 무선 단말(300)은 "INITIALIZE CRYPTO 명령어"로 전자서명에 사용할 키정보를 보안 칩(130)으로 전송한다(단계 S1302b 참조). 참고로, 이는 무선 단말(300)이 보안 칩(130)에게 전자서명 생성의 준비를 요청하는 과정이다.
그러면, 보안 칩(130)은 키정보에 해당하는 공인인증서의 개인키를 선택하고(단계 S1303a 참조), 선택된 개인키로 전자서명 연산을 위한 초기화 작업을 수행한다(단계 S1303b 참조). 그리고, 보안 칩(130)은 "INITALIZE CRYPTO 응답"으로 상태정보를 무선 단말(300)에 전송한다(단계 S1304b 참조).
이 후, 무선 단말(300)은 "PERFORM CRYPTO 명령어"로 서명될 데이터를 보안 칩(130)으로 전송한다(단계 S1302c 참조). 참고로, 이는 무선 단말(300)이 보안 칩(130)에게 전자서명 생성의 실행을 요청하는 과정이다.
그러면, 보안 칩(130)은 서명될 데이터에 대해서 전자서명 연산을 수행하여 전자서명 값을 생성하고(단계 S1303c 참조), "PERFORM CRYPTO 응답"으로 전자서명 값과 상태정보를 무선 단말(300)에 전송한다(단계 S1304c 참조).
도 17을 참조하면, "INITIALIZE CRYPTO 명령어"와 "PERFORM CRYPTO 명령어"로 전자서명을 수행하는 과정은, 보안 칩(130)의 전력이 최소 한계값 이하로 떨어지기 전에 "INITIALIZE CRYPTO 명령어"를 수행하는 과정이 완료되고, 무선 단말(300)이 "INITIALIZE CRYPTO 응답"을 처리하고 "PERFORM CRYPTO 명령어"를 준비하는 동안 보안 칩(130)은 다시 충전되며, 마찬가지로 보안 칩(130)의 전력이 최소 한계값 이하로 떨어지기 전에 "PERFORM CRYPTO 명령어"를 수행하는 과정이 완료되어, 전자서명 과정을 정상적으로 수행할 수 있다.
다시 도 2를 참조하면, 본 발명의 바람직한 실시예에 따르면, 본 발명의 보안 토큰(100)은 전술한 공인인증 기능 외에도, 비밀번호 설정 및 변경 기능, 공인인증서 복사 및 백업 기능, 보안 토큰 자동잠김 기능, 보안 토큰 초기화 기능 등을 수행할 수 있다.
구체적으로, 보안 칩(130)의 제어부(136)는 예컨대 USB 통신을 통해 사용자로부터 비밀번호를 입력받아 내부 메모리(135)에 저장하고, 공인인증 요청 시 비밀번호 입력을 요구하여 정당한 사용자임을 확인할 수 있다. 또한, 사용자로부터 비밀번호 변경이 있는 경우에는 이전의 비밀번호를 확인한 후 변경된 비밀번호를 내부 메모리(135)에 저장하여 비밀번호 변경 기능을 수행한다. 한편, 보안 칩(130)의 제어부(136)는 사용자로부터 입력된 비밀번호가 소정 회수(예, 5회) 이상 오류난 경우 자동으로 보안 토큰을 비활성화시켜 자동잠금 기능을 수행할 수 있다. 그리고, 보안 칩(130)의 제어부(136)는 사용자로부터 입력된 초기화 명령에 의해 보안 토큰을 초기화함으로써 초기화 기능을 수행할 수도 있다.
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 필수적 특징들을 변경하지 않고서 다른 구체적인 다양한 형태로 실시할 수 있는 것이므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.
그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (16)

  1. 공인인증을 위한 보안 토큰에 있어서,
    공인인증서를 위한 개인키와 공개키 쌍을 생성하는 키쌍생성 모듈; 상기 공인인증서에 기초하여 전자서명을 생성하는 전자서명 모듈; 상기 공인인증서, 개인키, 공개키를 저장하는 내부 메모리; 무선 단말과 NFC(Near Field Communication) 통신을 수행하는 NFC 통신 모듈; 및 상기 키쌍생성 모듈, 전자서명 모듈, 내부 메모리, NFC 통신 모듈을 제어하는 제어부를 포함하는 보안 칩을 구비하고,
    상기 보안 칩은 상기 무선 단말로부터 명령어를 수신하면, 상기 명령어를 처리하는 동안 상기 키쌍생성 모듈을 통해 상기 개인키와 공개키 쌍을 사전 생성하는 것을 특징으로 하는 보안 토큰.
  2. 공인인증을 위한 보안 토큰에 있어서,
    공인인증서를 위한 개인키와 공개키 쌍을 생성하는 키쌍생성 모듈; 상기 공인인증서에 기초하여 전자서명을 생성하는 전자서명 모듈; 상기 공인인증서, 개인키, 공개키를 저장하는 내부 메모리; 무선 단말과 NFC(Near Field Communication) 통신을 수행하는 NFC 통신 모듈; 및 상기 키쌍생성 모듈, 전자서명 모듈, 내부 메모리, NFC 통신 모듈을 제어하는 제어부를 포함하는 보안 칩을 구비하고,
    상기 보안 칩은 상기 무선 단말로부터 명령어를 수신하면, 상기 명령어를 처리한 후 대기모드 동안 상기 키쌍생성 모듈을 통해 상기 개인키와 공개키 쌍을 사전 생성하는 것을 특징으로 하는 보안 토큰.
  3. 제1항 또는 제2항에 있어서,
    상기 보안 칩은 상기 무선 단말로부터 개인키와 공개키 쌍 생성 명령을 수신하면, 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 저장되어 있는지 확인하고, 만약 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 저장되어 있으면 상기 사전 생성된 개인키와 공개키 쌍을 읽어오는 것을 특징으로 하는 보안 토큰.
  4. 제3항에 있어서,
    상기 보안 칩은 만약 상기 내부 메모리에 사전 생성된 개인키와 공개키 쌍이 저장되어 있지 않으면, 상기 키쌍생성 모듈을 통해 개인키와 공개키 쌍을 실시간으로 생성하는 것을 특징으로 하는 보안 토큰.
  5. 삭제
  6. 제1항 또는 제2항에 있어서,
    상기 보안 칩은 상기 개인키와 공개키 쌍 생성 과정을 2 이상의 하위 과정으로 나누어 수행하는 것을 특징으로 하는 보안 토큰.
  7. 제6항에 있어서,
    상기 보안 칩은 모듈러멱승 연산을 기준으로 상기 개인키와 공개키 쌍 생성의 하위 과정을 나누는 것을 특징으로 하는 보안 토큰.
  8. 제6항에 있어서,
    상기 보안 칩은 소수 생성 연산을 기준으로 상기 개인키와 공개키 쌍 생성의 하위 과정을 나누는 것을 특징으로 하는 보안 토큰.
  9. 제6항에 있어서,
    상기 보안 칩은 상기 개인키와 공개키 쌍 생성의 각각의 하위 과정을 수행하는 사이에 충전 시간을 할당하는 것을 특징으로 하는 보안 토큰.
  10. 제1항 또는 제2항에 있어서,
    상기 보안 칩은
    상기 무선 단말로부터 전자서명의 생성의 준비를 요청받으면, 상기 무선 단말로부터 방출된 전자기파를 통해 충전된 전력을 이용하여, 상기 무선 단말로부터 수신된 키정보에 해당하는 공인인증서의 개인키를 선택하여 상기 선택된 개인키로 전자서명 연산을 초기화한 후 상기 무선 단말로 상태정보를 전송하고,
    상기 무선 단말로부터 전자서명의 생성의 실행을 요청받으면, 상기 무선 단말로부터 방출된 전자기파를 통해 재충전된 전력을 이용하여, 상기 무선 단말로부터 수신된 서명될 데이터에 대해서 전자서명 연산을 수행하고 전자서명 값을 상기 무선 단말로 전송하는 것을 특징으로 하는 보안 토큰.
  11. 제1항 또는 제2항에 있어서,
    상기 보안 칩은 사용자로부터 입력된 비밀번호가 소정 회수 이상 오류난 경우 보안 토큰을 비활성화시키는 것을 특징으로 하는 보안 토큰.
  12. 제1항 또는 제2항에 있어서,
    상기 보안 칩은 사용자로부터 입력된 초기화 명령에 의해 보안 토큰을 초기화하는 것을 특징으로 하는 보안 토큰.
  13. 제1항 또는 제2항에 있어서,
    상기 보안 토큰은
    외부 컴퓨터의 USB 포트와 연결되는 USB 연결부; 및
    상기 USB 연결부와 연결되어 상기 컴퓨터와의 USB 통신을 제어하며, 상기 보안 칩의 일부로 구성되거나 또는 상기 보안 칩과 연결되어 상기 보안 칩과의 유선통신을 제어하는 내부 통신 제어부를 더 포함하는 것을 특징으로 하는 보안 토큰.
  14. 삭제
  15. 삭제
  16. 삭제
KR1020140056106A 2014-05-12 2014-05-12 공인인증을 위한 보안 토큰 및 그 구동 방법 KR101604009B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140056106A KR101604009B1 (ko) 2014-05-12 2014-05-12 공인인증을 위한 보안 토큰 및 그 구동 방법
CN201580024504.XA CN106462900A (zh) 2014-05-12 2015-05-08 用于公认认证的硬件安全模块及其驱动方法
US15/310,745 US10063381B2 (en) 2014-05-12 2015-05-08 Security token for certificate authentication and driving method therefor
PCT/KR2015/004649 WO2015174696A1 (ko) 2014-05-12 2015-05-08 공인인증을 위한 보안 토큰 및 그 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140056106A KR101604009B1 (ko) 2014-05-12 2014-05-12 공인인증을 위한 보안 토큰 및 그 구동 방법

Publications (2)

Publication Number Publication Date
KR20150129869A KR20150129869A (ko) 2015-11-23
KR101604009B1 true KR101604009B1 (ko) 2016-03-17

Family

ID=54480187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140056106A KR101604009B1 (ko) 2014-05-12 2014-05-12 공인인증을 위한 보안 토큰 및 그 구동 방법

Country Status (4)

Country Link
US (1) US10063381B2 (ko)
KR (1) KR101604009B1 (ko)
CN (1) CN106462900A (ko)
WO (1) WO2015174696A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10321317B1 (en) * 2015-06-04 2019-06-11 American Megatrends, Inc. NFC-enhanced firmware security
KR102444239B1 (ko) * 2016-01-21 2022-09-16 삼성전자주식회사 보안 칩, 어플리케이션 프로세서, 보안 칩을 포함하는 디바이스 및 그 동작방법
KR101683481B1 (ko) * 2016-03-22 2016-12-08 주식회사 티모넷 모바일 환경에서 nfc 보안토큰 공인인증서 발급 시스템 및 그 방법
KR102531858B1 (ko) * 2016-03-24 2023-05-11 에스케이하이닉스 주식회사 전력 관리를 수행하는 반도체 장치 및 그 동작 방법
CN106934259B (zh) * 2017-02-28 2020-07-10 北京深思数盾科技股份有限公司 生产信息安全装置的方法、生产设备以及系统
CN108734020A (zh) * 2017-04-20 2018-11-02 深圳兆日科技股份有限公司 密码验证方法和装置
CN108964883B (zh) * 2017-05-27 2021-05-07 北京安软天地科技有限公司 一种以智能手机为介质的数字证书存储与签名方法
KR102049527B1 (ko) 2017-07-20 2019-11-27 중부대학교 산학협력단 사용자 인증 서버 및 시스템
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules
US10867055B2 (en) 2017-12-28 2020-12-15 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US10043122B1 (en) 2018-01-19 2018-08-07 Capital One Services, Llc Configuring a set of applets on a battery-less transaction card
US11509636B2 (en) * 2018-01-30 2022-11-22 Corlina, Inc. User and device onboarding
CN110890957B (zh) * 2018-09-07 2023-06-23 深圳市文鼎创数据科技有限公司 一种密钥安全设备交互方法、电子设备和存储介质
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
CN110401950A (zh) * 2019-07-24 2019-11-01 Oppo广东移动通信有限公司 注册方法、头戴式显示设备、头戴设备系统和存储介质
CN111523889B (zh) * 2020-04-17 2023-09-01 昆明大棒客科技有限公司 多重签名实现方法、装置、设备和存储介质
BR102021001278A2 (pt) 2021-01-22 2022-08-09 Rogerio Atem De Carvalho Dispositivo e método para autenticação de hardware e/ou software embarcado
ES2932418A1 (es) * 2021-07-07 2023-01-18 Uxpayments S L Sistema y metodo de comunicacion segura por proximidad para transacciones digitales
US11818278B2 (en) * 2021-07-26 2023-11-14 Vmware, Inc. Dynamic certificate management in cryptographic agility frameworks
US11924343B2 (en) 2021-07-26 2024-03-05 Vmware, Inc. Mechanism for enabling cryptographic agility in legacy applications and services
KR102538652B1 (ko) * 2021-12-30 2023-05-31 (주)아톤 메타버스 환경에서의 전자서명 방법 및 장치
ES2967102A1 (es) * 2022-09-30 2024-04-26 Encryptoart Systems S L Chip de autenticacion por comunicacion de campo cercano, sistema asimetrico de autenticacion por comunicacion de campo cercano y procedimientos de autenticacion que emplean dicho sistema

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101007375B1 (ko) * 2008-07-29 2011-01-13 주식회사 케이티 스마트 카드 인증서 관리 장치 및 방법
KR101226607B1 (ko) * 2012-08-30 2013-02-05 주식회사 미래테크놀로지 엔에프씨 칩이 내장된 핸드폰을 이용한 오티피 발생장치와 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10304451B3 (de) 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
JP2005167527A (ja) * 2003-12-02 2005-06-23 Hitachi Ltd 証明書管理システムおよびその方法
US8151344B1 (en) * 2009-01-29 2012-04-03 Intuit Inc. Method and apparatus to authenticate a user
CN101753310B (zh) * 2009-12-28 2015-07-29 苏盛辉 基于多变量排列难题和超对数难题的数字签名方法
KR20110078601A (ko) 2009-12-31 2011-07-07 서정훈 안전한 비밀번호 입출력기능을 가진 usb보안장치 및 인증방법
CN201754596U (zh) * 2010-06-04 2011-03-02 上海奕华信息技术有限公司 一种移动终端扩展装置
KR20110030515A (ko) 2011-01-27 2011-03-23 주식회사 스마트솔루션 스마트폰에서 사용할 수 있는 보안토큰 장치 및 인증방법
US10032240B2 (en) * 2013-11-08 2018-07-24 International Business Machines Corporation Executing electronic contract on NFC enabled mobile devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101007375B1 (ko) * 2008-07-29 2011-01-13 주식회사 케이티 스마트 카드 인증서 관리 장치 및 방법
KR101226607B1 (ko) * 2012-08-30 2013-02-05 주식회사 미래테크놀로지 엔에프씨 칩이 내장된 핸드폰을 이용한 오티피 발생장치와 방법

Also Published As

Publication number Publication date
KR20150129869A (ko) 2015-11-23
WO2015174696A1 (ko) 2015-11-19
US20170093585A1 (en) 2017-03-30
CN106462900A (zh) 2017-02-22
US10063381B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
KR101604009B1 (ko) 공인인증을 위한 보안 토큰 및 그 구동 방법
KR101971329B1 (ko) 전자 디바이스 상의 크리덴셜의 프로비저닝 및 인증
KR102232649B1 (ko) 보안 디바이스 기능에 대한 온라인 액세스 확인
US10206082B2 (en) Priority based routing of data on an electronic device
US20140258109A1 (en) Pending deposit for payment processing system
KR20180100369A (ko) 비-네이티브 크리덴셜들과 함께 전자 디바이스들을 사용하는 거래들의 수행
WO2015120791A1 (en) Data interaction method, verification terminal, server, and system
US11763289B2 (en) Method of operating payment device for selectively enabling payment function according to validity of host
EP2521081B1 (en) Mobile transaction method and portable electronics device for mobile transaction
KR20130061625A (ko) 배터리 온 및 배터리 오프 모드들에서 nfc 보안 애플리케이션 지원을 제공하기 위한 시스템들 및 방법들
WO2009036264A1 (en) Wirelessly executing financial transactions
JP2012133390A (ja) スマートカード用暗号化方法と装置、及び超小型回路を有するスマートカード
US20210058233A1 (en) Electronic device providing blockchain account information and method of operating the same
EP3709205B1 (en) Electronic device including secure integrated circuit
CN104363589A (zh) 一种身份认证的方法、装置和终端
TWI590172B (zh) 授權伺服器、授權方法與電腦程式產品
EP3480718B1 (en) System and method for facilitating authentication via a shortrange wireless token
KR101507817B1 (ko) 개인키와 공개키 쌍을 생성하는 스마트카드 칩 및 그 생성 방법
US20190172051A1 (en) Electronic device and method for processing remote payment
CN112352241A (zh) 数字货币交互方法,数字货币物理载体,终端设备及存储介质
EP4044500B1 (en) Electronic device for ensuring integrity of electronic device intrinsic information, and operating method therefor
KR101415698B1 (ko) 공인인증 시스템 및 방법
CN105991538B (zh) 数据交互方法及系统
CN105590124A (zh) 一种借助外部终端验证的安全智能卡及其验证方法
CN105184564A (zh) 一种无卡支付方法和系统

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
FPAY Annual fee payment

Payment date: 20181224

Year of fee payment: 4