KR101933090B1 - 전자 서명 제공 방법 및 그 서버 - Google Patents

전자 서명 제공 방법 및 그 서버 Download PDF

Info

Publication number
KR101933090B1
KR101933090B1 KR1020160158052A KR20160158052A KR101933090B1 KR 101933090 B1 KR101933090 B1 KR 101933090B1 KR 1020160158052 A KR1020160158052 A KR 1020160158052A KR 20160158052 A KR20160158052 A KR 20160158052A KR 101933090 B1 KR101933090 B1 KR 101933090B1
Authority
KR
South Korea
Prior art keywords
user terminal
digital signature
key
service server
data
Prior art date
Application number
KR1020160158052A
Other languages
English (en)
Other versions
KR20180058996A (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 KR1020160158052A priority Critical patent/KR101933090B1/ko
Publication of KR20180058996A publication Critical patent/KR20180058996A/ko
Application granted granted Critical
Publication of KR101933090B1 publication Critical patent/KR101933090B1/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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

전자 서명 제공 방법 및 전자 서명 서비스 서버를 제공한다. 본 전자 서명 서비스 서버가 전자 서명을 제공하는 방법은, 기기 등록 서버로부터 기기 등록의 요청을 수신하면, 전자 서명 서비스 서버는 세션키 파라미터 및 주기기 등록용 토큰을 상기 기기 등록 서버에 전송하고, 기기 등록 서버로부터, 오프 라인 방법으로, 제1 사용자 단말은 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 획득하고, 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 이용하여 상기 전자 서명 서비스 서버에 주기기로 등록한다.

Description

전자 서명 제공 방법 및 그 서버{System and method for providing electronic signature service}
전자 서명을 제공하는 방법 및 서버에 관한 것이다.
공인 인증서는 공신력이 있는 공인인증기관에서 발급한 전자 서명 인증서로서, 우리나라의 경우 인터넷 뱅 킹뿐만 아니라 온라인 증명서 발급, 전자상거래, 인터넷 주식거래 등 다양한 분야에서 필수적으로 사용되고 있다.
기존의 PC 환경에서 공인 인증서 사용 형태를 살펴보면, 공인 인증서를 하드 디스크, 이동식 디스크, 휴대폰, 저장 토큰, 보안 토큰 등에 저장해 두고 있다가 인터넷 금융거래 등을 위해 공인인증이 필요한 경우 하드 디스크 등에 저장된 공인 인증서를 통해 전자 서명을 생성하고 이를 인증 서버가 검증함으로써 공인인증을 수행하는 방식이다.
상술한 공인인증 방식에서는 사용자가 공인 인증서가 저장된 매체를 소지하고 다녀야 하는 불편함이 있다. 그리고, 사용자가 공인 인증서를 사용할 수 있는 매체 수를 늘리기 위해서는 공인 인증서를 여러 매체에 복사, 이동하는 작업을 수행해야 하는 번거로움이 있다. 또한, 다수 매체에 공인 인증서가 저장되어 있으면 매체의 분실 혹은 타인이 매체에 접근함으로써 공인 인증서의 유출 가능성이 높아지는 위험이 있다.
본 실시예는, 사용자의 개인키를 등록하고 등록된 사용자의 개인키를 이용하여 사용자 단말로부터 수신한 서명 대상 데이터에 대한 전자 서명을 생성하는 전자 서명 서비스 서버를 개시한다.
전자 서명 서비스 서버에 전자 서명을 제공받을 수 있는 사용자 단말을 등록하는 방법을 개시한다.
일 실시예에 따른 전자 서명 서비스 서버가 전자 서명을 제공하는 방법은, 전자 서명 서비스 서버는 세션키 파라미터 및 주기기 등록용 토큰을 기기 등록 서버에 전송하는 단계; 상기 기기 등록 서버로부터, 오프 라인 방법으로, 제1 사용자 단말은 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 획득하고, 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 이용하여 상기 전자 서명 서비스 서버에 주기기로 등록하는 단계; 상기 주기기로 등록된 상기 제1 사용자 단말로부터 상기 전자 서명의 요청을 수신하면, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 전자 서명을 생성하는 단계; 및 상기 전자 서명 서비스 서버는 상기 전자 서명을 상기 제1 사용자 단말에게 전송하는 단계;를 포함한다.
그리고, 상기 기기 등록 서버는 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 포함하는 이미지 코드를 생성하고, 상기 이미지 코드를 제2 사용자 단말에 전송하는 단계; 및 상기 제2 사용자 단말을 상기 이미지 코드를 표시하는 단계;를 더 포함하고, 상기 주기기로 등록하는 단계는, 상기 제1 사용자 단말이 상기 제2 사용자 단말에 표시된 상기 이미지 코드를 촬영하여 인식함으로써 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 획득할 수 있다.
또한, 상기 이미지 코드는, QR 코드, 데이터 매트릭스(Data Matrix), 맥시 코드(Maxi Code), 컬러 코드(Color Code), 그레이 코드(Cray Code), 바코드(bar code) 중 적어도 하나일 수 있다.
그리고, 상기 주기기로 등록하는 단계는, 상기 전자 서명 서비스 서버는 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말을 검증하는 단계; 상기 검증이 완료되면, 상기 제1 사용자 단말은 주기기용 키 쌍을 생성하고, 상기 세션키 파라미터로 상기 주기기용 키 쌍의 공개키 및 상기 제1 사용자 단말의 기기 정보를 암호화하여 상기 전자 서명 서비스 서버에 전송하는 단계; 및 상기 전자 서명 서비스 서버는 암호화된 상기 주기기용 키 쌍의 공개키 및 상기 제1 사용자 단말의 기기 정보를 복호화하여 저장함으로써 상기 제1 사용자 단말을 주기기로 등록하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 사용자 단말을 검증하는 단계는, 제1 사용자 단말은 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말의 기기 토큰을 생성하고, 상기 제1 사용자 단말의 기기 토큰을 상기 전자 서명 서비스 서버에 전송하는 단계; 및 상기 전자 서명 서비스 서버는 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말의 기기 토큰을 검증하는 단계;를 더 포함할 수 있다.
그리고, 상기 제1 사용자 단말은 상기 주기기용 키 쌍의 개인키 및 상기 제1 사용자 단말의 기기 정보를 암호화하여 저장하는 단계;를 더 포함할 수 있다.
또한, 상기 주기기용 키 쌍의 개인키 및 상기 제1 사용자 단말의 기기 정보는 상기 제1 사용자 단말에 대응하는 사용자의 개인 식별 번호(Personal Identification Number; PIN) 및 생체 정보 중 적어도 하나에 의해 암호화할 수 있다.
그리고, 상기 전자 서명을 생성하는 단계는, 상기 전자 서명 서비스 서버는 상기 제1 사용자 단말로부터 서명 대상 데이터 및 상기 서명 대상 데이터에 대한 전자 서명의 요청을 수신하는 단계; 및 상기 요청에 응답하여, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 서명 대상 데이터에 대한 상기 전자 서명을 생성하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 사용자 단말은, 상기 전자 서명, 상기 서명 대상 데이터 및 상기 개인키에 대응되는 공개키를 상기 이용 서버에 전송하는 단계;를 더 포함할 수 있다.
그리고, 제3 사용자 단말로부터, 오프 라인 방법으로, 상기 제1 사용자 단말은 상기 제3 사용자 단말의 기기 정보 및 추기 기기용 키 쌍의 공개키를 수신하는 단계; 상기 제1 사용자 단말은, 상기 제3 사용자 단말의 기기 정보 및 추가 기기용 키 쌍의 공개키를 상기 전자 서명 서비스 서버에 전송하는 단계; 및 상기 전자 서명 서비스 서버는 상기 제3 사용자 단말의 기기 정보 및 상기 추가 기기용 키 쌍의 공개키를 저장함으로써 상기 제3 사용자 단말을 추가 기기로 등록하는 단계;를 더 포함할 수 있다.
또한, 상기 전자 서명 서비스 서버에 전송되는 상기 제3 사용자 단말의 기기 정보 및 추가 기기용 키 쌍의 공개키는, 상기 제1 사용자 단말이 상기 전자 서명 서비스 서버와 인증하는 과정에서 획득된 세션키로 암호화될 수 있다.
그리고, 상기 전자 서명을 생성하는 단계는, 상기 제1 사용자 단말로부터 등록된 기기인지 여부를 인증하기 위한 기기 인증 데이터를 수신하는 단계; 및 상기 기기 인증 데이터를 검증 한 후 상기 전자 서명을 생성하는 단계;를 더 포함할 수 있다.
또한, 상기 기기 인증 데이터는, 주기기용 키 쌍의 개인키를 이용하여 생성될 수 있다.
일 실시예에 따른 외부 기기와 통신하는 통신부; 사용자의 전자 서명 생성을 위한 개인키가 저장된 저장부; 상기 통신부를 통해, 세션키 파라미터 및 주기기 등록용 토큰을 기기 등록 서버에 전송하고, 상기 세션키 파라미터 및 주기기 등록용 토큰을 획득한 제1 사용자 단말로부터 주기기 등록을 요청받으면 상기 제1 사용자 단말을 주기기로 등록하는 프로세서; 및 상기 통신부를 통해, 상기 주기기로 등록된 상기 제1 사용자 단말로부터 상기 전자 서명의 요청을 수신하면, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 전자 서명을 생성하는 전자 서명 생성 모듈;을 포함하고, 상기 프로세서는, 상기 통신부를 통해, 상기 전자 서명을 상기 제1 사용자 단말에게 전송한다.
실시예들에 따르면, 전자 서명 생성을 위한 개인키를 전자 서명 서비스 서버에서 등록 및 관리함으로써 사용자가 개인키가 저장된 매체를 소지하지 않아도 되는 효과가 발생한다. 또한, 개인키가 저장된 매체가 도용되는 것을 방지할 수 있다.
또한, 전자 서명 서비스 서버(100)에 저장된 개인키를 전자 서명 생성 모듈 외에 다른 장치가 확인 및 복제하는 것을 차단함으로써, 사용자의 개인키에 대한 보안이 향상될 수 있다.
전자 서명 서비스 서버에 접속 가능한 사용자 단말을 한정함으로써 특정 사용자 단말에게만 전자 서명을 제공할 수 있다.
도 1은 예시적인 실시예에 따른 전자 서명 서비스 시스템을 나타낸 도면이다.
도 2는 도 1에서 나타낸 전자 서명 서비스 서버를 대략적으로 나타낸 블록도이다.
도 3은 도 2에서 나타낸 저장부의 저장 공간을 개념적으로 나타낸 블록도 이다.
도 4는 도 1에서 나타낸 사용자 단말을 대략적으로 나타낸 블록도이다.
도 5는 도 1에서 나타낸 전자 서명 서비스 시스템에 의해 전자 서명 서비스가 제공되는 방법의 예시를 나타낸 흐름도이다.
도 6은 도 1에서 나타낸 전자 서명 서비스 시스템에 의해 전자 서명 서비스가 제공되는 방법의 다른 예시를 나타낸 흐름도이다.
도 7은 전자 서명 서비스 서버가 사용자 단말의 사용자를 인증하는 과정을 예시적으로 나타낸 흐름도이다.
도 8은 도 6에서 나타낸 전자 서명 서비스 방법에서 보안 통신 세션을 생성하는 단계가 추가된 예를 나타낸 흐름도이다.
도 9는 도 8에서 나타낸 보안 통신 세션 생성 단계가 수행되는 과정을 예시적으로 나타낸 흐름도이다.
도 10은 상기 보안 통신 세션을 이용하여 전자 서명 서비스 서버와 사용자 단말이 데이터를 송수신 하는 것을 나타낸 흐름도이다.
도 11a 및 도 11b는 도 1에서 나타낸 전자 서명 서비스 시스템에 의해 전자 서명 서비스가 제공되는 방법의 예시를 나타낸 흐름도이다.
도 12는 사용자 단말에 저장된 개인키 및 인증서 데이터를 전자 서명 서비스 서버에 이동시키는 과정을 예시적으로 나타낸 흐름도이다.
도 13은 일 실시예에 따른 전자 서명 서비스 서버에 주기기로 등록하는 방법을 설명하는 흐름도이다.
도 14는 일 실시예에 따른 주기기를 등록하는 구체적인 방법을 설명하는 흐름도이다.
도 15는 일 실시에에 따른 제1 사용자 단말(210)이 기기 인증을 수행하는 절차를 설명하는 흐름도이다.
도 16a 및 도 16b는 일 실시예에 따른 추가 기기 등록하는 방법을 설명하는 흐름도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
비록 제1, 제2 등의 용어가 다양한 요소들을 서술하기 위해서 사용되지만, 이 요소들은 이러한 용어에 의해 제한되지 않는다. 이러한 용어들은 단지 하나의 요소를 다른 요소와 구별하기 위하여 사용하는 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
명세서 전체에서 전자 서명(Digital Signature)은 네트워크를 통해 전송되는 데이터의 무결성 및 해당 데이터를 생성 또는 전송한 사용자를 보증하기 위한 보안 기술이다. 전자 서명은 송신자가 송신자의 개인키로 암호화된 전자 서명을 생성한 후 상기한 전자 서명을 메시지에 첨부하여 전송하면, 수신자는 송신자의 공개키로 전자 서명을 복호화한 후 원래의 메시지와 대비하여 검증할 수 있다. 이러한, 본 발명의 일 실시예에 따른 전자 서명은 알에스에이(Ron Rivest, Adi Shamir, Loenard Adleman, RSA) 알고리즘, 디지털 표준 알고리즘(Digital Standard Algorithm, DSA), 메시지 다이제스트 알고리즘(Message-Digest algorithm 5, MD5), 고급 암호화 표준(Advanced Encryption Standard, AES) 등과 같은 암호화 알고리즘 중 어느 하나를 이용할 수 있으나, 이에 한정되는 것은 아니다.
공개키(Public key)은 비대칭형 암호 방식(Asymmetric cryptosystem)에서 문서를 암호화하기 위해 사용되는 키로, 개인 키(Private key)와 역수 관계를 가질 수 있다. 공개 키와 개인 키를 합쳐 키 쌍이라고 한다. 일반적으로 하나의 장치에서 키 쌍을 생성한다. 키 쌍을 용도에 따라 주기기와 관련된 키 쌍을 주기기용 키 쌍이라고 하고, 추가 기기와 관련된 키 쌍을 추가 기기용 키 쌍이라고 기재할 수 있다.
토큰은 사용자 인증 및 사용 권한을 제어하는데 이용되는 데이터이다. 이하 토큰의 용도에 따라 인증에 이용되는 토큰을 인증용 토큰, 등록에 이용되는 토큰을 등록용 토큰 등으로 기재할 수 있다.
세션키는 데이터를 암호화 및 복호화하는데 사용될 수 있으며, 서버는 기 정의된 알고리즘에 의해 세션키를 생성할 수 있다. 세션키도 인증에 이용되는 세션키를 인증용 세션키 등록에 이용되는 세션키를 등록용 세션키로 기재할 수 있다.
데이터 등을 검증한다는 것은 암호화된 데이터를 복호화하여 기저장된 데이터와 일치하는지 여부를 결정하는 것이다. 검증이 완료되었다 또는 검증에 성공하였다는 것은 기저장된 데이터와 일치한다는 거이고, 검증에 실패하였다는 것을 기저장된 데이터와 일치하지 않는다는 것을 의미한다. 또는 데이터 등을 검증한다는 것은 암호화된 데이터가 복호화되었다는 것을 의미할 수도 있다.
서명 대상 문서는 사용자의 전자 서명이 요구되는 전자 문서를 의미한다. 사용자는 상기 서명 대상 문서에 대해 전자 서명을 생성함으로써, 상기 서명 대상 문서에 대해 상기 사용자가 승인하였음을 인증할 수 있다. 서명 대상 문서는 전자 서명을 이용하는 이용 기관의 서버에 의해 작성될 수 있다. 상기 전자 서명 이용기관은 은행, 공공기관, 전자 상거래 서비스 운영기관, 주식 거래 기관 등일 수 있으며, 이에 제한되는 것은 아니다. 다른 예로, 서명 대상 문서는 서명의 권한이 있는 사용자 단말에 의해서도 작성될 수도 있다. 서명 대상 문서는 전자 문서로서, 온라인 증명서, 전자상거래 문서, 인터넷 주식 거래 문서 등을 포함할 수 있으며, 이에 제한되는 것은 아니다.
서명 대상 데이터는 상기 서명 대상 문서로부터 도출된 데이터를 의미한다.
예시적으로, 서명 대상 데이터는 소정의 알고리즘으로 서명 대상 문서의 원문 데이터를 가공한 데이터일 수 있다.
예를 들어, 서명 대상 데이터는 서명 대상 문서의 원문 데이터를 해쉬 함수(Hash function)를 이용하여 가공한 데이터일 수 있다. 다른 예로, 서명 대상 데이터는 서명 대상 문서의 원문 데이터를 해쉬 함수 및 패딩(Padding) 알고리즘을 이용하여 가공한 데이터일 수 있다. 패딩이란 데이터의 크기가 목표하는 고정 길이보다 작은 경우 데이터 끝에 공백이나 의미가 없는 기호를 부가하여 데이터 크기를 조정하는 알고리즘을 의미한다.
전술한 데이터 가공 알고리즘 들은 예시적인 것에 불과하며, 실시예가 이에 제한되는 것은 아니다. 또한, 서명 대상 데이터는 서명 대상 문서의 원문 데이터와 같을 수도 있다.
인증서란 전자 서명이 사용자에 의해 생성되었음을 인증하기 위한 전자적 문서를 의미한다. 인증서는 전자 서명을 진행한 사용자 정보, 인증서의 용도, 인증서 유효기간, 인증서 만료일 및 인증서 발급기관에 대한 정보 중 적어도 하나를 포함할 수 있다.
그리고, 인증서 데이터는 인증서로부터 도출된 데이터를 의미한다. 인증서 데이터는 인증서의 정보를 그대로 나타내는 데이터일 수 있다. 다른 예로, 인증서 데이터는 전자 서명 이용기관에 제출하기 위해 인증서를 적절한 포맷으로 변경한 데이터일 수도 있다.
전자 서명문은 전자 서명을 이용하는 이용 기관에 제출되는 전자 문서를 의미한다. 전자 서명문에는 상기 전자 서명, 서명 대상 데이터, 인증서 데이터 및 전자 서명을 복호화하기 위한 공개 키 데이터 등이 첨부되어 있을 수 있다. 전자 서명 이용 기관은 전자 서명문에 첨부된 공개 키 데이터로 상기 전자 서명을 검증함으로써, 전자 서명이 사용자에 의해 작성된 것인 지를 확인할 수 있다.
이하, 본 발명에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 예시적인 실시예에 따른 전자 서명 서비스 시스템(1000)을 나타낸 도면이다.
도 1을 참조하면, 실시예에 따른 전자 서명 서비스 시스템(1000)은 사용자 단말(200)과, 사용자의 전자 서명 생성을 위한 데이터를 저장하고 사용자에게 전자 서명 서비스를 제공하는 전자 서명 서버(100), 전자 서명을 이용하는 전자 서명 이용 서버(300) 및 전자 서명을 인증하는 인증 서버(400)를 포함할 수 있다.
전자 서명 이용 서버(300)는 전자 서명을 이용하는 기관에 의해 운영되는 서버를 의미한다. 전자 서명 이용 서버(300)는 은행 서버, 공공 기관에 의해 운영되는 서버, 전자 상거래 서비스를 제공하는 서버 등을 포함할 수 있으며, 이에 제한되는 것은 아니다. 전자 서명 이용 서버(300)는 사용자의 인증이 필요한 전자 문서, 즉 서명 대상 문서를 발행할 수 있다. 전자 서명 이용 서버(300)는 상기 서명 대상 문서로부터 도출된 서명 대상 데이터를 사용자 단말(200)에 전송할 수 있다. 상기 서명 대상 데이터는 서명 대상 문서의 원문 데이터를 그대로 포함할 수도 있고, 서명 대상 문서의 원문 데이터를 후술하는 암호화에 적절하도록 가공한 데이터를 포함할 수도 있다. 전자 서명 이용 서버(300)는 상기 서명 대상 데이터에 대한 전자 서명을 사용자 단말(200)에게 요청할 수 있다.
인증 서버(400)는 전자 서명의 검증을 위한 인증서를 발행하고 관리하는 공인 인증 기관에 의해 운영되는 서버를 의미한다. 상기 공인 인증 기관의 예로는 금융결제원, 한국정보인증, 한국증권전산, 한국전자인증, 한국전산원,한국무역정보통신 등이 있다.
사용자 단말(200)은 전자 서명의 권한을 가진 사용자가 사용하는 장치를 의미한다. 사용자 단말은 스마트 폰, 태블릿 PC, 랩톱 등을 포함할 수 있으나 이에 제한되는 것은 아니다. 사용자 단말(200)은 전자 서명 이용 서버(300) 및 전자 서명 서비스 서버(100)와 통신할 수 있는 통신 수단을 포함할 수 있다. 사용자 단말(200)은 전자 서명 이용 서버(300)로부터 서명 대상 데이터 및 서명 대상 데이터에 대한 전자 서명의 요청 수신할 수 있다.
사용자 단말(200)은 전자 서명을 직접 생성하지 않고, 전자 서명 서비스 서버(100)에게 전자 서명을 생성해 줄 것을 요청할 수 있다. 필요한 경우, 사용자 단말(200)은 상기 서명 대상 데이터를 전자 서명이 용이한 포맷으로 가공한 후, 가공된 서명 대상 데이터에 대한 전자 서명의 요청을 전자 서명 서비스 서버(100)에게 전송할 수 있다.
사용자 단말(200)은 전자 서명 서비스 서버(100)로부터 전자 서명을 수신하면, 전자 서명을 이용하여 전자 서명문을 생성할 수 있다. 전자 서명문은 전자 서명 이용 서버(300) 또는 인증 서버(400)에서 검증이 가능한 포맷으로 작성될 수 있다. 사용자 단말(200)은 생성한 전자 서명문을 전자 서명 이용 서버(300)에 전송할 수 있다.
전자 서명 서비스 서버(100)에는 사용자의 전자 서명 생성을 위한 정보가 등록되어 있을 수 있다. 예를 들어, 전자 서명 서비스 서버(100)에는 전자 서명 생성을 위한 키 쌍 가운데 개인키가 등록되어 있을 수 있다. 전자 서명 서비스 서버(100)는 미리 등록된 사용자의 개인키를 이용하여 전자 서명을 생성할 수 있다. 전자 서명 서비스 서버(100)는 생성한 사용자의 전자 서명을 사용자 단말(200)에 전송할 수 있다.
도 2는 도 1에서 나타낸 전자 서명 서비스 서버(100)를 대략적으로 나타낸 블록도이다.
도 2를 참조하면, 실시예에 따른 전자 서명 서비스 서버(100)는 사용자 단말(200)과 통신하는 통신부(110)와, 사용자의 전자서명 생성을 위한 개인키를 저장하는 저장부(130) 및 통신부(110)가 사용자 단말(200)로부터 서명 대상 데이터 및 상기 서명 대상 데이터에 대한 전자 서명의 요청을 수신하면, 상기 개인키를 이용하여 상기 서명 대상 데이터에 대한 전자 서명을 생성하는 전자 서명 생성 모듈(140)을 포함할 수 있다. 또한, 전자 서명 서비스 서버(100)는 통신부(110)가 사용자 단말(200)로부터 수신한 기기 인증 데이터를 검증하는 프로세서(120)를 더 포함할 수 있다. 프로세서(120)는 통신부(110)가 송수신 하는 데이터를 암호화 및 복호화 하는 연산 작업을 수행할 수도 있다.
통신부(110)는 사용자 단말(200)과 정보 및 데이터를 주고 받을 수 있다. 통신부(110)는 데이터의 전송 및 수신의 역할을 수행하는 하드웨어 자원을 포함할 수 있다.
통신부(110)는 소정의 통신망을 통해 사용자 단말(200)과 연결될 수 있다. 상기 소정의 통신망은, 전자 서명 서비스 서버(100)의 통신부(110)와 사용자 단말(200)을 연결하는 역할을 수행하는 매개체로써, 사용자 단말(200)이 전자 서명 서비스 서버(100)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공하는 경로 등을 포함할 수 있다. 상기 통신망은 유선 네트워크 또는 무선 네트워크일 수 있다. 유선 네트워크는 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks)등을 포함할 수 있고, 무선 네트워크는 무선 LANs, CDMA, 블루투스, 위성 통신 등을 포함할 수 있으나 실시예가 이에 제한되는 것은 아니다.
저장부(130)에는 사용자의 전자 서명 생성을 위해 전자 서명 서비스 서버(100)에 등록된 정보가 저장되어 있을 수 있다. 예를 들어, 저장부(130)에는 사용자의 전자 서명 생성을 위한 개인키가 저장되어 있을 수 있다. 또한, 저장부(130)에는 사용자의 인증서 데이터가 함께 저장되어 있을 수 있다.
저장부(130)는 전자 서명 생성 모듈(140)을 제외한 다른 장치가 사용자의 개인키를 복제 및 확인할 수 없도록 할 수 있다. 반면, 저장부(130)에 저장된 인증서 데이터는 사용자 단말(200)의 요청에 의해 통신부(110)를 통해 사용자 단말(200)로 전송될 수 있다. 따라서, 저장부(130)는 인증서 데이터와 개인키를 서로 다른 저장 공간에 저장할 수 있다.
도 3은 도 2에서 나타낸 저장부(130)의 저장 공간을 개념적으로 나타낸 블록도 이다.
도 3을 참조하면, 저장부(130)는 제1 저장 공간(132)과 제2 저장 공간(134)을 포함할 수 있다. 제1 저장 공간(132)과 제2 저장 공간(134)은 하드웨어 적으로 분리되어 있을 수도 있고, 분리되지 않을 수도 있다. 예시적으로 제1 저장 공간(132)에는 사용자의 개인키가 저장되어 있을 수 있다. 또한, 제2 저장 공간(134)에는 인증서 데이터, 사용자 식별 정보 등이 포함되어 있을 수 있다. 프로세서(120)는 제2 저장 공간(134)에 저장된 데이터 및 정보 중 적어도 일부를 이용할 수 있다. 또한, 제2 저장 공간(134)에 저장된 인증서 데이터 등은 통신부(110)를 통해 외부로 전송될 수 있다.
제1 저장 공간(132)은 제1 저장 공간(132)에 저장된 정보는 전자 서명 서비스 서버(100)의 외부에서 확인 및 복제가 불가능 하도록 구성될 수 있다. 제1 저장 공간(132)에 저장된 개인키는 전자 서명 생성 모듈(140)만이 확인 및 이용할 수 있도록 구성될 수 있다. 예를 들어, 제1 저장 공간(132)과 전자 서명 생성 모듈 (140)은 함께 하드웨어 보안 모듈(Hardware Security Module; HSM)(150)을 구성할 수 있다. 제1 저장 공간(132)과 전자 서명 생성 모듈(140)이 하드웨어 보안 모듈 (150)을 구성함으로써, 제1 저장 공간(132)에 저장된 개인키는 공개되지 않고 안전하게 관리될 수 있다.
전자 서명 생성 모듈(140)은 저장부(130)의 제1 저장 공간(132)에 저장된 개인키를 이용하여 통신부(110)가 수신한 서명 대상 데이터를 암호화할 수 있다. 전자 서명 생성 모듈(140)은 상기 암호화에 필요한 연산 과정을 수행할 수 있다. 전자 서명 생성 모듈(140)은 서명 대상 데이터를 암호화 함으로써 전자 서명을 생성할 수 있다. 전자 서명 생성 모듈(140)이 생성한 전자 서명을 통신부(110)에 전달하면, 통신부(110)는 상기 전자 서명을 사용자 단말(200)에게 전송할 수 있다.
다시 도 2를 참조하면, 프로세서(120)는 사용자 단말(200)로부터 획득한 기기 인증 데이터를 검증할 수 있다. 상기 기기 인증 데이터는 상기 사용자 단말(200)의 기기 인증을 위한 정보로부터 생성된 데이터일 수 있다. 또한, 상기 기기 인증을 위한 정보는 사용자 단말(200)의 기기에 부여된 고유 식별번호, 기기 정보, 사용자가 전자 서명 서비스에 가입할 때 사용자 단말(200)에 부여된 ID 등을 포함할 수 있다. 그리고, 기기 인증 데이터는 상기 기기 인증을 위한 정보의 전부 또는 일부를 변조함으로써 획득된 데이터일 수 있다.
프로세서(120)는 사용자 단말(200)로부터 획득한 기기 인증 데이터를 검증함으로써 사용자가 전자 서명을 획득할 권한이 있는 지를 판단할 수 있다. 프로세서(120)는 저장부(130)의 제2 저장 공간(134)에 저장된 정보를 이용하여 상기 사용자 단말(200)로부터 획득한 기기 인증 데이터를 검증할 수 있다. 프로세서(120)는 통신부(110)가 사용자 단말(200)로부터 획득한 기기 인증 데이터로부터 사용자가 전자 서명을 생성할 권한이 있는 지를 판단할 수 있다.
프로세서(120)는 기기 인증 데이터에 대한 검증을 완료하면, 전자 서명 생성 모듈(140)에게 사용자가 사용할 권한이 있는 개인키를 이용하여 서명 대상 데이터에 대한 전자서명 생성을 요청할 수 있다. 프로세서(120)는 사용자 인증 절차에 필요한 연산과정을 수행할 수 있는 하드웨어 자원을 포함할 수 있다.
도 4는 도 1에서 나타낸 사용자 단말(200)을 대략적으로 나타낸 블록도이다.
도 4를 참조하면, 예시적인 실시예에 따른 사용자 단말(200)은 통신부(210)와, 사용자의 입력 정보를 획득하는 입력부(230), 및 프로세서(240)를 포함할 수 있다.
통신부(210)는 전자 서명 서비스 서버(100), 전자 서명 이용 서버(300) 및 인증 서버(400)와 데이터 및 정보를 송수신할 수 있다. 통신부(210)는 전자 서명 서비스 서버(100)에게 전자 서명의 요청을 전송할 수 있다. 통신부(210)는 전자 서명 서비스 서버(100)로부터 전자 서명을 수신하고, 상기 전자 서명을 이용하여 생성된 전자 서명문을 전자 서명 이용 서버(300)에 전송할 수 있다.
입력부(230)는 사용자의 입력정보를 획득할 수 있다. 프로세서(240)는 입력부(230)가 획득한 사용자 입력 정보에 기초하여 통신부(210)가 전송하는 데이터를 생성할 수 있다. 입력부(230)의 입력 방식은 버튼 입력방식 또는 터치 스크린 방식일 수 있다. 버튼 입력방식의 경우, 입력부(230)는 소정의 버튼 입력장치를 포함할 수 있다. 터치 스크린 방식의 경우, 입력부(230)는 터치 스크린 기능을 지원하는 디스플레이를 포함할 수 있다. 프로세서(240)는 입력부(230)에게 UI(User Interface) 정보를 제공할 수 있다. 상술한 예는 예시적인 것에 불과하며 실시예가 이에 제한되는 것은 아니다. 예를 들어, 입력부(230)는 음성 인식이나 기타 다른 방법으로 사용자의 입력을 입력 받을 수 도 있다.
프로세서(240)는 전자 서명 서비스 서버(100)에 의해 배포된 소정의 애플리케이션을 탑제하고 있을 수 있다. 프로세서(240)는 입력부(230)에 대한 UI 정보를 제공하고, 통신부(210)가 전송하는 데이터를 생성할 수 있다. 프로세서(240)는 전자 서명문 생성에 필요한 연산 기능을 수행할 수 있다. 또한, 프로세서(240)는 전자 서명 서비스 서버(100)와의 통신 보안을 위해 필요한 연산 기능을 수행할 수 있다.
실시예에 따른 사용자 단말(200)은 로컬 인증부(220)를 더 포함할 수 있다. 도 4에서는 로컬 인증부(220)는 프로세서(240)를 별도 구성으로 나타냈지만 이 것이 양 구성이 하드웨어 적으로 분리되어 있다는 것을 의미하는 것은 아니다. 예를 들어, 로컬 인증부(220)와 프로세서(240)는 적어도 일부의 하드웨어 자원을 공유하거나 공유하지 않을 수도 있다.
로컬 인증부(220)는 사용자의 로컬 인증 프로세스를 수행할 수 있다. 로컬 인증부(220)는 입력부(230)에서 획득한 사용자 입력 정보에 기초하여 로컬 인증을 수행할 수 있다. 여기서, 로컬 인증이란 사용자 단말(200)이 외부와 데이터를 주고 받지 않으면서 수행되는 사용자 인증 절차를 의미한다. 로컬 인증 방식에 대해서는 후술하는 설명 부분에서 보다 상세히 설명한다.
도 5는 도 1에서 나타낸 전자 서명 서비스 시스템(1000)에 의해 전자 서명 서비스가 제공되는 방법의 예시를 나타낸 흐름도이다.
도 5를 참조하면, 전자 서명 서비스 서버는 미리 등록된 사용자의 개인키를 이용하여 서명 대상 데이터에 대한 전자 서명을 생성할 수 있다.
1105 단계에서, 전자 서명 서비스 서버(100)는 사용자의 전자 서명을 생성하기 위한 개인키를 저장부(130)에 등록할 수 있다. 전자 서명 서비스 서버(100)는 사용자 단말(200)의 요청에 의해 키 쌍을 생성한 후 상기 키 쌍에 포함된 개인키를 저장부(130)에 저장할 수 있다. 예를 들어, 전자 서명 서비스 서버(100)는 상기 키 쌍에 포함된 개인키는 도 3에서 나타낸 제1 저장 공간(132)에 저장하고, 공개키는 제2 저장 공간(134)에 저장할 수 있다.
다른 예로, 전자 서명 서비스 서버(100)는 사용자 단말(200)로부터 기 생성된 개인키를 전달 받을 수도 있다. 이 경우, 전자 서명 서비스 서버(100)가 사용자 단말(200)로부터 수신하는 개인키는 암호화 되어 있을 수 있다. 사용자의 개인키를 등록하는 1105 단계에 대해서는 후술하는 설명 부분에서 보다 상세히 설명한다.
1110 단계에서 사용자 단말(200)은 전자 서명 이용 서버(300)로부터 전자 서명의 요청을 수신할 수 있다. 상기 전자 서명의 요청은 전자 서명 이용 서버(300)에서 확인하고자 하는 서명 대상 데이터에 대해 전자 서명을 생성해줄 것을 요청하는 것을 의미한다. 서명 대상 데이터는 전자 서명 이용 서버(300)에서 생성될 수 있다. 이 경우, 전자 서명 이용 서버(300)는 전자 서명 요청과 함께 서명 대상 데이터를 함께 사용자 단말(200)에 전송할 수 있다.
예를 들어, 전자 서명 이용 서버(300)는 온라인 증명서, 전자상거래 문서, 인터넷 주식 거래 문서 등을 서명 대상 문서로 생성할 수 있다. 그리고, 전자 서명 이용 서버(300)는 상기 서명 대상 문서로부터 도출된 서명 대상 데이터를 사용자 단말(200)에게 전송할 수 있다. 전자 서명 이용 서버(300)가 전송하는 서명 대상 데이터는 서명 대상 문서의 원본 데이터 그대로이거나 서명 대상 문서의 원본 데이터를 가공한 것일 수도 있다.
다른 예로, 서명 대상 데이터는 사용자 단말(200)에서 생성될 수도 있다. 즉, 사용자 단말(200)이 전자 서명의 대상이 되는 서명 대상 문서를 직접 생성할 수도 있다. 이 경우, 전자 서명 이용 서버(300)는 사용자 단말(200)에게 사용자 단말(200)이 생성한 서명 대상 데이터 및 전자 서명을 전자 서명 이용 서버(300)에게 전송해 줄 것을 요청할 수 있다.
1120 단계에서, 사용자 단말(200)은 서명 대상 데이터를 가공할 수 있다. 예를 들어, 사용자 단말(200)은 해쉬(hash) 함수를 이용하여 서명 대상 데이터를 인코딩(encoding) 함으로써 서명 대상 데이터를 가공할 수 있다. 해쉬 함수 값의 데이터는 일정한 크기를 가지므로, 상기 해쉬 함수를 이용한 인코딩 과정을 통해 서명 대상 데이터의 크기가 변경될 수 있다. 사용자 단말(200)은 서명 대상 데이터를 가공하여 서명 대상 데이터의 크기를 변경함으로써 후술하는 전자 서명 생성이 용이하도록 할 수 있다.
사용자 단말(200)은 서명 대상 데이터를 가공하는 과정에서 패딩 과정을 더 수행할 수 있다. 사용자 단말(200)은 패딩을 통해 서명 대상 데이터의 크기를 조절할 수 있다. 상기 패딩 절차는 해쉬 함수를 이용한 인코딩에 의해 가공된 데이터의 크기가 후술하는 전자 서명 생성을 위해 요구되는 데이터의 크기보다 작을 경우 수행될 수 있다. 사용자 단말(200)은 가공된 서명 대상 데이터를 전자 서명 서비스 서버(100)에 전송할 수 있다.
도 5에서는 서명 대상 데이터를 가공하는 1120 단계가 사용자 단말(200)에서 수행되는 것을 예시적으로 나타냈지만, 실시예가 이에 제한되는 것은 아니다. 다른 실시예에 따르면, 1120 단계는 전자 서명 서비스 서버(100) 또는 전자 서명 이용 서버(300)에서 수행될 수도 있다.
전자 서명 이용 서버(300)가 서명 대상 문서를 생성하는 경우, 전자 서명 이용 서버(300)에서 서명 대상 문서의 데이터에 대해 전술한 인코딩 및 패딩 절차를 수행할 수도 있다. 다른 예로, 전자 서명 서비스 서버(100)가 사용자 단말(200)로부터 서명 대상 데이터의 크기가 전자 서명 생성에 적절한 크기가 아닌 경우, 전자 서명 서비스 서버(100)가 서명 대상 데이터를 가공한 후, 가공된 데이터에 대해 전자 서명을 생성할 수도 있다.
1124 단계에서, 사용자 단말(200)은 서명 대상 데이터 및 전자 서명 요청을 전자 서명 서비스 서버(100)에게 전송할 수 있다. 상기 전자 서명 요청은 사용자의 개인키를 이용하여 서명 대상 데이터에 대한 전자 서명을 생성해줄 것을 요청하는 것을 의미한다. 1124 단계에서 전송되는 서명 대상 데이터는 서명 대상 문서의 원본 데이터이거나 서명 대상 문서의 원본 데이터를 상기 인코딩 및 패딩을 통해 가공한 데이터일 수 있다.
1126 단계에서, 전자 서명 서비스 서버(100)는 서명 대상 데이터 및 사용자의 개인키를 이용하여 전자 서명을 생성할 수 있다. 통신부(110)는 사용자 단말(200)로부터 수신한 서명 대상 데이터를 전자 서명 생성 모듈(140)에 전달할 수 있다. 전자 서명 생성 모듈(140)는 제1 저장 공간(132)에 저장된 개인키를 이용하여 서명 대상 데이터를 암호화 할 수 있다. 전자 서명 생성 모듈(140)는 RSA, Rabin 및 ECDSA(Elliptic Curve DSA) 알고리즘 중 적어도 하나를 이용하여 서명 대상 데이터를 암호화 할 수 있다. 상술한 알고리즘들은 예시적인 것에 불과하며 실시예가 이에 제한되는 것은 아니다.
전자 서명 생성 모듈(140)은 서명 대상 데이터를 개인키를 이용하여 전자 서명을 생성할 수 있다. 전자 서명 생성 모듈 (140)에서 생성된 전자 서명은 통신부(110)로 전달될 수 있다. 하지만, 저장부(130)의 제1 저장 공간(132)에 등록된 개인키는 도 3의 하드웨어 보안 모듈(150) 외부로 전송되지 않을 수 있다. 따라서, 전자 서명 서비스 서버(100)가 전자 서명 서비스를 제공하는 동안, 사용자의 개인키는 외부에 공개되지 않을 수 있다.
1128 단계에서, 통신부(110)는 전자 서명 생성 모듈 (140)에서 생성된 전자 서명 및 제2 저장 공간(134)에 저장된 사용자의 인증서 데이터를 사용자 단말(200)에게 전송할 수 있다. 인증서 데이터는 전자 서명을 진행한 사용자 정보, 인증서 용도, 인증서 유효기간, 인증서 만료일, 인증서 발급기관 등에 관한 정보를 포함할 수 있다. 또한, 인증서 데이터는 상기 전자 서명을 검증 하기 위한 공개키를 포함할 수 있다. 또한, 인증서 데이터에는 인증서 데이터의 위조, 변조 여부를 판단하기 위해 제공되는 추가 서명이 첨부되어 있을 수 있다. 상기 추가 서명은 인증 서버(400)에서만 검증이 가능하도록 구성되어 있을 수 있다.
1130 단계에서, 사용자 단말(200)의 프로세서(240)는 전자 서명 서비스 서버(100)로부터 수신한 전자 서명 및 인증서 데이터를 이용하여 전자 서명문을 생성할 수 있다. 전자 서명문에는 서명 대상 데이터, 서명 대상 데이터에 대한 전자 서명 및 상기 전자 서명을 인증하는 인증서 데이터가 첨부될 수 있다. 사용자 단말(200)은 소정의 프로토콜(Protocol)을 이용하여 전자 서명문을 생성할 수 있다.
1132 단계에서, 사용자 단말(200)의 통신부(210)는 프로세서(240)에서 생성된 전자 서명문을 전자 서명 이용 서버(300)에 전송할 수 있다.
1134 단계에서 전자 서명 이용 서버(300)는 전자 서명문에 첨부된 인증서 데이터를 검증해줄 것을 인증 서버(400)에게 요청할 수 있다.
1136 단계에서, 인증 서버(400)는 인증서 데이터를 검증할 수 있다. 인증 서버(400)는 인증서 데이터에 첨부된 추가 서명을 검증 해봄으로써 인증서 데이터의 위조, 변조 여부를 검증할 수 있다.
1138 단계에서, 인증 서버(400)는 인증서 데이터에 대한 검증 결과를 전자 서명 이용 서버(300)에 전송할 수 있다.
1140 단계에서, 인증서 데이터의 검증이 완료된 경우, 전자 서명 이용 서버(300)는 사용자 단말(200)로부터 수신한 전자 서명문을 검증할 수 있다. 전자 서명 이용 서버(300)는 전자 서명문에 첨부된 공개키를 이용하여 전자 서명문에 첨부된 전자 서명을 검증 할 수 있다. 전자 서명 이용 서버(300)는 전자 서명을 복호화 한 결과 데이터와 전자 서명문에 첨부된 서명 대상 데이터를 비교함으로써 전자 서명문을 검증할 수 있다.
도 5에서 나타낸 실시예에 따르면, 전자 서명 서비스 서버(100)가 사용자의 개인키를 등록하고 관리하기 때문에 사용자 단말(200)에서 상기 개인키를 관리하지 않아도 된다. 따라서, 사용자가 개인키가 저장된 매체를 직접 소지하지 않아도 되는 효과가 발생한다. 또한, 사용자가 전자 서명을 위한 개인키를 여러 매체에 이동 또는 복사해야 하는 번거로움이 사라지는 효과가 발생한다.
실시예에 따르면, 개인키가 전자 서명 서비스 서버(100)에 저장되므로, 사용자가 개인키가 저장된 매체를 잃어버림에 따라 사용자의 전자 서명이 도용 당하는 것을 방지하는 효과가 발생할 수 있다. 그리고, 전자 서명 서비스 서버(100)의 제1 저장 공간(132)과 전자 서명 생성 모듈(140)로 하드웨어 보안 모듈(150)을 구성함으로써, 사용자의 개인키를 타인이 복제 또는 확인하는 것을 방지할 수 있다.
실시예에 따르면, 전자 서명 서비스 시스템(1000)에 의해 전자 서명 서비스가 수행되는 방법은 전자 서명 서비스 서버(100)가 사용자 단말(200)의 사용자를 인증하는 과정을 더 포함할 수 있다.
도 6은 도 1에서 나타낸 전자 서명 서비스 시스템(1000)에 의해 전자 서명 서비스가 제공되는 방법의 다른 예시를 나타낸 흐름도이다.
도 6의 실시예를 설명함에 있어서, 도 5와 중복되는 내용은 생략하기로 한다. 도 6을 참조하면, 전자 서명 서비스 서버(100)가 사용자 단말(200)의 사용자를 인증할 수 있다. 전자 서명 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)로부터 획득한 기기 인증 데이터를 검증하는 과정을 수행할 수 있다. 프로세서(120)는 기기 인증 데이터의 검증이 완료되면, 전자 서명 생성 모듈(140)에게 사용자가 이용 권한이 있는 개인키를 이용하여 전자 서명을 생성할 것을 요청할 수 있다.
1210 단계에서, 전자 서명 서비스 서버(100)는 사용자 단말(200)로부터 기기 인증 데이터를 획득할 수 있다. 기기 인증 데이터는 상술한 기기 인증을 위한 정보로부터 도출될 수 있다. 사용자 단말(200)이 기기 인증 데이터를 생성하는 과정에 대해서는 후술하는 설명에서 보다 상세히 기술한다.
1212 단계에서, 전자 서명 서비스 서버(100)의 통신부(110)는 사용자 단말(200)로부터 기기 인증 데이터를 수신할 수 있다. 프로세서(120)는 통신부(110)가 수신한 기기 인증 데이터를 검증할 할 수 있다. 프로세서(120)는 사용자가 저장부(130)에 저장된 개인키를 사용할 수 있는 권한이 있는 지 여부를 판단할 수 있다. 또한, 저장부(130)에 복수 개의 개인키가 저장된 경우, 프로세서(120)는 사용자가 사용할 수 있는 개인키가 어느 것인지를 결정할 수 있다. 전자 서명 서비스 서버(100)가 기기 인증 데이터를 검증하는 과정에 대해서는 후술하는 설명에서 보다 상세히 기술한다.
1214 단계에서, 전자 서명 서비스 서버(100)는 기기 인증 데이터를 검증한 결과를 사용자 단말(200)에게 전송할 수 있다. 프로세서(120)에서 기기 인증 데이터에 대한 검증이 실패한 경우, 통신부(110)는 사용자 인증이 실패하였다는 메시지를 사용자 단말(200)에게 전송할 수 있다. 프로세서(120)에서 기기 인증 데이터에 대한 검증을 완료한 경우, 통신부(110)는 사용자 인증이 완료되었다는 메시지를 사용자 단말(200)에 전송할 수 있다.
기기 인증 데이터에 대한 검증이 완료되면, 통신부(110)는 사용자가 사용할 수 있는 인증서 목록 정보를 사용자 단말(200)에 전송할 수 있다. 만약, 사용자가 사용할 수 있는 인증서의 개수가 복수 개인 경우, 사용자 단말(200)은 사용자로부터 인증서의 선택 정보를 입력 받을 수 있다. 그리고, 사용자 단말(200)은 전자 서명 서비스 서버(100)에게 인증서의 선택 정보를 전송할 수 있다.
이하에서는 기기 인증 데이터로부터 사용자를 인증하는 절차를 예시적으로 설명한다.
도 7은 전자 서명 서비스 서버(100)가 사용자 단말(200)의 사용자를 인증하는 과정을 예시적으로 나타낸 흐름도이다.
도 7을 참조하면, 사용자 단말(200)은 로컬 인증 절차를 수행할 수 있다. 사용자 단말(200)은 로컬 인증 절차가 완료되면, 기기 인증을 위한 정보로부터 기기 인증 데이터를 생성하고, 상기 기기 인증 데이터를 전자 서명 서비스 서버(100)에게 전송할 수 있다. 전자 서명 서비스 서버(100)는 기기 인증 데이터를 검증함으로써 사용자를 인증할 수 있다.
상기 기기 인증을 위한 정보는 사용자 단말(200)의 기기에 부여된 고유 식별번호, 기기 정보, 사용자가 전자 서명 서비스에 가입할 때 사용자 단말(200)에 부여된 ID 등을 포함할 수 있다. 그리고, 기기 인증 데이터는 상기 기기 인증을 위한 정보의 전부 또는 일부를 변조함으로써 획득된 데이터일 수 있다.
1510 단계에서, 사용자 단말(200)은 로컬 인증 절차를 수행할 수 있다. 로컬 인증은 사용자 단말(200) 내부에서 진행되는 것으로 사용자 단말(200)은 자체적으로 사용자가 입력하는 사용자 인증 정보를 검증할 수 있다. 사용자 단말(200)의 입력부(230)는 사용자로부터 사용자 인증 정보를 입력 받을 수 있다. 입력부(230)는 사용자 ID, 사용자의 생체 정보, 패스워드 등을 상기 사용자 인증 정보로 입력 받을 수 있다. 입력부(230)가 사용자의 생체 정보를 입력 받는 경우, 입력부(230)는 사용자의 생체 신호를 감지하는 센서를 포함할 수 있다.
로컬 인증부(220)는 입력부(230)가 입력 받은 사용자 인증 정보로부터 사용자를 인증할 수 있다. 로컬 인증부(220)는 로컬 인증 과정에서 상기 사용자 인증 정보가 외부로 유출되지 않도록 관리할 수 있다. 로컬 인증부(220)의 로컬 인증 과정은 후술하는 설명에서 상세히 기술한다.
1530 단계에서, 프로세서(240)는 기기 인증용 키 쌍을 이용하여 기기 인증 데이터를 생성할 수 있다. 기기 인증용 키 쌍은 암호화를 위한 기기 인증용 개인키와 기기 인증용 개인키로 암호화 된 데이터를 복호화 하기 위한 기기 인증용 공개키를 포함할 수 있다. 기기 인증용 키 쌍은 기기 인증을 위한 정보로부터 기기 인증 데이터를 생성하는데 이용되는 것으로 전자 서명 생성을 위한 키 쌍과는 서로 다른 것일 수 있다. 기기 인증용 키 쌍은 사용자 단말(200)에 의해 생성된 것이거나 전자 서명 서비스 서버(100)가 사용자 단말(200)에게 제공한 것일 수 있다.
프로세서(240)는 기기 인증용 키 쌍에 포함된 기기 인증용 개인키를 이용하여 기기 인증 데이터를 생성할 수 있다. 사용자 단말(200)은 상기 기기 인증용 개인키를 이용하여 기기 인증을 위한 정보의 전부 또는 일부를 암호화 함으로써 기기 인증 데이터를 생성할 수 있다. 프로세서(240)는 RSA, Rabin 및 ECDSA(Elliptic Curve DSA) 알고리즘 중 적어도 하나를 이용하여 기기 인증을 위한 정보의 적어도 일부를 암호화 할 수 있다. 상술한 알고리즘들은 예시적인 것에 불과하며 실시예가 이에 제한되는 것은 아니다.
기기 인증용 키 쌍은 기기 인증 데이터를 생성할 때 마다 새롭게 갱신될 수 있다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 기기 인증용 키 쌍은 소정의 횟수만큼 반복 사용된 후, 폐기될 수도 있다.
1540 단계에서, 사용자 단말(200)의 통신부(210)는 기기 인증용 키 쌍에 포함된 기기 인증용 공개키 및 기기 인증 데이터를 전자 서명 서비스 서버(100)에 전송할 수 있다.
1550 단계에서, 전자 서명 서비스 서버(100)의 통신부(110)는 사용자 단말(200)로부터 기기 인증용 공개키 및 기기 인증 데이터를 수신할 수 있다. 그리고, 전자 서명 서비스 서버(100)의 프로세서(120)는 상기 기기 인증용 공개키를 이용하여 기기 인증 데이터를 검증할 수 있다. 예시적으로, 프로세서(120)는 기기 인증용 공개키를 이용하여 기기 인증 데이터를 복호화 함으로써 기기 인증 데이터를 검증할 수 있다. 프로세서(120)는 기기 인증 데이터를 검증함으로써 사용자가 전자 서명의 생성 권한이 있는 지 여부를 판단할 수 있다.
도 7에서 나타낸 바와 같이, 사용자 단말(200)에서 수행되는 로컬 인증 및 사용자 단말(200)과 전자 서명 서비스 서버(100) 사이에서 이루어지는 원격 인증이 병행하여 이루어 짐으로써, 사용자 인증에 대한 보안이 강화될 수 있다. 또한, 사용자 단말(200)이 기기 인증을 위한 정보를 기기 인증 데이터로 변조하여 전자 서명 서비스 서버(100)에 전송함으로써, 상기 기기 인증을 위한 정보가 외부 장치에 의해 탈취되는 것을 방지할 수 있다.
1510 단계에서 나타낸 로컬 인증 과정은 다양한 방식으로 이루어질 수 있다. 예를 들어, 사용자 단말(200)의 로컬 인증부(220)는 캡챠를 생성할 수 있다. 캡챠는 컴퓨터가 구별하기 어려운 왜곡된 문자 또는 숫자 이미지를 포함할 수 있다. 또한, 캡챠는 문자 또는 숫자를 읽어주는 음성에 잡음을 섞은 음성 파일을 포함할 수도 있다. 그리고, 사용자 단말(200)은 상기 캡챠를 이용하여 사용자 인증이 기계가 아닌 사람에 의해 이루어지는 것임을 확인할 수 있다.
또한, 사용자 단말(200)의 입력부는 사용자 인증을 위한 사용자의 입력 정보를 획득할 수 있다. 상기 사용자 입력 정보는 사용자가 입력하는 ID, 패스워드, PIN, 사용자의 생체 신호 등을 포함할 수 있다. 로컬 인증부(220)는 입력부가 입력 받은 상기 사용자 입력 정보를 검증함으로써 로컬 인증을 수행할 수 있다. 로컬 인증이 완료되면, 원격 인증 절차가 진행될 수 있다.
다시 도 6을 참조하면, 1210, 1212 및 1214 단계에서 사용자 인증이 완료되고 나면, 사용자 단말(200)과 전자 서명 서비스 서버(100)는 전자 서명 서비스와 관련된 데이터 및 정보를 서로 송수신할 수 있다. 1224, 1228 단계 등에서 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이에서 송수신 되는 데이터 및 정보는 전자 서명의 도용 방지 및 사용자의 프라이버시 보호를 위해 외부에 공개되는 것을 방지할 필요가 있다.
도 8은 도 6에서 나타낸 전자 서명 서비스 방법에서 보안 통신 세션을 생성하는 단계(1220)가 추가된 예를 나타낸 흐름도이다. 도 8의 실시예를 설명 함에 있어서, 도 6과 중복되는 내용은 생략하기로 한다.
도 8을 참조하면, 전자 서명 서비스 시스템(1000)의 전자 서명 서비스 방법은 보안 통신 세션을 생성하는 단계(1220)를 포함할 수 있다.
1120 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 사용자 단말(200) 사이에 송수신 되는 데이터 및 정보를 암호화 하기 위한 세션키 및 토큰을 생성할 수 있다. 세션키는 상기 보안 통신 세션에서 송수신 되는 데이터 및 정보를 암호화하기 위한 키를 의미한다. 또한, 토큰은 상기 보안 통신 세션에서 데이터 및 정보를 수신하고 전송할 수 있는 권한을 나타내는 메시지의 일종이다.
전자 서명 서비스 서버(100)의 프로세서(120)는 상기 세션키 및 토큰을 생성하고 상기 세션키 및 토큰을 사용자 단말(200)과 공유함으로써 보안 통신 세션을 생성할 수 있다. 보안 통신 세션이 생성되면, 전자 서명 서비스 서버(100)와 사용자 단말(200)은 각각 송신하는 정보 및 데이터에 상기 토큰을 함께 첨부함으로써, 상기 보안 통신 세션을 이용할 권한이 있음을 인증할 수 있다. 또한, 전자 서명 서비스 서버(100)는 사용자 단말(200)로부터 수신한 토큰을 검증함으로써 사용자가 전자 서명을 생성할 권한이 있는지 여부를 판단할 수 있다. 또한, 전자 서명 생성 모듈(140)은 저장부(130)에 저장된 개인키들 가운데 상기 토큰에 대응하는 개인키가 무엇인지를 결정하고, 상기 토큰에 대응하는 개인키를 이용하여 사용자의 전자 서명을 생성할 수 있다.
상기 보안 통신 세션을 통해 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이에서 송수신 되는 정보 및 데이터는 상기 세션키에 의해 암호화 될 수 있다. 예를 들어, 1224 단계에서 사용자 단말(200)은 서명 대상 데이터 및 전자 서명 요청을 상기 세션키로 암호화 하여 전자 서명 서비스 서버(100)에 전송할 수 있다. 그리고, 전자 서명 서비스 서버(100)의 프로세서(120)는 상기 세션키를 이용하여 상기 암호화 된 전자 서명 요청 및 서명 대상 데이터를 복호화 할 수 있다.
마찬가지로, 1228 단계에서 전자 서명 서비스 서버(100)의 프로세서(120)는 사용자의 전자 서명 및 인증서 데이터를 상기 세션키로 암호화 하여 사용자 단말(200)에 전송할 수 있다. 그리고, 사용자 단말(200)의 프로세서(240)는 상기 세션키를 이용하여 상기 암호화 된 전자 서명 및 인증서 데이터를 복호화 할 수 있다.
도 8을 참조하여 설명한 실시예에 따르면, 1220 단계에서 생성된 세션키를 이용하여 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이에서 송수신되는 데이터 및 정보를 암호화 할 수 있다. 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이에서 송수신되는 데이터 및 정보를 암호화 함으로써 사용자의 전자 서명이 탈취되는 것을 방지할 수 있다. 또한, 사용자의 전자 서명 서비스 이용 정보가 외부로 유출되는 것을 방지할 수 있다.
도 9는 도 8에서 나타낸 보안 통신 세션 생성 단계(1220)가 수행되는 과정을 예시적으로 나타낸 흐름도이다.
1610 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키 및 토큰을 생성할 수 있다.
1612 단계에서, 프로세서(120)는 세션키 및 토큰을 암호화 할 수 있다. 세션키 및 토큰은 다양한 방법으로 암호화 될 수 있다. 예를 들어, 프로세서(120)는 도 7에서 나타낸 1540 단계에서 획득한 기기 인증용 공개키를 이용하여 상기 세션키 및 토큰을 암호화 할 수 있다. 프로세서(120)는 RSA, Rabin 및 ECDSA(Elliptic Curve DSA) 알고리즘 중 적어도 하나를 이용하여 상기 세션키 및 토큰을 암호화 할 수 있다.
1614 단계에서, 전자 서명 서비스 서버(100)는 통신부(110)를 통해 암호화 된 세션키 및 토큰 데이터를 사용자 단말(200)에 전송할 수 있다.
1620 단계에서, 사용자 단말(200)의 프로세서(240)는 암호화 된 세션키 및 토큰 데이터를 복호화 할 수 있다. 예를 들어, 프로세서(240)는 도 7에서 나타낸 1520 단계에서 생성된 기기 인증용 개인키를 이용하여 상기 암호화 된 세션키 및 토큰 데이터를 복호화 할 수 있다.
1622 단계에서, 사용자 단말(200)의 프로세서(240)는 제1 난수를 생성할 수 있다. 상기 제1 난수는 사용자 단말(200)에 의해 랜덤으로 생성되는 숫자 배열을 의미한다.
1624 단계에서, 사용자 단말(200)의 프로세서(240)는 세션키를 이용하여 제1 난수로부터 유도하여 단말 인증 데이터를 생성할 수 있다. 예시적으로, 프로세서(240)는 세션키를 이용하여 제1 난수를 암호화 함으로써 단말 인증 데이터를 생성할 수 있다. 상기 단말 인증 데이터는 제1 난수의 암호화 결과의 전부 또는 일부를 포함할 수 있다.
1626 단계에서, 사용자 단말(200)은 통신부(210)를 통해 제1 난수 및 제1 난수로부터 생성된 단말 인증 데이터를 전자 서명 서비스 서버(100)에게 전송할 수 있다.
1630 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키를 이용하여 단말 인증 데이터를 검증 할 수 있다. 프로세서(120)는 1624 단계와 동일한 과정을 통하여 제1 난수로부터 세션키를 이용하여 생성한 데이터와 사용자 단말(200)로부터 수신한 단말 인증 데이터를 비교함으로써, 단말 인증 데이터를 검증할 수 있다. 프로세서(120)는 단말 인증 데이터를 검증함으로써, 사용자 단말(200)이 세션키 및 토큰을 획득했다는 것을 확인할 수 있다.
1632 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 단말 인증 데이터의 검증이 완료되면, 제2 난수를 생성할 수 있다.
1634 단계에서, 전자 서명 서비스 서버(100) 프로세서(120)는 세션키를 이용하여 제2 난수로부터 유도하여 서버 인증 데이터를 생성할 수 있다. 예시적으로, 프로세서(120)는 세션키를 이용하여 제2 난수를 암호화 함으로써 서버 인증 데이터를 생성할 수 있다. 상기 서버 인증 데이터는 제2 난수의 암호화 결과의 전부 또는 일부를 포함할 수 있다.
1636 단계에서, 전자 서명 서비스 서버(100)는 통신부(110)를 통해 제2 난수 및 서버 인증 데이터를 사용자 단말(200)에게 전송할 수 있다.
1640 단계에서, 사용자 단말(200)의 프로세서(240)는 세션키를 이용하여 서버 인증 데이터를 검증할 수 있다. 프로세서(240)는 1634 단계와 동일한 과정을 통하여 생성된 데이터와 전자 서명 서비스 서버(100)로부터 수신한 서버 인증 데이터를 비교함으로써, 상기 서버 인증 데이터를 검증할 수 있다. 프로세서(240)는 서버 인증 데이터를 검증함으로써, 세션키 및 토큰이 전자 서명 서비스 서버(100)에 의해 생성되었다는 것을 확인할 수 있다.
상술한 단말 인증 데이터 및 서버 인증 데이터에 대한 검증이 완료되면, 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이에 보안 통신 세션이 생성될 수 있다. 전자 서명 서비스 서버(100)와 사용자 단말(200)은 상기 세션키를 이용하여 송수신 데이터를 암호화 할 수 있다. 전자 서명 서비스 서버(100)와 사용자 단말(200) 사이의 송수신 데이터가 암호화 됨에 따라 전자 서명 서비스의 보안이 향상될 수 있다.
도 9에서는 서버 인증 데이터 및 단말 인증 데이터가 제1 및 제2 난수로부터 생성되는 것을 예시적으로 나타냈지만 실시예가 이에 제한되는 것은 아니다. 예를 들어, 단말 인증 데이터는 사용자 단말(200)에 저장된 다른 인증 정보로부터 생성될 수 있다. 또한, 서버 인증 데이터는 전자 서명 서비스 서버(100)에 저장된 다른 인증 정보로부터 생성될 수도 있다.
도 10은 상기 보안 통신 세션을 이용하여 전자 서명 서비스 서버(100)와 사용자 단말(200)이 데이터를 송수신 하는 것을 나타낸 흐름도이다.
1712 단계에서, 사용자 단말(200)의 프로세서(240)는 전자 서명 서비스 서버(100)에게 전송하고자 하는 단말 송신 데이터를 생성할 수 있다. 상기 단말 송신 데이터는 사용자 단말(200)로부터 전자 서명 서비스 서버(100)로 송신되는 데이터를 의미한다. 예를 들어, 단말 송신 데이터는 전자 서명의 요청, 서명 대상 데이터 등을 포함할 수 있다.
1714 단계에서, 사용자 단말(200) 의 프로세서(240)는 세션키를 이용하여 상기 단말 송신 데이터를 암호화 할 수 있다.
1716 단계에서, 사용자 단말(200)은 통신부(210)를 통해 암호화 된 단말 송신 데이터를 전송할 수 있다.
1720 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 통신부(110)가 수신한 상기 암호화 된 단말 송신 데이터를 복호화 할 수 있다. 프로세서(120)는 세션키를 이용하여 상기 암호화 된 단말 송신 데이터를 복호화 할 수 있다.
1722 단계에서, 상기 단말 송신 데이터가 소정의 서비스를 요청하는 서비스 요청을 포함하는 경우, 전자 서명 서비스 서버(100)는 상기 요청을 처리할 수 있다. 예를 들어, 단말 송신 데이터에 전자 서명 생성의 요청이 포함된 경우, 전자 서명 서비스 서버(100)는 사용자의 전자 서명 생성을 진행할 수 있다.
1724 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)에게 전송하고자 하는 서버 송신 데이터를 생성할 수 있다. 상기 서버 송신 데이터는 전자 서명 서비스 서버(100)로부터 사용자 단말(200)로 송신되는 데이터를 의미한다. 예를 들어, 서버 송신 데이터는 전자 서명, 인증서 데이터 등을 포함할 수 있다.
1726 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키를 이용하여 상기 서버 송신 데이터를 암호화 할 수 있다.
1730 단계에서, 전자 서명 서비스 서버(100)는 통신부(110)를 통해 암호화 된 서버 송신 데이터를 전송할 수 있다.
1732 단계에서, 사용자 단말(200)의 프로세서(240)는 통신부(210)가 수신한 상기 암호화 된 서버 송신 데이터를 복호화 할 수 있다. 프로세서(240)는 세션키를 이용하여 상기 암호화 된 서버 송신 데이터를 복호화 할 수 있다.
이상에서 예시적으로, 전자 서명 서비스 서버(100)가 미리 등록된 사용자의 개인키를 이용하여 전자 서명을 생성하고, 생성한 전자 서명을 사용자 단말(200)에게 제공하는 것에 관해 설명하였다.
이하에서는 전자 서명 서비스 서버에 사용자의 개인키를 등록하는 과정에 대해서 설명한다.
도 11a 및 도 11b은 도 1에서 나타낸 전자 서명 서비스 시스템(1000)에 의해 전자 서명 서비스가 제공되는 방법의 예시를 나타낸 흐름도이다. 도 11a 및 도 11b를 참조하면, 사용자가 발급 또는 갱신한 인증서에 대응하는 키 쌍의 적어도 일부가 전자 서명 서비스 서버(100)에 등록될 수 있다.
2110, 2112, 2114 단계에서 기기 인증이 이루어질 수 있다. 기기 인증 과정은 도 6 내지 도 8을 참조하여 설명한 실시예들에 따라 이루어질 수 있다.
2120 단계에서, 사용자 단말(200)은 전자 서명 서비스 서버(100)에게 사용자의 전자 서명 생성을 위한 키 쌍의 생성을 요청할 수 있다.
2122 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 사용자 단말(200)의 요청에 응답하여 키 쌍을 생성할 수 있다. 전자 서명 서비스 서버(100)는 상기 키 쌍에 포함된 개인키를 등록할 수 있다. 전자 서명 서비스 서버(100)는 상기 개인키를 저장부(130)의 제1 저장 공간(132)에 저장함으로써, 상기 개인키를 등록할 수 있다. 개인키는 전자 서명 서비스 서버(100) 외부로 공개되지 않을 수 있다. 상기 키 쌍에 포함된 공개키는 저장부(130)의 제2 저장 공간(134)에 저장될 수 있다. 다른 예로, 상기 공개키는 저장부(130)에 저장되지 않고, 사용자 단말(200)에게 전송될 수도 있다.
2124 단계에서, 전자 서명 서비스 서버(100)는 통신부(110)를 통해 사용자 단말(200)에게 키 쌍의 생성 결과, 즉, 키 쌍이 생성되었음을 알리는 메시지를 전송할 수 있다.
2126 단계에서, 사용자 단말(200)은 전자 서명 서비스 서버(100)에게 공개키를 전송해 줄 것을 요청할 수 있다.
2128 단계에서, 전자 서명 서비스 서버(100)는 통신부(110)를 통해 키 쌍에 포함된 공개키를 사용자 단말(200)에게 전송할 수 있다.
2130 단계에서, 사용자 단말(200)은 통신부(210)를 통해 개인키 소유여부 검증정보 및 개인키 소유여부 검증정보에 대한 전자 서명의 요청을 전자 서명 서비스 서버(100)에게 전송할 수 있다. 상기 개인키 소유여부 검증정보는 사용자의 정당한 개인키 소유여부를 검증하기 위한 목적으로 생성된 데이터로서 인증 서버(400)에서 요구하는 프로토콜에 따라 다르게 생성될 수 있다
2132 단계에서, 전자 서명 서비스 서버(100)의 전자 서명 생성 모듈(140)은 2122 단계에서 생성되어 등록된 사용자의 개인키를 이용하여 개인키 소유여부 검증정보에 대한 전자 서명을 생성할 수 있다. 예를 들어, 전자 서명 생성 모듈(140)은 상기 사용자의 개인키를 이용하여 개인키 소유여부 검증정보의 전부 또는 일부에 대한 전자 서명을 생성할 수 있다.
2134 단계에서, 전자 서명 서비스 서버(100)는 전자 서명 생성 모듈(140)이 생성한 개인키 소유여부 검증정보에 대한 전자 서명을 통신부(110)를 통해 사용자 단말(200)에게 전송할 수 있다.
2140 단계에서, 사용자 단말(200)의 프로세서(240)는 상기 키 쌍에 대응하는 인증서 데이터를 생성해줄 것을 요청하는 전문을 생성할 수 있다. 상기 인증서 데이터를 생성해줄 것을 요청하는 전문은 인증 서버(400)에서 요구하는 프로토콜에 따라 생성될 수 있다.
2142 단계에서, 사용자 단말(200)은 통신부(210)를 통해 상기 인증서 데이터를 생성해줄 것을 요청하는 전문을 공인 인증 기관이 운영하는 인증 서버(400)에 전송할 수 있다. 또한, 사용자 단말(200)은 전자 서명 서비스 서버(100)로부터 획득한 개인키 소유여부 검증정보에 대한 전자 서명을 인증 서버(400)에 전송할 수 있다.
2144 단계에서, 인증 서버(400)는 사용자 단말(200)로부터 수신한 개인키 소유여부 검증정보에 대한 전자 서명을 검증할 수 있다. 예를 들어, 인증 서버(400)는 공개키를 이용하여 상기 개인키 소유여부 검증정보에 대한 전자 서명을 검증할 수 있다. 인증 서버(400)는 개인키 소유여부 검증정보에 대한 전자 서명이 검증되면, 사용자가 개인키를 이용하여 전자 서명을 생성할 권한을 획득한 것으로 판단할 수 있다.
2144 단계에서, 그리고, 인증 서버(400)는 사용자 단말(200)로부터 수신한 인증서 데이터 생성 요청 전문에 응답하여 사용자의 인증서 데이터를 생성할 수 있다.
2146 단계에서, 인증 서버(400)는 사용자 단말(200)에게 인증서 데이터를 전송할 수 있다. 사용자 단말(200)은 인증 서버(400)로부터 수신한 인증서 데이터를 사용자 단말(200)의 메모리에 보관할 수도 있고, 보관하지 않을 수도 있다.
2148 단계에서, 사용자 단말(200)은 통신부(210)를 통해 상기 인증서 데이터를 전자 서명 서비스 서버(100)에 전송할 수 있다.
2150 단계에서, 전자 서명 서비스 서버(100)는 사용자 단말(200)로부터 수신한 인증서 데이터를 등록할 수 있다. 예시적으로, 전자 서명 서비스 서버(100)는 인증서 데이터를 저장부(130)의 제2 저장 공간(134)에 저장함으로써 인증서 데이터를 등록할 수 있다. 제2 저장 공간(134)에 저장된 인증서 데이터는 프로세서(120)가 이용할 수 있으며, 통신부(110)를 통해 사용자 단말(200)에게 전송될 수도 있다.
도 11에서는 신규로 생성되는 키 쌍이 전자 서명 서비스 서버(100)에 등록되는 것을 예시적으로 나타냈지만 실시예가 이에 제한되는 것은 아니다. 예를 들어, 사용자는 사용자 단말(200)에 미리 저장된 개인키 및 인증서 데이터를 전자 서명 서비스 서버(100)에 이동시킴으로써, 전자 서명 서비스 서버(100)에 개인키 및 인증서 데이터를 등록할 수 있다.
도 12는 사용자 단말(200)에 저장된 개인키 및 인증서 데이터를 전자 서명 서비스 서버(100)에 이동시키는 과정을 예시적으로 나타낸 흐름도이다.
2310, 2312, 2314 단계에서 사용자 인증이 이루어질 수 있다. 사용자 인증 과정은 도 6 내지 도 8을 참조하여 설명한 실시예들에 따라 이루어질 수 있다.
2320 단계에서, 사용자 단말(200)의 프로세서(240)은 사용자 단말(200)에 저장된 개인키를 암호화 할 수 있다. 프로세서(240)는 도 10에서 나타낸 1610 단계에서 생성된 세션키를 이용하여 사용자 단말(200)에 저장된 개인키를 암호화 할 수 있다.
2322 단계에서, 사용자 단말(200)은 통신부(210)를 통해 암호화 된 개인키를 전자 서명 서비스 서버(100)에게 전송할 수 있다.
2324 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 도 10에서 나타낸 1610 단계에서 생성된 세션키를 이용하여 암호화 된 개인키를 복호화 할 수 있다. 또한, 전자 서명 서비스 서버(100)는 복호화 연산에 의해 획득된 개인키를 저장부(130)에 저장할 수 있다. 예시적으로, 전자 서명 서비스 서버(100)는 개인키를 제1 저장 공간(132)에 저장할 수 있다.
2330 단계에서, 사용자 단말(200)의 프로세서(240)는 사용자 단말(200)에 저장된 인증서 데이터를 암호화 할 수 있다. 프로세서(240)는 도 10에서 나타낸 1610 단계에서 생성된 세션키를 이용하여 사용자 단말(200)에 저장된 인증서 데이터를 암호화 할 수 있다.
2332 단계에서, 사용자 단말(200)은 통신부(210)를 통해 암호화 된 인증서 데이터와 암호화 된 공개키를 전자 서명 서비스 서버(100)에게 전송할 수 있다.
2334 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 도 10에서 나타낸 1610 단계에서 생성된 세션키를 이용하여 암호화 된 개인키를 복호화 할 수 있다. 또한, 전자 서명 서비스 서버(100)는 복호화 연산에 의해 획득된 인증서 데이터 및 공개키를 저장부(130)에 저장할 수 있다. 예시적으로, 전자 서명 서비스 서버(100)는 인증서 데이터 및 공개키를 제2 저장 공간(134)에 저장할 수 있다.
이상에서 도 1 내지 도 12를 참조하여 실시예들에 따른 전자 서명 서비스 시스템, 서버, 단말 및 방법에 관하여 설명하였다.
상술한 실시예들에 따르면, 전자 서명 생성을 위한 개인키를 전자 서명 서비스 서버에서 등록 및 관리함으로써 사용자가 개인키가 저장된 매체를 소지하지 않아도 되는 효과가 발생한다. 또한, 개인키가 저장된 매체가 도용되는 것을 방지할 수 있다.
또한, 전자 서명 서비스 서버(100)에 저장된 개인키를 전자 서명 생성 모듈 외에 다른 장치가 확인 및 복제하는 것을 차단함으로써, 사용자의 개인키에 대한 보안이 향상될 수 있다.
한편, 전자 서명 서비스 서버(100)가 전자 서명을 사용자 단말에 안전하게 전송하기 위해 사용자 단말이 전자 서명 서비스 서버(100)에 접근 가능한 권한을 가지고 있어야 한다. 예를 들어, 전자 서명 서비스 서버(100)는 주기기 또는 추가 기기로 등록된 사용자 단말에게만 전자 서명을 제공할 수 있다. 이하, 사용자 단말을 주기기 또는 추가 기기로 등록하는 방법에 대해 설명한다.
도 13은 일 실시예에 따른 전자 서명 서비스 서버(100)에 주기기로 등록하는 방법을 설명하는 흐름도이다. 하나 이상의 사용자 단말은 전자 서명을 수신받을 수 있는 기기로 전자 서명 서비스 서버(100)에 등록할 수 있다. 이하 설명의 편의를 도모하기 위해 제1 사용자 단말(210)을 주기기로 등록하는 방법을 설명한다. 주기기라 함은 전자 서명을 받을 수 있는 메인 사용자 단말을 의미한다.
2405단계에서 기기 등록 서버(500)는 전자 서명 서비스 서버(100)에 주기기 등록을 요청할 수 있다. 주기기를 등록하기 위해 사용자 단말은 기기 등록 서버(500)에 연결될 수 있다. 여기서 기기 등록 서버(500)는 전자 서명 서비스 서버의 전자 서명을 제공받을 수 있는 사용자 단말을 대신하여 서비스 서버에 기기 등록을 요청하는 서버이다. 기기 등록 서버(500)는 전자 서명을 이용하는 이용 서버(300)일 수도 있으나, 이에 한정되지 않는다. 이용 서버(300) 및 서비스 서버(100)와 별도의 서버일 수도 있다. 기기 등록 서버(500). 기기 등록 서버(500)는 정보를 포함한 웹화면을 사용자 단말에 제공할 수 있다. 여기서 웹화면을 표시하는 사용자 단말을 제2 사용자 단말이라고 한다. 제2 사용자 단말은 사용자의 데스크탑 컴퓨터일 수 있다. 상기한 웹화면에는 전자 서명을 전자 서명 서비스 서버(100)로부터 수신할 것인지 여부 또는 사용자 단말이 주기기로 등록되어 있는지 여부를 문의하는 팝업창 등을 포함할 수 있다.
전자 서명 서비스 서버(100)에 주기기 등록된 사용자 단말이 없는 경우, 사용자는 주기기를 등록하고자 하는 명령을 제2 사용자 단말(미도시)을 통해 입력할 수 있고, 제2 사용자 단말은 상기한 요청을 기기 등록 서버(500)에 전송할 수 있다. 그리하여, 기기 등록 서버(500)는 전자 서명 서비스 서버(100)에 주기기 등록을 요청할 수 있다. 한편, 사용자 단말이 기등록되어 있으면, 앞서 기술한 방식으로 전자 서명이 제공될 수 있다.
기기 등록 서버(500)는 전자 서명 서비스 서버(100)에 주기기 등록을 요청하기 전에 주기기 소유자에 대한 신원 확인을 수행할 수 있다. 구체적으로, 사용자 확인을 위한 대행 기관, 예를 들어, 통신사를 통해 사용자 본인 확인을 수행한 후, 사용자 인증이 완료된 경우에 한하여 주기기 등록을 요청할 수도 있다.
기기 등록 서버(500)로부터 주기기 등록을 요청받으면, 2410 단계에서 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키 파라미터를 생성할 수 있다. 세션키는 상기 보안 통신 세션에서 송수신 되는 데이터 및 정보를 암호화하기 위한 키를 의미하는 것으로 기설정된 알고리즘에 의해 생성될 수 있으며, 세션키 파라미터는 세션키를 생성하기 위한 소스이다.
2415단계에서, 전자 서명 서비스 서버(100)는 주기기 등록용 토큰을 생성할 수 있다. 토큰은 상기 보안 통신 세션에서 데이터 및 정보를 수신하고 전송할 수 있는 권한을 나타내는 메시지의 일종으로서 주기기 등록용 토큰은 주기기를 등록하기 위해 이용되는 토큰이다.
전자 서명 서비스 서버(100)는 생성된 세션키 파라미터 및 주기기 등록용 토큰을 기기 등록 서버(500)에 전송한다.
2420 단계에서, 기기 등록 서버(500)은 세션키 파라미터 및 주기기 등록용 토큰을 포함하는 정보를 생성할 수 있다. 상기한 정보는 이미지 코드, 문자열, 숫자열 중 적어도 하나의 형식일 수 일 수 있다. 여기서 이미지 코드는 QR 코드, 데이터 매트릭스(Data Matrix), 맥시 코드(Maxi Code), 컬러 코드(Color Code), 그레이 코드(Cray Code), 바코드(bar code) 중 적어도 하나일 수 있다.
2425단계에서, 제1 사용자 단말(210)은, 오프라인 방법으로, 기기 등록 서버(500)로부터 세션키 파라미터 및 주기기 등록용 토큰을 획득한다.
그리고, 2430단계에서, 제1 사용자 단말(210)은 센션키 파라미터 및 주기기 등록용 토큰을 이용하여 전자 서명 서비스 서버(100)에 주기기로 등록한다.
도 14는 일 실시예에 따른 주기기를 등록하는 구체적인 방법을 설명하는 흐름도이다.
2505단계에서, 기기 등록 서버(500)는 센션키 파라미터 및 주기기 등록용 토큰을 포함하는 이미지 코드를 생성할 수 있다. 그리고, 상기한 이미지 코드를 제2 사용자 단말에 전송한다. 제2 사용자 단말은 이미지 코드를 표시할 수 있다.
2510단계에서, 제1 사용자 단말(210)은 제2 사용자 단말에 표시된 이미지 코드를 촬영하여 인식함으로써 이미지 코드에 포함된 세션키 파라미터 및 주기기 등록용 토큰을 획득할 수 있다. 상기와 같이, 세션키가 아닌 세션키 파라미터가 기기 등록 서버를 통해 제1 사용자 단말에 전송되기 때문에 세션키가 노출되는 것을 방지할 수 있고, 해킹의 가능성을 줄일 수 있다.
2515단계에서 제1 사용자 단말(210)은 주기기 등록용 토큰을 이용하여 제1 사용자 단말(210)의 기기 토큰을 생성할 수 있다. 그리고, 생성된 제1 사용자 단말(210)의 기기 토큰을 전자 서명 서비스 서버(100)에 전송할 수 있다.
2520단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 주기기 등록용 토큰을 이용하여 제1 사용자 단말(210)의 기기 토큰을 검증할 수 있다. 즉, 전자 서명 서비스 서버(100)는 제1 사용자 단말(210)에서와 동일한 방법으로 주기기 등록용 토큰을 이용하여 기기 토큰을 생성하고, 그 결과가 제1 사용자 단말(210)로부터 수신한 기기 토큰과 비교하여 일치하는지 여부를 기준으로 검증을 수행할 수 있다. 그리고, 검증 결과를 제1 사용자 단말(210)에 전송할 수 있다.
제1 사용자 단말(210)의 기기 토큰에 대한 검증이 완료되면, 2525단계에서 제1 사용자 단말(210)은 주기기용 키 쌍을 생성한다. 주기기용 키 쌍은 주기기임을 나타내는 키 쌍으로서 개인키와 공개키를 포함할 수 있다.
그리고, 2530단계에서, 제1 사용자 단말(210)은 획득된 세션키 파라미터로 세션키를 생성할 수 있다.
2535단계에서, 제1 사용자 단말(210)은 세션키로 주기기용 키 쌍의 공개키와 제1 사용자 단말(210)의 기기 정보를 암호화할 수 있다. 그리고, 암호화된 주기기용 키 쌍의 공개키와 제1 사용자 단말(210)의 기기 정보를 전자 서명 서비스 서버(100)에 전송할 수 있다.
2540단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 제1 사용자 단말(210)을 주기기로 등록할 수 있다. 구체적으로, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키 파라미터로 세션키를 생성한 후, 세션키로 암호화된 주기기용 키 쌍의 공개키와 제1 사용자 단말(210)의 기기 정보를 복호화하고, 주기기용 키 쌍의 공개키와 제1 사용자 단말(210)의 기기 정보를 저장부(130)에 저장할 수 있다. 즉, 전자 서명 서비스 서버(100)는 제1 사용자 단말(210)의 기기 정보와 주기기용 키 쌍의 공개키를 매칭시켜 저장함으로써 제1 사용자 단말(210)을 주기기로 등록할 수 있다. 전자 서명 서비스 서버(100)는 제1 사용자 단말(210)이 주기기로 등록되었음을 알리는 등록 결과를 제1 사용자 단말(210)에 전송할 수 있다.
2545단계에서, 제1 사용자 단말(210)은 주기기용 키 쌍의 개인키와 제1 사용자 단말(210)의 기기 정보를 암호화하여 저장할 수 있다. 주기기용 키 쌍의 개인키와 제1 사용자 단말(210)의 기기 정보를 암호화할 때, 제1 사용자 단말(210)은 1차적으로 사용자의 개인 식별 번호(Personal Identification Number:PIN) 및 생체 정보 중 적어도 하나에 기초하여 암호화할 수 다. 개인 식별 번호 및 생체 정보 중 적어도 하나를 직접적으로 사용하여 암호할 수도 있고, 개인 식별 번호 및 생체 정보 중 적어도 하나로부터 유도된 키를 이용하여 암호화할 수 있다. 또한, 암호화된 주기기용 키 쌍의 개인키와 제1 사용자 단말(210)의 기기 정보를, 전자 서명 서비스 서버(100)가 생성된 난수와 제1 사용자 단말(210)이 생성한 난수로 구성된 키를 이용하여 2차적으로 암호화될 수 있다. 난수들로 구성된 키로 암호화할 때, 전자 서명 서비스 서버(100)에서 생성된 난수는 제1 사용자 단말(210)에 저장되지 않고 삭제될 수 있으며, 추후 전자 서명 서비스 서버(100)로부터 난수를 수신받거나 전자 서명 서비스 서버(100)가 암호화된 주기기용 키 쌍의 개인키와 제1 사용자 단말(210)의 기기 정보를 제1 사용자 단말(210)로부터 수신받아 암호화를 해제할 수도 있다.
상기한 암호화 방법은 이중으로 암호화하는 방법에 대해 설명하였으나, 이에 한정되지 않는다. 상기한 암호화 방법 중 어느 하나만으로 암호화될 수 있고, 암호화 방법의 순서가 바뀌어도 무방하다.
도 14에서 방법으로 제2 사용자 단말에 표시된 이미지 코드를 제1 사용자 단말(210)이 인식한다고 하였으나, 이에 한정되지 않는다. 다양한 오프 라인 방법으로 제1 사용자 단말(210)은 세션키 파라미터 및 주기기 등록용 토큰을 획득할 수 있다. 예를 들어, 전자 서명 서버(100)는 세션키 파라미터 및 주기기 등록용 토큰에 대응하는 문자열 또는 숫자열 등을 다른 서버, 예를 들어, 이메일 서버에 전송할 수 있고, 사용자는 상기한 이메일 서버에 접속하여 문자열 또는 숫자열을 확인한 후, 상기한 문자열 또는 숫자열을 직접(오프라인 방법으로) 제1 사용자 단말(210)에 입력함으로써 세션키 파리미터 및 주기기 등록용 토큰을 획득할 수 있다. 제1 사용자 단말(210)이 전자 서명 서비스 서버(100)에 주기기로 등록되어 있으면, 제1 사용자 단말(210)은 전자 서명 서비스 서버(100)로부터 전자 서명 또는 인증서 데이터를 수신받을 수 있다. 전자 서명 또는 인증서 데이터를 수신받기 전에 제1 사용자 단말(210)은 전자 서명 서버(100)에 접근 가능한 기기임을 인증하는 기기 인증 절차를 수행하여야 한다.
도 15는 일 실시예에 따른 제1 사용자 단말(210)이 주기기 인증을 수행하는 절차를 설명하는 흐름도이다.
2605단계에서, 전자 서명 서비스 서버(100)로부터 전자 서명을 수신받기 위해, 제1 사용자 단말(210)은 전자 서명 서비스 서버(100)에게 주기기 인증을 요청할 수 있다. 상기한 주기기 인증의 요청에서는 제1 사용자 단말(210)의 기기 정보가 포함될 수 있다.
한편, 제1 사용자 단말(210)이 전자 서명 서비스 서버(100)에 기기 인증을 요청하기 전에, 제1 사용자 단말(210)은 사용자 인증을 수행할 수 있다. 예를 들어, 사용자의 개인 식별 번호 또는 생체 정보를 이용하여 사용자 인증이 수행될 수 있다.
2610단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 제1 사용자 단말(210)의 기기 정보를 바탕으로 제1 사용자 단말(210)이 등록된 기기인지 여부를 확인할 수 있다.
제1 사용자 단말(210)이 등록된 기기인 것으로 확인되면, 2615 단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키 및 주기기 인증용 토큰을 생성할 수 있다.
2620단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 기저장된 주기기용 키 쌍의 공개키로 상기한 세션키 및 주기기 인증용 토큰을 암호화한다 그리고, 암호화된 세션키 및 주기기 인증용 토큰을 제1 사용자 단말(210)에 전송한다.
2625단계에서, 제1 사용자 단말(210)은 주기기용 키 쌍의 개인키를 이용하여 암호화된 세션키 및 주기기 인증용 토큰을 복호화할 수 있다. 제1 사용자 단말(210)에는 주기기용 키 쌍의 개인키가 암호화되어 저장되어 있을 수 있다. 제1 사용자 단말(210)의 주기기용 키 쌍의 개인키가 전자 서명 서비스 서버(100)가 생성한 난수와 제1 사용자 단말(210)이 생성한 난수로 구성된 키를 이용하여 2차적으로 암호화 된 경우 2620단계에서, 전자서명 서비스 서버(100)는 암호화된 세션키 및 토큰과 더불어 난수를 추가로 전송할 수 있다. 제1 사용자 단말(210)은 전자서명 서비스 서버(100)로부터 수신한 난수와 제1 사용자 단말(210)에 저장된 난수로 키를 구성하여 암호화되어 저장된 주기기용 키 쌍의 개인키를 독출하고 복호화할 수 있다. 그리고, 복호화된 주기기용 키 쌍의 개인키를 이용하여 암호화된 세션키 및 주기기 인증용 토큰을 복호화할 수 있다
그리고, 2630단계에서, 주기기 인증용 토큰 및 주기기용 키 쌍의 개인키를 이용하여 주기기 인증 데이터를 생성한다. 그리고, 생성된 주기기 인증 데이터를 전자 서명 서비스 서버(100)에 전송할 수 있다. 주기기 인증 데이터는 제1 사용자 단말(210)를 주기기로 인증하기 위해 필요한 정보를 포함한 데이터일 수 있다.
2635단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 주기기 인증용 토큰과 주기기용 키 쌍의 공개키로 상기한 주기기 인증 데이터를 검증함으로써 제1 사용자 단말(210)이 등록된 기기인지 여부를 인증할 수 있다.
제1 사용자 단말(210)이 등록된 기기인 것으로 검증되면, 앞서 기술한 바와 같이, 전자 서명 서비스 서버(100)는 제1 사용자 단말(210)의 요청에 따라 전자 서명을 제공할 수 있다.
한편, 사용자는 전자 서명 서비스 서버(100)에 주기기 이외에 추가 기기도 등록할 수 있다. 주기기는 전자 서명 서비스 서버(100)에 언제든지 접근할 수 있는 사용자 단말인 반면, 추가 기기는 일정한 조건하에서만 전자 서명 서비스 서버(100)에 접속하는 기기일 수 있다. 예를 들어, 추가 기기는 특정 이용 서버(예를 들어, 특정 인터넷 쇼핑몰 운영 서버)의 인증을 수행할 때에만 이용될 수 있는 기기이거나 일정 시간 동안만 전자 서명 서비스 서버(100)에 접근할 수 있는 기기일 수 있다. 추가 기기는 주기기를 통해 전자 서명 서비스 서버(100)에 등록할 수 있다. 전자 서명 서비스 서버(100)는 등록된 추가 기기에도 전자 서명을 제공할 수 있다.
도 16a 및 도 16b는 일 실시예에 따른 추가 기기 등록하는 방법을 설명하는 흐름도이다.
2705단계에서 제3 사용자 단말(230)은 제3 사용자 단말(230)의 기기 정보를 획득할 수 있다. 제3 사용자 단말(230)은 제3 사용자 단말(230)의 저장부에 저장된 기기 정보를 독출함으로써 기기 정보를 획득할 수 있다.
2710단계에서, 제3 사용자 단말(230)은 추가 기기용 키 쌍을 생성할 수 있다.
2715단계에서 제3 사용자 단말(230)은 제3 사용자 단말(230)의 기기 정보 및 추가 기기용 키 쌍의 공개키를 포함하는 이미지 코드를 생성할 수 있다. 그리고, 제3 사용자 단말(230)은 상기한 이미지 코드를 표시할 수 있다.
2720단계에서, 주기기인 제1 사용자 단말(210)은, 상기한 이미지 코드를 촬영하여 이미지 코드를 인식함으로써, 이미지 코드로부터 제3 사용자 단말(230)의 기기 정보 및 추가 기기용 키 쌍의 공개키를 획득할 수 있다. 즉, 제1 사용자 단말(210)은 제3 사용자 단말(230)로부터, 오프 라인 방식으로 제3 사용자 단말(230)의 기기 정보 및 추가 기기용 키 쌍의 공개키를 획득할 수 있다. 이미지 코드를 인식하는 방법 이외의 오프 라인 방법으로 기기 정보 및 추가 기기용 키 쌍의 공개키를 획득할 수도 있다.
그리고, 2725단계에서, 제1 사용자 단말(210)은 전자 서명 서비스 서버(100)와 주기기임을 인증하는 주기기 인증 절차를 수행할 수 있다. 주기기 인증 방법은 도 15에 개시되어 있으므로 구체적인 설명은 생략한다.
2730단계에서, 제1 사용자 단말(210)은 주기기 인증 과정에서 획득한 세션키로 제3 사용자 단말(230)의 기기 정보 및 추가 기기용 키 쌍의 공개키를 암호화할 수 있다. 그리고, 암호화된 제3 사용자 단말(230)의 기기 정보 및 추기 기기용 키 쌍의 공개키를 전자 서명 서비스 서버(100)에 전송할 수 있다.
2735단계에서, 전자 서명 서비스 서버(100)의 프로세서(120)는 세션키로 제3 사용자 단말(230)의 기기 정보 및 추가 기기용 키 쌍의 공개키를 복호화할 수 있다.
그리고, 2740단계에서 제3 사용자 단말(230)의 기기 정보와 추가 기기용 키 쌍의 공개키를 등록할 수 있다. 즉, 전자 서명 서비스 서버(100)는 제3 사용자 단말(230)의 기기 정보와 추가 기기용 키 쌍의 공개키를 매칭시켜 저장함으로써 제3 사용자 단말(230)을 추가 기기로 등록할 수 있다. 그리고, 전자 서명 서비스 서버(100)는 제3 사용자 단말(230)이 추가 기기로 등록되었음을 알리는 등록 결과를 주기기인 제1 사용자 단말(210)에 전송할 수 있다.
한편, 전자 서명 서비스 서버(100)는 제3 사용자 단말(230)의 기기 인증을 수행할 수 있다. 2745단계에서, 전자 서명 서비스 서버(100)는 추가 기기 등록용 토큰을 생성하고, 추가 기기 등록용 토큰을 제3 사용자 단말(230)에 전송할 수 있다.
2750단계에서, 제3 사용자 단말(230)은 추가 기기 등록용 토큰과 추가 기기용 키 쌍의 개인키를 이용하여 추가 기기 인증 데이터를 생성할 수 있다. 상기한 추가 기기 인증 데이터에는 제3 사용자 단말(210)의 기기에 부여된 고유 식별번호, 기기 정보, 사용자가 전자 서명 서비스 서버(100)에 가입할 때 제1 사용자 단말(230)에 부여된 ID 등의 전부 또는 일부, 또는 상기한 정보들의 변조된 정보 가 포함되어 있을 수 있다. 제3 사용자 단말(230)은 추가 기기 인증 데이터를 전자 서명 서비스 서버(100)에 전송한다.
2755단계에서, 전자 서명 서비스 서버(100)는 추가 기기 인증 데이터를 검증할 수 있고, 검증 결과를 제3 사용자 단말(230)에 전송할 수 있다.
검증이 완료되면, 2760단계에서, 전자 서명 서비스 서버(100)은 추가 기기의 등록을 완료할 수 있다. 즉, 전자 서명 서비스 서버(100)는 제1 사용자 단말(100)을 통해 제3 사용자 단말(230)을 추가 기기로 등록하지만, 제3 사용자 단말(230)의 추가 기기 인증을 수행함으로써 추가 기기 등록을 완료할 수 있다.
추가 기기로의 등록이 완료되면, 2765단계에서, 제3 사용자 단말(230)은 추가 기기용 키 쌍의 개인키와 제3 사용자 단말(230)의 기기 정보를 암호화하여 저장할 수 있다. 추가 기기용 키 쌍의 개인키와 제3 사용자 단말(230)의 기기 정보를 암호화할 때, 제3 사용자 단말(230)은 사용자의 개인 식별 번호 및 생체 정보 중 적어도 하나를 이용하여 암호화될 수 있다. 또는 전자 서명 서비스 서버(100)가 생성된 난수와 제3 사용자 단말(230)이 생성한 난수로 구성된 키를 이용하여 암호화될 수 있다. 난수들로 구성된 키로 암호화할 때, 전자 서명 서비스 서버(100)에서 생성된 난수는 제3 사용자 단말(230)에 저장되지 않고 삭제될 수 있으며, 추후 전자 서명 서비스 서버(100)로부터 난수를 수신받거나 전자 서명 서비스 서버(100)가 암호화된 추가 기기용 키 쌍의 개인키와 제3 사용자 단말(230)의 기기 정보를 제3 사용자 단말(230)로부터 수신받아 암호화를 해제할 수도 있다.
제3 사용자 단말이 전자 서명 서비스 서버에 접속하기 위해서는, 제1 사용자 단말의 기기 인증과 마찬가지 방법으로 기기 인증을 수행하여야 한다. 제3 사용자 단말의 기기 인증은 제1 사용자 단말의 기기 인증과 유사하기 때문에 구체적인 설명은 생략한다.
앞서 기술한 바와 같이, 전자 서명에 접근할 수 있는 기기를 등록된 주기기 및 추가 기기로 한정함으로써 전자 서명을 안전하게 보호할 수 있다.
앞서 기술한 주기기 및 추가 기기 등록 방법 및 등록된 주기기 및 추가 기기를 인증하는 방법은 전자 서명 서비스를 이용하는데 한정되지 않는다. 보안이 요구되는 다양한 서비스에도 적용될 수 있음은 물론이다.
지금까지 기술한 전자 서명 서비스 서버(100)는 기기 인증, 서비스 운영, 및 키 관리를 수행한다고 하였다. 상기한 전자 서명 서비스 서버는 하나의 하드웨어 장치로 구현될 필요는 없다. 기능에 따라 분리된 서버들의 조합일 수도 있다. 예를 들어, 전자 서명 서비스 서버는 기기 인증을 위한 기기 인증 서버, 서비스 운용을 위해 서비스 운용 서버 및 키 관리를 위한 키 관리 서버의 조합일 수도 있다. 한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1000 : 전자 서명 서비스 시스템
100 : 전자 서명 서비스 서버
110 : 통신부
120 : 프로세서
130 : 저장부
132, 134 : 제1, 제2 저장 공간
140 : 전자 서명 생성 모듈
200 : 사용자 단말
210 : 통신부
220 : 로컬 인증부
230 : 입력부
240 : 프로세서

Claims (14)

  1. 전자 서명 서비스 서버가 전자 서명을 제공하는 방법에 있어서,
    기기 등록 서버로부터 기기 등록의 요청을 수신하면, 전자 서명 서비스 서버는 세션키 파라미터 및 주기기 등록용 토큰을 상기 기기 등록 서버에 전송하는 단계;
    상기 기기 등록 서버로부터, 오프 라인 방법으로, 제1 사용자 단말은 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 획득하고, 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 이용하여 상기 전자 서명 서비스 서버에 주기기로 등록하는 단계;
    상기 주기기로 등록된 상기 제1 사용자 단말로부터 상기 전자 서명의 요청을 수신하면, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 전자 서명을 생성하는 단계;
    상기 전자 서명 서비스 서버는 상기 전자 서명을 상기 제1 사용자 단말에게 전송하는 단계;
    제3 사용자 단말로부터, 오프 라인 방법으로, 상기 제1 사용자 단말은 상기 제3 사용자 단말의 기기 정보 및 추기 기기용 키 쌍의 공개키를 수신하는 단계;
    상기 제1 사용자 단말은, 상기 제3 사용자 단말의 기기 정보 및 추가 기기용 키 쌍의 공개키를 상기 전자 서명 서비스 서버에 전송하는 단계; 및
    상기 전자 서명 서비스 서버는 상기 제3 사용자 단말의 기기 정보 및 상기 추가 기기용 키 쌍의 공개키를 저장함으로써 상기 제3 사용자 단말을 추가 기기로 등록하는 단계; 를 포함하는 전자 서명 제공 방법.
  2. 제 1항에 있어서,
    상기 기기 등록 서버는 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 포함하는 이미지 코드를 생성하고, 상기 이미지 코드를 제2 사용자 단말에 전송하는 단계; 및
    상기 제2 사용자 단말을 상기 이미지 코드를 표시하는 단계;를 더 포함하고,
    상기 주기기로 등록하는 단계는,
    상기 제1 사용자 단말이 상기 제2 사용자 단말에 표시된 상기 이미지 코드를 촬영하여 인식함으로써 상기 세션키 파라미터 및 상기 주기기 등록용 토큰을 획득하는 전자 서명 제공 방법.
  3. 제 2항에 있어서,
    상기 이미지 코드는,
    QR 코드, 데이터 매트릭스(Data Matrix), 맥시 코드(Maxi Code), 컬러 코드(Color Code), 그레이 코드(Cray Code), 바코드(bar code) 중 적어도 하나인 전자 서명 제공 방법.
  4. 제 1항에 있어서,
    상기 주기기로 등록하는 단계는,
    상기 전자 서명 서비스 서버는 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말을 검증하는 단계;
    상기 검증이 완료되면, 상기 제1 사용자 단말은 주기기용 키 쌍을 생성하고, 상기 세션키 파라미터로 세션키를 생성한 후 상기 세션키로 상기 주기기용 키 쌍의 공개키 및 상기 제1 사용자 단말의 기기 정보를 암호화하여 상기 전자 서명 서비스 서버에 전송하는 단계; 및
    상기 전자 서명 서비스 서버는 암호화된 상기 주기기용 키 쌍의 공개키 및 상기 제1 사용자 단말의 기기 정보를 복호화하여 저장함으로써 상기 제1 사용자 단말을 주기기로 등록하는 단계;를 포함하는 전자 서명 제공 방법.
  5. 제 4항에 있어서,
    상기 제1 사용자 단말을 검증하는 단계는,
    제1 사용자 단말은 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말의 기기 토큰을 생성하고, 상기 제1 사용자 단말의 기기 토큰을 상기 전자 서명 서비스 서버에 전송하는 단계; 및
    상기 전자 서명 서비스 서버는 상기 주기기 등록용 토큰을 이용하여 상기 제1 사용자 단말의 기기 토큰을 검증하는 단계;를 포함하는 전자 서명 제공 방법.
  6. 제 4항에 있어서,
    상기 제1 사용자 단말은 상기 주기기용 키 쌍의 개인키 및 상기 제1 사용자 단말의 기기 정보를 암호화하여 저장하는 단계;를 더 포함하는 전자 서명 제공 방법.
  7. 제 6항에 있어서,
    상기 주기기용 키 쌍의 개인키 및 상기 제1 사용자 단말의 기기 정보는 상기 제1 사용자 단말에 대응하는 사용자의 개인 식별 번호(Personal Identification Number; PIN) 및 생체 정보 중 적어도 하나에 기초하여 암호화되는 전자 서명 제공 방법.
  8. 제 1항에 있어서,
    상기 전자 서명을 생성하는 단계는,
    상기 전자 서명 서비스 서버는 상기 제1 사용자 단말로부터 서명 대상 데이터 및 상기 서명 대상 데이터에 대한 전자 서명의 요청을 수신하는 단계; 및
    상기 요청에 응답하여, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 서명 대상 데이터에 대한 상기 전자 서명을 생성하는 단계;를 포함하는 전자 서명 제공 방법.
  9. 제 8항에 있어서,
    상기 제1 사용자 단말은, 상기 전자 서명, 상기 서명 대상 데이터 및 상기 개인키에 대응되는 공개키를 상기 전자 서명을 이용하고자 하는 이용 서버에 전송하는 단계;를 더 포함하는 전자 서명 제공 방법.
  10. 삭제
  11. 제 1항에 있어서,
    상기 전자 서명 서비스 서버에 전송되는 상기 제3 사용자 단말의 기기 정보 및 추가 기기용 키 쌍의 공개키는,
    상기 제1 사용자 단말이 상기 전자 서명 서비스 서버와 인증하는 과정에서 획득된 세션키로 암호화된 전자 서명 제공 방법.
  12. 제 1항에 있어서,
    상기 전자 서명을 생성하는 단계는,
    상기 제1 사용자 단말로부터 등록된 기기인지 여부를 인증하기 위한 주기기 인증 데이터를 수신하는 단계; 및
    상기 주기기 인증 데이터를 검증 한 후 상기 전자 서명을 생성하는 단계;를 포함하는 전자 서명 제공 방법.
  13. 제 12항에 있어서,
    상기 주기기 인증 데이터는,
    주기기용 키 쌍의 개인키를 이용하여 생성된 전자서명 제공 방법.
  14. 외부 기기와 통신하는 통신부;
    사용자의 전자 서명 생성을 위한 개인키가 저장된 저장부;
    상기 통신부를 통해, 세션키 파라미터 및 주기기 등록용 토큰을 기기 등록을 요청한 기기 등록 서버에 전송하고, 상기 세션키 파라미터 및 주기기 등록용 토큰을 획득한 제1 사용자 단말로부터 주기기 등록을 요청받으면 상기 제1 사용자 단말을 주기기로 등록하는 프로세서; 및
    상기 통신부를 통해, 상기 주기기로 등록된 상기 제1 사용자 단말로부터 상기 전자 서명의 요청을 수신하면, 상기 전자 서명 서비스 서버는 기등록된 사용자 인증서의 개인키를 이용하여 상기 전자 서명을 생성하는 전자 서명 생성 모듈;을 포함하고,
    상기 프로세서는, 상기 통신부를 통해, 상기 전자 서명을 상기 제1 사용자 단말에게 전송하고,
    상기 프로세서는,
    상기 통신부를 통해, 상기 제1 사용자 단말로부터 제3 사용자 단말의 기기 정보 및 추가 기기용 키 쌍의 공개키를 수신하면, 상기 제3 사용자 단말의 기기 정보 및 상기 추가 기기용 키 쌍의 공개키를 저장함으로써 상기 제3 사용자 단말을 추가 기기로 등록하는 전자 서명 서비스 서버.
KR1020160158052A 2016-11-25 2016-11-25 전자 서명 제공 방법 및 그 서버 KR101933090B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160158052A KR101933090B1 (ko) 2016-11-25 2016-11-25 전자 서명 제공 방법 및 그 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160158052A KR101933090B1 (ko) 2016-11-25 2016-11-25 전자 서명 제공 방법 및 그 서버

Publications (2)

Publication Number Publication Date
KR20180058996A KR20180058996A (ko) 2018-06-04
KR101933090B1 true KR101933090B1 (ko) 2018-12-27

Family

ID=62628122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160158052A KR101933090B1 (ko) 2016-11-25 2016-11-25 전자 서명 제공 방법 및 그 서버

Country Status (1)

Country Link
KR (1) KR101933090B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020028128A (ja) * 2018-08-14 2020-02-20 株式会社bitFlyer Blockchain 電子署名を確認するための装置、方法及びそのためのプログラム
KR20200089562A (ko) 2019-01-17 2020-07-27 삼성전자주식회사 공유된 키를 등록하기 위한 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113446B1 (ko) 2010-12-13 2012-02-29 인하대학교 산학협력단 휴대기기에 공인인증서를 전송하는 시스템 및 방법 그리고 다차원 코드를 이용하여 데이터를 전송 및 인증하는 시스템 및 방법
KR101658501B1 (ko) * 2015-09-03 2016-09-22 주식회사 마크애니 해시함수 기반의 전자서명 서비스 시스템 및 그 방법
KR101659847B1 (ko) 2015-07-14 2016-09-26 (주)케이스마텍 모바일 단말을 이용한 2채널 사용자 인증 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100537426B1 (ko) * 2003-06-10 2005-12-19 홍상선 유비쿼터스 개인 상호인증 보안방법
JP2011141785A (ja) * 2010-01-08 2011-07-21 Girunetto Kk 携帯端末を用いた会員登録システム及び認証システム
KR101679183B1 (ko) * 2015-04-30 2016-11-24 주식회사 예티소프트 전자 서명 서버 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113446B1 (ko) 2010-12-13 2012-02-29 인하대학교 산학협력단 휴대기기에 공인인증서를 전송하는 시스템 및 방법 그리고 다차원 코드를 이용하여 데이터를 전송 및 인증하는 시스템 및 방법
KR101659847B1 (ko) 2015-07-14 2016-09-26 (주)케이스마텍 모바일 단말을 이용한 2채널 사용자 인증 방법
KR101658501B1 (ko) * 2015-09-03 2016-09-22 주식회사 마크애니 해시함수 기반의 전자서명 서비스 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20180058996A (ko) 2018-06-04

Similar Documents

Publication Publication Date Title
KR101863953B1 (ko) 전자 서명 서비스 시스템 및 방법
US9338163B2 (en) Method using a single authentication device to authenticate a user to a service provider among a plurality of service providers and device for performing such a method
TWI454111B (zh) 用於確保通訊之鑑別及完備性的技術
US10523441B2 (en) Authentication of access request of a device and protecting confidential information
TWI497336B (zh) 用於資料安全之裝置及電腦程式
AU2010215040B2 (en) System and methods for online authentication
KR102177848B1 (ko) 액세스 요청을 검증하기 위한 방법 및 시스템
KR102514429B1 (ko) 생체인식 데이터 템플레이트의 업데이트
JPWO2007094165A1 (ja) 本人確認システムおよびプログラム、並びに、本人確認方法
US10044684B2 (en) Server for authenticating smart chip and method thereof
WO2021111824A1 (ja) 電子署名システム及び耐タンパ装置
JP2020508603A (ja) 高信頼性鍵サーバ
TW201223225A (en) Method for personal identity authentication utilizing a personal cryptographic device
KR20200016506A (ko) 익명 디지털 아이덴티티 수립 방법
CN106656955A (zh) 一种通信方法及系统、客户端
KR101933090B1 (ko) 전자 서명 제공 방법 및 그 서버
US20240129139A1 (en) User authentication using two independent security elements
JP2008234143A (ja) バイオメトリクスを使用した本人限定メール開封システムおよびその方法ならびにそのためのプログラム
JP2004140636A (ja) 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム
JP6701011B2 (ja) 端末登録方法、及び端末登録システム
KR101868564B1 (ko) 사용자 본인 확인(identification) 등록과 로컬 인증을 연계한 사용자 인증 장치 및 방법
JP5489913B2 (ja) 携帯型情報装置及び暗号化通信プログラム
JP2010028689A (ja) 公開パラメータ提供サーバ、公開パラメータ提供方法、公開パラメータ提供プログラム、暗号化処理実行装置、暗号化処理実行方法、暗号化処理実行プログラム、署名処理実行装置、署名処理実行方法及び署名処理実行プログラム
US12120247B2 (en) Owner identity confirmation system, certificate authority server and owner identity confirmation method
US12120248B2 (en) Owner identity confirmation system, terminal and owner identity confirmation method

Legal Events

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