KR102144517B1 - 전자 서명 방법들, 시스템들 및 장치 - Google Patents

전자 서명 방법들, 시스템들 및 장치 Download PDF

Info

Publication number
KR102144517B1
KR102144517B1 KR1020167021005A KR20167021005A KR102144517B1 KR 102144517 B1 KR102144517 B1 KR 102144517B1 KR 1020167021005 A KR1020167021005 A KR 1020167021005A KR 20167021005 A KR20167021005 A KR 20167021005A KR 102144517 B1 KR102144517 B1 KR 102144517B1
Authority
KR
South Korea
Prior art keywords
host computer
file
user
input
mass storage
Prior art date
Application number
KR1020167021005A
Other languages
English (en)
Other versions
KR20160128998A (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 원스팬 인터내셔널 게엠베하
Publication of KR20160128998A publication Critical patent/KR20160128998A/ko
Application granted granted Critical
Publication of KR102144517B1 publication Critical patent/KR102144517B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/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
    • 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/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

디지털 서명들을 생성하기 위한 방법들, 장치 및 시스템들이 개시된다. 장치는 파일들을 교환하기 위한 표준 대용량 저장 액세스 메커니즘을 통해 암호 프로세싱 결과들을 제공하기 위하여 대용량 저장 디바이스로서 자신을 호스트 컴퓨터에 제시할 수 있다.

Description

전자 서명 방법들, 시스템들 및 장치{ELECTRONIC SIGNING METHODS, SYSTEMS AND APPARATUS}
[0001] 본 출원은 "Electronic Signing Methods, Systems, and Apparatus"란 명칭으로 2013년 12월 31일에 출원된 미국 가출원 일련번호 제61/922,128호의 우선권을 주장하며, 이 가출원은 그 전체가 인용에 의해 본원에 통합된다.
[0002] 본 발명은 컴퓨터 네트워크들을 통해 컴퓨터들 및 애플리케이션들에의 원격 액세스와 원격 트랜잭션들을 보안하는 것에 관한 것이다. 특히, 본 발명은 전자 서명들을 생성하기 위한 방법들 및 장치에 관한 것이다.
[0003] 컴퓨터 시스템들 및 애플리케이션들의 원격 액세스의 인기가 상승함에 따라, 인터넷과 같은 공개 네트워크들을 통해 원격적으로 액세스되는 트랜잭션들의 수 및 종류가 드라마틱하게 증가하였다. 이러한 인기는 보안성의 필요성, 특히 애플리케이션을 원격적으로 액세스하고 있는 중인 사람들이 진정한 그 사람들임을 보장하는 방법, 원격적으로 수행되고 있는 중인 트랜잭션들이 적법한 개인들에 의해 개시되도록 보장하는 방법, 트랜잭션 데이터가 애플리케이션 서버에서 수신되기 전에 변경되지 않도록 보장하는 방법, 및 개인이 일단 트랜잭션에 참여하였으면 트랜잭션을 거부하는 위치에 있지 않도록 보장하는 방법을 분명히 보여주고 있다.
[0004] 과거에, 애플리케이션 제공자들은 원격 애플리케이션들에 보안을 제공하기 위하여 정적 패스워드들에 의존해 왔다. 최근에, 정적 패스워드들이 충분하지 않아서 더 진보적인 보안 기술이 요구되고 있음이 분명해지고 있다.
[0005] 일 솔루션은, 공개-개인 키 쌍의 개인 키로 매개변수화되는 비대칭 디지털 서명 알고리즘을 이용하여 전자 파일들(예컨대, 전자 문서)과 같은 데이터를 디지털 식으로 서명하는 것이다. 이는 예컨대, 공개 키 인프라스트럭처(PKI)를 이용하여 발생할 수 있다. 공개 키 인프라스트럭처에서, 일 솔루션은 각각의 사용자와 공개-개인 키 쌍을 연관시킨다. 키 쌍은, 공개-개인 키 쌍을 특정 사용자에게 결합시키는 인증서(신뢰되는 인증 기관에 의해 발행됨)와 연관된다. 비대칭 암호를 이용함으로써, 이 공개-개인 키 쌍은: 사용자를 인증하고; (거절(repudiation)을 방지하도록) 트랜잭션, 문서들, 이-메일들에 서명하고; 암호화된 통신 채널들을 셋업하고; 그리고 수신자의 공개 키를 이용하여 발신자에 의해 암호화되었던 문헌들 또는 메시지들을 암호해제하는 데에 사용될 수 있다.
[0006] 많은 경우들에서, 사용자는 (예컨대, 개인 컴퓨터와 같은) 범용 컴퓨팅 디바이스를 이용하여 애플리케이션과 상호작용한다. 애플리케이션과의 상호작용의 일부 포인트에서, 사용자는 그 사용자와 연관된 개인 키로 전자 파일에 전자 서명을 하도록 요청받을 수 있다.
[0007] 보안을 위해, 사용자의 개인 키는 종종, 사용자의 개인 키를 안전하게 저장하도록 구성되는 개별 키 저장 디바이스 상에 저장된다. 대부분의 경우들에서, 키 저장 디바이스는 또한, 저장된 개인 키를 이용하여 비대칭 암호 알고리즘에 따른 암호 계산들을 수행하도록 구성된다. 이러한 키 저장 디바이스들의 예들은 PKI 스마트 카드들 및 PKI USB(Universal Serial Bus) 토큰들을 포함한다. 일반적으로 사용자의 범용 컴퓨터는 스마트 카드 판독기를 이용하여 스마트 카드와 상호작용한다. 대부분의 경우들에서, 이러한 스마트 카드 판독기들은 USB 인터페이스와 범용 컴퓨터에 연결되어어야 한다. PKI USB 토큰들은 종종, 하나의 동글-형(dongle-like) 디바이스에 USB 스마트 카드 판독기와 PKI 스마트 카드의 기능을 결합한다.
[0008] 대부분의 경우들에서, 애플리케이션은, (전자 파일을 서명하는 것 또는 암호해제하는 것과 같이) 고레벨 암호 서비스들을 애플리케이션에 제공하는 암호 라이브러리를 이용하여, 표준 암호 API(Application Programming Interface), 이를 테면, 예컨대, MS-CAPI(Microsoft Cryptography API) 또는 PKCS#11 (Public Key Cryptographic Standard 11)를 통해 인터페이싱하고, 암호 라이브러리는, 고레벨 애플리케이션 요청들을, 사용자와 연관되는 개인키를 보유하는 사용자의 스마트 카드를 이용하여 이것이 교환하는 일련의 커맨드들-응답들로 트랜슬레이트한다.
[0009] 그러나, 이 솔루션의 이용에는 다수의 문제들이 존재한다. 솔루션이 작동하려면, 사용자가 사용하는 PC가 이러한 암호 라이브러리를 구비해야만 하지만, 많은 PC(Personal Computers)들이 이러한 암호 라이브러리를 디폴트로 구비하지 않는데, 이는 사용자가 암호 라이브러리를 설치해야만 한다는 것을 의미한다. 추가로, 실제로, 스마트 카드와 암호 라이브러리 사이의 인터페이스는 표준화되지 않는데, 이는, 사용자가 사용자의 특정 스마트 카드와 호환될 수 있는 특정 암호 라이브러리를 설치해야만 한다는 것을 의미한다. 또한, 대부분의 PC들이 USB를 지원하는 한편, 이들은 종종 USB 스마트 카드 판독기들을 위한 지원을 디폴트로 구비하지 않으므로, 사용자는 또한, 사용자에게 이용가능한 스마트 카드 판독기와 호환가능한 스마트 카드 판독기들을 위한 USB 드라이버를 설치해야만 한다. 실제로 설치 요건들의 이러한 조합은, 많은 사용자들이 처음 장소에서 시작하기 너무 복잡하거나 또는 시스템들을 신뢰할 수 없거나 또는 심지어 시스템들이 작동하지 않는 것으로 이어지는 설치 실패가 초래되는 것으로 밝혀진다.
[0010] 필요한 것은, 사용자의 범용 컴퓨팅 디바이스에 특정 하드웨어 및 소프트웨어를 설치할 것을 사용자에게 요구하지 않는, 사용자의 개인 키로 전자 파일들에 서명하기 위한 솔루션이다.
[0011] 본 발명은, 많은 PC들이 USB 스마트 카드 판독기들을 디폴트로 지원하지 않은 한편, 이들은 거의 항상 USB 대용량 저장 디바이스 클래스를 지원한다는 발명자들의 통찰력을 기반으로 한다.
[0012] 본 발명의 일 양상은, 장치를 호스트 컴퓨터에 로컬 연결하기 위한 통신 인터페이스 및 제1 입력 데이터와 암호 시크릿 키를 암호 결합함으로써 생성된 암호 프로세싱 결과를 제공하도록 구성된 데이터 프로세싱 컴포넌트를 포함하는 장치를 제공하며; 장치는, 장치가 통신 인터페이스에 의해 상기 호스트 컴퓨터에 연결될 때, 호스트 컴퓨터상의 애플리케이션이 파일들을 교환하기 위한 표준 대용량 저장 액세스 메커니즘을 통해 액세스할 수 있는 대용량 저장 디바이스로서 상기 호스트 컴퓨터에 그 자체를 제시하도록 구성되며; 그리고 통신 인터페이스는 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터에 출력 파일을 리턴하도록 구성되며, 상기 출력 파일은 암호 프로세싱 결과를 포함하며, 상기 호스트 컴퓨터는 상기 표준 대용량 저장 액세스 메커니즘의 파일들을 판독하기 위한 메커니즘을 사용하여 상기 통신 인터페이스를 통해 장치로부터 상기 출력을 판독함으로써 상기 출력 파일을 획득할 수 있다.
[0013] 일부 실시예들에서, 상기 통신 인터페이스는 USB(Universal Serial Bus) 인터페이스를 포함하며, 장치는, 장치가 호스트 컴퓨터에 연결될 때, USB 대용량 저장 디바이스 클래스 중의 USB 디바이스로서 호스트 컴퓨터에 그 자체를 제시하도록 추가로 구성될 수 있다.
[0014] 일부 실시예들에서, 장치는 이전 실시예들 중 임의의 실시예의 장치일 수 있고, 이 장치는 상기 암호 시크릿 키를 저장하도록 구성된 메모리 컴포넌트를 더 포함하며; 데이터 프로세싱 컴포넌트는 암호 시크릿 키를 사용하여 암호 계산들을 수행하도록 구성되며; 상기 제1 입력 데이터와 상기 암호 시크릿 키를 암호 결합하는 것은 상기 데이터 프로세싱 컴포넌트가 상기 암호 계산들을 수행하는 것을 포함할 수 있다.
[0015] 일부 실시예들에서, 장치는 이전 실시예들 중 임의의 실시예의 장치일 수 있으며, 이 장치는 외부 제거가능 키 저장 디바이스와 커맨드들 및 응답들을 수신 및 교환하기 위한 제2 통신 인터페이스를 더 포함하며, 상기 키 저장 디바이스는 상기 암호 시크릿 키를 사용하여 암호 계산들을 수행하도록 구성된 키 저장 디바이스 데이터 프로세싱 컴포넌트 및 상기 암호 시크릿 키를 저장하도록 구성된 키 저장 디바이스 메모리 컴포넌트를 포함하며; 상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 키 저장 디바이스 데이터 프로세싱 컴포넌트가 상기 암호 시크릿 키를 사용하여 상기 암호 계산들을 수행하는 것을 포함할 수 있다.
[0016] 일부 실시예들에서, 상기 제2 통신 인터페이스는 ISO/IEC(International Organization for Standardization/International Electrotechnical Comission) 7816 표준 세트들(특히 ISO/IEC 7816-2 & ISO/IEC 7816-3)과 호환가능할 수 있는 스마트 카드 인터페이스를 포함할 수 있으며, 상기 커맨드들 및 응답들은 스마트 카드 커맨드들 및 응답들, 예컨대, 스마트 카드 APDU들(Application Protocaol Data Units)을 포함할 수 있고, 상기 키 저장 디바이스는 비대칭 암호를 수행할 수 있는 PKI(Public Key Infrastructure) 스마트 카드와 같은 스마트 카드일 수 있다. 일부 구현들에서, 제2 통신 인터페이스는 ISO/IEC 7810 ID-1 포맷의 스마트 카드들을 수신하기 위한 외부 액세스가능 스마트 카드 슬롯을 포함할 수 있고 키 저장 디바이스는 ISO/IEC 7810 ID-1 포맷의 ISO/IEC 7816 호환가능 스마트 카드일 수 있다. 일부 실시예들에서, 스마트 카드는 ISO/IEC 7816-15 표준과 호환가능할 수 있다.
[0017] 일부 실시예들에서, 장치는 이전 실시예들 중 임의의 실시예의 장치일 수 있으며, 이 장치는 상기 장치의 사용자가 승인을 표시하기 위한 사용자 입력 인터페이스를 더 포함하며, 장치는 사용자에 의한 상기 승인을 상기 사용자 입력 인터페이스에 의해 캡처하도록 구성되며, 제1 데이터와 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것 중 적어도 하나는 상기 장치가 상기 승인을 획득하는 것을 조건으로 할 수 있다.
[0018] 일부 실시예들에서, 장치는 이전 실시예들 중 임의의 실시예의 장치일 수 있고, 상기 암호 시크릿 키는 애플리케이션과 공유되는 대칭 시크릿 키를 포함하며, 상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 대칭 시크릿 키로 매개변수화되는 대칭 암호 알고리즘을 상기 제1 입력 데이터에 대하여 수행하는 것을 포함할 수 있다. 일부 실시예들에서, 상기 대칭 암호 알고리즘은 AES(Advanced Encryption Standard)와 같은 대칭 암호 또는 암호해독 알고리즘을 포함할 수 있다. 일부 실시예들에서, 상기 대칭 암호 알고리즘은 HMAC(Hash-base Message Authentication Code)와 같은 키드(keyed) 해싱 알고리즘을 포함할 수 있다.
[0019] 일부 실시예들에서, 상기 장치는 이전의 실시예들 중 임의의 것의 장치일 수 있고, 상기 암호 시크릿 키는 비대칭 공개-개인 키 쌍의 시크릿 개인 키를 포함하며, 상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 시크릿 개인 키로 매개변수화되는, 예컨대, RSA(Rivest-Shamir-Adleman)와 같은 비대칭 암호 알고리즘을 상기 제1 입력 데이터에 대해 수행하는 것을 포함한다.
[0020] 일부 실시예들에서, 상기 장치는 상기 공개-개인 키 쌍의 공개 키를 포함하는 공개 키 파일을 상기 호스트 컴퓨터가 이용가능하게 만들도록 추가로 구성될 수 있고, 상기 호스트 컴퓨터는 파일들을 판독하기 위한 상기 메커니즘을 사용하여 상기 통신 인터페이스를 통해 상기 장치로부터 상기 공개 키 파일을 판독함으로써 상기 공개 키 파일을 획득한다. 일부 실시예들에서, 공개 키 파일은 출력 파일과 동일할 수 있다. 다른 실시예들에서, 공개 키 파일은 출력 파일과 다른 파일일 수 있다. 일부 실시예들에서, 공개 키 파일은, 가령, 예컨대, PKCS#1에 따른 표준화된 포맷의 공개 키를 포함한다.
[0021] 일부 실시예들에서, 상기 장치는 상기 공개-개인 키 쌍과 연관된 하나 이상의 인증서들을 포함하는 인증서 파일을 상기 호스트 컴퓨터가 이용가능하게 만들도록 추가로 구성될 수 있고, 상기 호스트 컴퓨터는 파일들을 판독하기 위한 상기 메커니즘을 사용하여 상기 통신 인터페이스를 통해 상기 장치로부터 상기 인증서 파일을 판독함으로써 상기 인증서 파일을 획득한다. 인증서는 인증서 당국에 의해 생성될 수 있다. 일부 실시예들에서, 인증서 파일은 인증서 체인을 포함할 수 있다. 일부 실시예들에서, 상기 장치는 하나보다 더 많은 인증서를 갖는 하나보다 더 많은 인증서 파일들을 가질 수 있다. 일부 실시예들에서, 인증서 파일은 출력 파일 또는 공개 키 파일과 동일할 수 있다. 다른 실시예들에서, 인증서 파일은 출력 파일 및 공개 키 파일과 다른 파일일 수 있다. 일부 실시예들에서, 인증서 파일은, 가령, 예컨대, X.509 표준에 설명된 표준화된 포맷의 인증서를 포함할 수 있다.
[0022] 일부 실시예들에서, 상기 장치는 원-타임 패스워드를 생성하도록 추가로 구성된 이전의 실시예들 중 임의의 것의 장치일 수 있고, 상기 원-타임 패스워드는 상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것의 상기 결과에 포함되며, 상기 제1 입력 데이터는 동적 변수를 포함한다.
[0023] 일부 실시예들에서, 상기 장치는 클록을 더 포함할 수 있고, 상기 동적 변수는 상기 클록에 의해 제공된 시간 값에 기초할 수 있다.
[0024] 일부 실시예들에서, 상기 장치는 제2 변수를 저장하여 상기 저장된 제2 변수의 함수로서 상기 동적 변수의 값을 결정하고 상기 제2 변수의 값이 상기 결합을 위하여 사용되었을 때 상기 제2 변수의 값을 업데이트하여 저장하도록 추가로 구성될 수 있다. 일부 실시예들에서, 상기 장치는 저장 컴포넌트를 더 포함할 수 있고, 상기 제2 변수를 상기 저장 컴포넌트에 저장하고, 상기 저장된 제2 변수의 함수로서 상기 동적 변수의 값의 결정하고, 제2 변수의 값이 상기 결합을 위해, 예컨대, 원-타임 패스워드를 생성하기 위해 사용되었을 때 제2 변수의 값을 업데이트하여 저장 컴포넌트에 저장하도록 추가로 구성될 수 있다. 일부 실시예들에서, 상기 제2 변수는 카운터를 포함할 수 있고, 상기 제2 변수를 업데이트하는 것은 상기 카운터의 값을 단조적으로 증가(또는 증분) 또는 단조적으로 감소(또는 감분)시키는 것을 포함할 수 있다. 예컨대, 일부 실시예들에서, 동적 변수는 상기 장치가 자신의 메모리에 저장할 수 있고 상기 장치가 원-타임 패스워드를 생성할 때마다 1만큼 상기 장치가 증분(또는 감분)할 수 있는 카운터일 수 있다.
[0025] 일부 실시예들에서, 상기 장치는, 상기 장치가 원-타임 패스워드(OTP)를 포함하는 출력 파일을 판독하기 위한 요청을 호스트 컴퓨터로부터 수신한 후에 원-타임 패스워드를 생성하도록 구성될 수 있고, 원-타임 패스워드의 생성 후에 생성된 원-타임 패스워드를 포함하는 출력 파일을 생성하고, 생성된 출력 파일을 호스트 컴퓨터로 리턴할 수 있다. 다른 실시예들에서, 상기 장치는 원-타임 패스워드의 현재 값을 지속성 메모리에 저장하도록 구성될 수 있고, 원-타임 패스워드를 포함하는 출력 파일을 판독하기 위한 제2 변수 요청을 호스트 컴퓨터로부터 수신할 때 저장된 원-타임 패스워드를 포함하는 출력 파일을 생성하고, 저장된 원-타임 패스워드를 갖는 그 출력 파일을 호스트 컴퓨터로 리턴할 수 있고, 이어서(출력 파일을 리턴한 후에), 원-타임 패스워드에 대한 새로운 값을 생성하고, 상기 장치가 출력 파일을 판독하기 위한 다음의 요청을 호스트 컴퓨터로부터 수신하기 전에, 원-타임 패스워드의 저장 값을 그 새롭게 생성된 값으로 업데이트할 수 있다. 다시 말해서, 일부 실시예들에서, 상기 장치는 그 원-타임 패스워드를 포함하는 출력 파일을 판독하기 위한 요청을 수신하는 것과 그 원-타임 패스워드를 포함하는 출력 파일을 리턴하는 것 사이에 원-타임 패스워드를 생성할 수 있고, 반면에, 다른 실시예들에서, 상기 장치는 원-타임 패스워드의 이전 값을 포함하는 출력파일을 리턴한 후에 그리고 새롭게 생성된 원-타임 패스워드를 포함하는 출력 파일을 판독하기 위한 요청을 수신하기 전에 새로운 원-타임 패스워드 값을 생성할 수 있다.
[0026] 일부 실시예들에서, 상기 장치는 입력 파일의 적어도 일부 콘텐츠들에 대하여 디지털 서명을 생성하도록 추가로 구성된 이전 실시예들 중 임의의 것의 장치일 수 있고, 상기 통신 인터페이스는 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하도록 추가로 구성될 수 있고, 상기 호스트 컴퓨터는 상기 표준 대용량 저장 액세스 메커니즘의 파일들을 저장(save)하기 위한 메커니즘을 통해 상기 장치에 의해 제시된 상기 대용량 저장 디바이스에 입력 파일을 저장함으로써 상기 통신 인터페이스를 통해 상기 입력 파일을 상기 장치에 전송할 수 있고, 상기 제1 입력 데이터는 상기 입력 파일의 적어도 일부 콘텐츠들을 나타내는 값에 기초할 수 있고, 상기 디지털 서명은 상기 제1 입력 데이터와 상기 암호 시크릿 키를 암호 결합하는 것의 상기 결과에 포함될 수 있다. 일부 실시예들에서, 상기 입력 파일의 상기 적어도 일부 콘텐츠들은 전체 입력 파일을 포함한다. 즉, 일부 실시예들에서, 상기 장치는 전체 입력 파일에 걸쳐 서명을 생성하도록 구성될 수 있다. 일부 실시예들에서, 디지털 서명은 대칭적인 암호 알고리즘으로 상기 장치에 의해 생성될 수 있는 MAC(Message Authentication Code)일 수 있다. 일부 실시예들에서, 상기 암호 시크릿 키는 공개-개인 키 쌍의 개인 키를 포함할 수 있고, 상기 암호 시크릿 키와 상기 제1 입력 데이터를 암호 결합하는 것은 상기 장치가 입력 파일의 적어도 일부 콘텐츠들의 해시를 생성하고, 상기 개인 키로 매개변수화된 비대칭 암호 알고리즘으로 이러한 해시를 프로세싱하는 것을 포함할 수 있다. 일부 실시예들에서, 상기 개인 키는 외부 제거 가능 키 저장 디바이스 상에 저장될 수 있고, 상기 장치는 상기 개인 키와 외부 제거 가능 키 저장 디바이스를 관련시키는 암호 동작(가령, 예컨대 상기 개인 키로 매개변수화된 대칭 암호 알고리즘으로 상기 해시의 상기 프로세싱)을 선정할 수 있다.
[0027] 일부 실시예들에서, 상기 장치는 상기 장치의 사용자에게 출력들을 제시하기 위한 사용자 출력 인터페이스 및 상기 사용자로부터의 입력들을 캡처하기 위한 사용자 입력 인터페이스를 포함할 수 있다. 상기 장치는 상기 입력 파일의 복수의 가능한 파일 타입의 포맷들 중 적어도 하나의 포맷 중의 포맷을 인식하고; 상기 입력 파일의 상기 적어도 일부 콘텐츠들을 판독하며; 상기 적어도 일부 콘텐츠들을 상기 사용자 출력 인터페이스에 의해 상기 사용자에게 제시하며; 그리고 상기 사용자에게 제시된 상기 적어도 일부 콘텐츠들의 사용자에 의해 승인 또는 거절 중 적어도 하나를 상기 사용자 입력 인터페이스에 의해 상기 사용자로부터 캡처하도록 추가로 구성될 수 있고, 상기 제1 데이터와 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것은 상기 장치가 상기 승인을 획득하는 것을 조건으로 할 수 있다. 사용자 출력 인터페이스는, 예컨대, LCD(Liquid Crystal Display)와 같은 디스플레이를 포함할 수 있다. 사용자 입력 인터페이스는, 예컨대, 승인을 표시하기 위한 OK 버튼 및 거절을 표시하기 위한 취소 버튼을 포함할 수 있는, 예컨대, 키보드를 포함할 수 있다. 일부 실시예들에서, 입력 파일은, 예컨대 트랜잭션을 표현할 수 있는 데이터를 포함할 수 있고, 상기 장치는 승인을 위해 이들 데이터를 사용자에게 제시할 수 있다. 사용자가 제시된 데이터를 승인하면, 상기 장치는 이들 데이터에 대한 서명을 생성하는 것을 추진할 수 있다. 사용자가 제시된 데이터를 거부하면, 상기 장치는 유효 서명을 생성하는 것을 거절할 수 있다. 일부 실시예들에서, 입력 파일은 텍스트 형태로 시그널링되고 텍스트를 사용자에게 제시하기 위한 데이터를 포함할 수 있다. 예컨대, 일부 실시예들에서, 입력 파일은 ASCII(American Standard Code for Information Interchange) 텍스트를 포함할 수 있다.
[0028] 일부 실시예들에서, 장치는, 입력 파일의 적어도 일부 콘텐츠들을 암호화 또는 암호해독하도록 추가로 구성된, 이전 실시예들 중 임의의 실시예의 장치일 수 있으며, 상기 통신 인터페이스는 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하도록 추가로 구성될 수 있으며, 상기 호스트 컴퓨터는 상기 표준 대용량 저장 액세스 메커니즘의 파일들을 저장하기 위한 메커니즘을 통해 장치에 의해 제시된 대용량 저장 디바이스에 입력 파일을 저장함으로써 상기 통신 인터페이스를 통해 입력 파일을 장치에 전송할 수 있으며; 상기 제1 입력 데이터는 상기 적어도 일부 콘텐츠들을 포함할 수 있으며; 그리고 상기 제1 입력 데이터와 상기 암호 시크릿 키를 암호 결합하는 것은, 상기 암호 시크릿 키로 매개변수화될 수 있는 암호화 또는 암호해독 알고리즘을 사용하여 상기 제1 입력 데이터를 암호화 또는 암호해독하는 것을 포함할 수 있다. 일부 실시예들에서, 상기 암호화 또는 암호해독 알고리즘은 대칭 암호화 또는 암호해독 알고리즘, 이를테면, 예컨대, AES를 포함할 수 있다. 일부 실시예들에서, 상기 입력 파일의 상기 적어도 일부 콘텐츠들은 전체 입력 파일을 포함한다. 일부 실시예들에서, 장치는 전체 입력 파일을 암호화 또는 암호해독하도록 구성될 수 있다.
[0029] 일부 실시예들에서, 장치는, PIN 및/또는 패스워드 값을 상기 장치의 사용자가 상기 장치에 제공하기 위한 사용자 입력 인터페이스를 더 포함하는, 이전 실시예들 중 임의의 실시예의 장치일 수 있으며; 상기 장치는, 상기 사용자 입력 인터페이스에 의해 상기 PIN 및/또는 패스워드 값을 상기 사용자로부터 획득하고 상기 PIN 및/또는 패스워드가 정확한지의 여부를 검증하도록 추가로 구성될 수 있으며; 제1 데이터와 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것은 사용자에 의해 제공되는 상기 PIN 및/또는 패스워드 값이 정확할 것을 조건으로 할 수 있다. 일부 실시예들에서, 장치는 사용자에 의해 입력되는 PIN 및/또는 패스워드를 검증하도록 구성될 수 있고, 그리고 장치는 단지, (예컨대, OTP를 생성하기 위하여 또는 서명을 생성하기 위하여 또는 데이터를 암호해독 또는 암호화하기 위하여) 제1 데이터와 시크릿 키를 암호 결합하는 것 그리고 PIN 및/또는 패스워드가 정확한 경우에 결과를 리턴하는 것을 진행하도록 구성될 수 있다. 일부 실시예들에서, 장치는 기준 값을 저장하도록 추가로 구성될 수 있으며, 상기 획득된 PIN 및/또는 패스워드 값을 검증하는 것은 장치가 상기 획득된 PIN 및/또는 패스워드 값과 상기 기준 값을 비교하는 것을 포함할 수 있다.
[0030] 일부 실시예들에서, 장치는 PIN 및/또는 패스워드의 검증을 상기 외부 제거가능 키 저장 디바이스에 위임할 수 있다. 일부 실시예들에서, 장치는, 외부 제거가능 디바이스를 사용하여 커맨드들 및 응답들을 수신 및 교환하기 위한 제2 통신 인터페이스를 더 포함할 수 있으며, 상기 획득된 PIN 및/또는 패스워드 값을 검증하는 것은, 상기 장치가 상기 외부 제거가능 디바이스가 검증할, 상기 획득된 PIN 및/또는 패스워드 값을 나타내는 PIN 및/또는 패스워드 표현 값을 상기 제2 통신 인터페이스를 통해 상기 외부 제거가능 디바이스에 통신하는 것; 및 상기 장치가 상기 표현 값의 상기 외부 제거가능 디바이스에 의한 검증의 결과를 상기 제2 통신 인터페이스를 통해 상기 외부 제거가능 디바이스로부터 수신하는 것을 포함할 수 있다.
[0031] 일부 실시예들에서, 장치는, 상기 장치의 사용자의 바이오메트릭 측정을 캡처하기 위한 바이오메트릭 센서를 더 포함하는, 이전 실시예들 중 임의의 실시예의 장치일 수 있으며; 상기 장치는, 상기 바이오메트릭 센서에 의해 상기 사용자로부터의 상기 바이오메트릭 측정을 획득하고 상기 바이오메트릭 측정이 정확한지의 여부를 검증하도록 추가로 구성될 수 있으며; 상기 제1 데이터와 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것 중 적어도 하나는 상기 획득된 바이오메트릭 측정이 정확할 것을 조건으로 할 수 있다. 일부 실시예들에서, 상기 바이오메트릭 센서는 예컨대 지문 센서를 포함할 수 있고, 상기 바이오메트릭 측정은 사용자의 지문 데이터를 포함할 수 있다. 일부 실시예들에서, 장치는 사용자의 바이오메트릭 측정을 검증하도록 구성될 수 있고, 그리고 장치는 단지, (예컨대, OTP를 생성하기 위하여 또는 서명을 생성하기 위하여 또는 데이터를 암호해독 또는 암호화하기 위하여) 제1 데이터와 시크릿 키를 암호 결합하는 것 그리고 바이오메트릭 측정이 장치에 의해 수용되는 경우에 결과를 리턴하는 것을 진행하도록 구성될 수 있다. 일부 실시예들에서, 장치는 바이오메트릭 기준 데이터를 저장하도록 추가로 구성될 수 있으며, 상기 획득된 바이오메트릭 측정을 검증하는 것은 상기 장치가 상기 바이오메트릭 기준 데이터와 상기 획득된 바이오메트릭 측정을 비교하는 것을 포함할 수 있다.
[0032] 일부 실시예들에서, 장치는 바이오메트릭 측정의 검증을 상기 외부 제거가능 키 저장 디바이스에 위임할 수 있다. 일부 실시예들에서, 장치는, 외부 제거가능 디바이스를 사용하여 커맨드들 및 응답들을 수신 및 교환하기 위한 제2 통신 인터페이스를 더 포함할 수 있으며, 상기 획득된 바이오메트릭 측정을 검증하는 것은, 상기 장치가 상기 외부 제거가능 디바이스가 검증할, 상기 바이오메트릭 측정을 상기 제2 통신 인터페이스를 통해 상기 외부 제거가능 디바이스에 통신하는 것; 및 상기 장치가 상기 바이오메트릭 측정의 외부 제거가능 디바이스에 의한 상기 검증의 결과를 상기 제2 통신 인터페이스를 통해 상기 외부 제거가능 디바이스로부터 수신하는 것을 포함한다.
[0033] 본 발명의 다른 양상은 전자 입력 파일에 대해 디지털 서명을 생성하기 위한 방법을 제공한다. 일부 실시예들에서, 방법은 이전 실시예들 중 임의의 실시예의 장치와 함께 사용하기 위한 것일 수 있다. 일부 실시예들에서, 방법은, 호스트 컴퓨터에 장치를 로컬 연결하기 위한 통신 인터페이스를 포함할 수 있는 장치와 함께 사용하기 위한 것일 수 있으며, 장치는, 상기 장치가 상기 호스트 컴퓨터에 연결될 때, 상기 호스트 컴퓨터상의 애플리케이션이 파일들을 판독 및 저장하기 위한 표준 대용량 저장 액세스 메커니즘을 통해 액세스할 수 있는 대용량 저장 디바이스로서 상기 호스트 컴퓨터에 그 자체를 제시하며; 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하며; 시크릿 서명 키에 의해 매개변수화되는 디지털 서명 알고리즘을 상기 입력 파일에 적용함으로써 상기 입력 파일에 대하여 상기 디지털 서명을 생성하며; 상기 통신 인터페이스를 통해 출력 파일을 상기 호스트 컴퓨터에 리턴하도록 구성될 수 있으며, 상기 출력 파일은 상기 입력 파일에 대한 상기 디지털 서명을 포함한다. 일부 실시예들에서, 방법은, 상기 장치와의 연결을 상기 호스트 컴퓨터에서 만드는 단계; 상기 표준 대용량 저장 액세스 메커니즘의 파일들을 저장하기 위한 방법을 사용하여 장치에 의해 제시되는 대용량 저장 디바이스에 입력 파일을 저장함으로써 상기 호스트 컴퓨터가 상기 입력 파일을 상기 통신 인터페이스를 통해 장치에 전송하는 단계; 상기 표준 대용량 저장 액세스 메커니즘의 파일들을 판독하기 위한 방법을 사용하여 출력 파일을 판독함으로써 상기 호스트 컴퓨터가 상기 통신 인터페이스를 통해 장치로부터 상기 출력 파일을 획득하는 단계; 상기 출력 파일로부터 상기 디지털 서명을 리트리브하는 단계를 포함할 수 있다.
[0034] 일부 실시예들에서, 상기 통신 인터페이스는 USB 인터페이스를 포함하며, 상기 장치는, 상기 장치가 상기 호스트 컴퓨터에 연결될 때, USB 대용량 저장 디바이스 클래스 중의 USB 디바이스로서 상기 호스트 컴퓨터에 그 자체를 제시하도록 추가로 구성된다.
[0035] 본 발명의 또 다른 양상은 전자 입력 파일에 대해 디지털 서명을 생성하기 위한 시스템을 제공한다. 일부 실시예들에서, 시스템은 이전 실시예들 중 임의의 실시예의 장치를 포함할 수 있다. 일부 실시예들에서, 시스템은, 이전에 설명된 방법들 중 임의의 방법의 일부 단계들 또는 단계들 전부를 수행하도록 구성되는 하나 또는 그 초과의 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 시스템은, 호스트 컴퓨터를 포함할 수 있고, 호스트 컴퓨터는, 소프트웨어 애플리케이션들을 실행하기 위한 데이터 프로세싱 컴포넌트, 및 적어도 하나의 외부 주변 디바이스를 상기 호스트 컴퓨터에 제거가능하게 연결하기 위한 연결 메커니즘을 포함하며, 상기 호스트 컴퓨터는, 대용량 저장 디바이스들의 클래스를 지원하며; 디바이스들이 상기 호스트 컴퓨터에 연결될 때 상기 디바이스들이 대용량 저장 디바이스들의 클래스에 속하는 것으로 그들 자체를 통지하는 경우에 상기 연결 메커니즘을 통해 상기 호스트 컴퓨터에 연결되는 디바이스들을 상기 대용량 저장 디바이스들의 클래스에 속하는 것으로서 인식하며, 상기 연결 메커니즘을 통해 호스트 컴퓨터에 연결되며 상기 대용량 저장 디바이스들의 클래스에 속하는 것으로 호스트 컴퓨터에 의해 인식되는 대용량 저장 디바이스들에 파일들을 판독 및 저장하기 위한 표준 대용량 저장 액세스 메커니즘을 지원하며; 상기 대용량 저장 디바이스들에 파일들을 판독하기 위한 상기 표준 대용량 저장 액세스 메커니즘의 제1 방법 및 상기 대용량 저장 디바이스들에 파일들을 저장하기 위한 상기 표준 대용량 저장 액세스 메커니즘의 제2 방법을 상기 소프트웨어 애플리케이션들에 제공하도록 추가로 구성되며; 시스템은 상기 연결 메커니즘에 의해 상기 호스트 컴퓨터에 상기 서명 장치를 로컬 연결하기 위한 통신 인터페이스를 포함하는 서명 장치를 더 포함할 수 있고; 상기 서명 장치는, 서명 장치가 상기 호스트 컴퓨터에 연결될 때, 상기 대용량 저장 디바이스의 클래스에 속하는 것으로 상기 호스트 컴퓨터에 그 자체를 제시하며; 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하며; 시크릿 서명 키에 의해 매개변수화되는 디지털 서명 알고리즘을 상기 입력 파일에 적용함으로써 상기 입력 파일에 대하여 상기 디지털 서명을 생성하며; 상기 통신 인터페이스를 통해 출력 파일을 상기 호스트 컴퓨터에 리턴하도록 구성될 수 있고, 상기 출력 파일은 상기 입력 파일에 대한 상기 디지털 서명을 포함하며, 상기 서명 장치는 상기 통신 인터페이스 및 상기 연결 메커니즘을 통해 상기 호스트 컴퓨터에 연결되며; 상기 호스트 컴퓨터는, 파일들을 저장하기 위한 상기 표준 대용량 저장 액세스 메커니즘의 상기 제2 방법을 사용하여 상기 입력 파일을 상기 장치에 저장함으로써 상기 통신 인터페이스를 통해 상기 입력 파일을 상기 서명 장치에 전송하며, 상기 표준 대용량 저장 액세스 메커니즘의 상기 제1 방법을 사용하여 상기 출력 파일을 판독함으로써 상기 호스트 컴퓨터가 상기 통신 인터페이스를 통해 상기 서명 장치로부터 상기 출력 파일을 획득하도록 구성된 서명 애플리케이션을 실행한다.
[0036] 일부 실시예들에서, 상기 연결 메커니즘은, 호스트 컴퓨터, 및 호스트 커넥터를 타게팅하는 드라이버 소프트웨어에 적어도 하나의 외부 주변 디바이스를 제거가능하게 연결하기 위한 호스트 커넥터 또는 포트(예컨대, USB 포트)를 포함할 수 있다. 일부 실시예들에서, 상기 서명 장치의 통신 인터페이스는, 상기 호스트 커넥터 또는 포트에 매칭할 수 있는 주변 디바이스 커넥터를 포함할 수 있다.
[0037] 일부 실시예들에서, 상기 통신 인터페이스는 USB 인터페이스를 포함하며, 상기 서명 장치는, 상기 서명 장치가 상기 호스트 컴퓨터에 연결될 때, USB 대용량 저장 디바이스 클래스 중의 USB 디바이스로서 상기 호스트 컴퓨터에 그 자체를 제시하도록 추가로 구성될 수 있다.
[0038] 일부 실시예들에서, 상기 호스트 컴퓨터는, 예컨대, 랩탑 또는 PC(Personal Computer)를 포함할 수 있다. 일부 실시예들에서, 호스트 컴퓨터 상에서 실행되는 애플리케이션은, 호스트 컴퓨터의 사용자가 원격 액세스가능 컴퓨터-기반 애플리케이션에 원격으로 액세스하고 그리고/또는 그와 상호작용하도록 허용하는 클라이언트 애플리케이션을 포함할 수 있다. 예컨대, 일부 실시예들에서, 호스트 컴퓨터 상에서 실행되는 애플리케이션은, 인터넷과 같은 컴퓨터 네트워크를 통해 호스트 컴퓨터에 연결될 수 있는 원격 웹-서버 상에서 실행되는 웹-기반 애플리케이션과 사용자가 상호작용하기 위해 이용할 수 있는 웹-브라우저를 포함할 수 있다. 애플리케이션은, 서명되는 일부 데이터(예컨대, 계약)를 입력 파일에 어셈블하고, 입력 파일을 사용자에게 제시할 수 있다. 사용자는, 자신의 서명 장치를 (예컨대, 호스트 컴퓨터의 USB 포트를 통해) 호스트 컴퓨터에 연결할 수 있고, 서명 장치는 대용량 저장 디바이스(예컨대, USB 대용량 저장 디바이스)로서 호스트 컴퓨터에 그 자체를 제시할 수 있다. 사용자는, 파일을 다운로드하고, (예컨대, 호스트 컴퓨터 상에서 대용량 저장 디바이스로 보이는) 서명 장치에 대해 서명되는 데이터를 갖는 입력 파일을, 예컨대, '서명되는 파일들'로 지칭되는 디렉토리에 저장할 수 있다. 서명 장치는, 입력 파일에 서명할 수 있고, 입력 파일과 동일한 이름을 가질 수 있거나 고정된 이름(예컨대, 'signature_file')을 가질 수 있거나 입력 파일 이름의 변경된 버전일 수 있는 서명을 포함하는 출력 파일을 생성함으로써 서명이 리트리벌을 위해 준비되었음을 시그널링할 수 있고, 특정 위치, 예컨대, '서명들'로 지칭되는 디렉토리에서 출력 파일을 이용가능하게 할 수 있고, 사용자는, 그 출력 파일을 판독하여 애플리케이션에 업로드하도록 브라우저에 지시할 수 있다. 일부 실시예들에서, 입력 파일은 텍스트 파일일 수 있고, 서명 장치는, 입력 파일의 콘텐츠에 서명하기 전에, 입력 파일에 포함된 텍스트를 서명 장치의 디스플레이 상에서 사용자에게 제시할 수 있다. 사용자는, 제시된 텍스트를 검토하고, 서명 장치의 키패드 상의 OK(또는 취소) 버튼을 누름으로써 그 제시된 텍스트를 승인(또는 거부)할 수 있다. 사용자가 제시된 텍스트를 승인한 후, 서명 장치는 입력 파일에 서명하는 것으로 진행할 수 있다.
[0039] 다른 예에서, 사용자는, 사용자가 인증되도록 요구하는 애플리케이션과 상호작용하기 위해 클라이언트 애플리케이션을 이용할 수 있다. 클라이언트 애플리케이션은, 출력 파일을 판독하라는 요청을 수신할 때 장치가 온 더 플라이로 생성할 수 있는 원-타임 패스워드를 포함하는 (고정된 이름 및 위치, 예컨대, "크리덴셜들/원-타임 패스워드"를 가질 수 있는) 출력 파일을 판독함으로써 원-타임 패스워드를 획득할 수 있다. 그 다음, 애플리케이션은 출력 파일로부터 원-타임 패스워드를 리트리브할 수 있다. 일부 실시예들에서, 장치는, 사용자와 연관된 공개-개인 키 쌍의 개인 키에 의해 매개변수화될 수 있는 비대칭 디지털 서명 알고리즘을 이용함으로써 원-타임 패스워드를 생성하거나 파일에 서명할 수 있다. 일부 실시예들에서, 애플리케이션은, 공개 키 및/또는 인증서(예컨대, "크리덴셜들/공개-키" 또는 "크리덴셜들/인증서")를 포함할 수 있는 다른 특정 파일들을 판독함으로써, (서명 또는 원-타임 패스워드를 검증하기 위해) 개인 키와 대응하는 공개 키 및/또는 공개 키의 인증서를 획득할 수 있다. 다른 실시예들에서, 공개 키 및/또는 인증서들은, 서명 또는 원-타임 패스워드와 동일한 출력 파일로 인코딩될 수 있다.
[0040] 일부 실시예들에서, 본 발명의 양상에 따른 장치는, 예컨대, PC(personal computer) 또는 랩탑과 같은 범용 컴퓨팅 디바이스를 포함할 수 있는 호스트 컴퓨터에 디바이스를 로컬 연결하기 위한 제1 통신 인터페이스를 갖는 서명 디바이스를 포함하거나 그 서명 디바이스로 구성된다. 일부 실시예들에서, 통신 인터페이스는 USB 인터페이스를 포함할 수 있다. 일부 실시예들에서, 서명 디바이스는 USB 대용량 저장 디바이스 클래스의 디바이스로서 그 연결된 호스트 컴퓨터에 그 자체를 광고한다.
[0041] 일부 실시예들에서, 서명 디바이스는, 서명 디바이스가 자신의 USB 인터페이스에 의해 연결되는 호스트 컴퓨터로부터 입력 파일을 수신하도록 구성될 수 있고, 호스트 컴퓨터는, USB 대용량 저장 디바이스 클래스의 디바이스에 파일을 저장하기 위해 표준 인터페이스를 통해 서명 디바이스가 호스트 컴퓨터에 제시하는 대용량 저장 디바이스에 입력 파일을 저장함으로써 서명 디바이스에 입력 파일을 전달할 수 있다. 그 다음, 서명 디바이스는, 사용자와 연관된 공개-개인 키 쌍의 개인 키를 이용하여, 수신된 입력 파일을 암호 프로세스할 수 있다. 서명 디바이스는, 입력 파일의 암호 프로세싱의 결과(예컨대, 서명 또는 암호해독된 파일 또는 원-타임 패스워드)를 출력 파일에 저장할 수 있다. 호스트 컴퓨터 상의 애플리케이션은, USB 대용량 저장 디바이스 클래스의 디바이스로부터 파일을 판독하기 위해 표준 인터페이스를 통해 서명 디바이스가 호스트 컴퓨터에 제시하는 대용량 저장 디바이스로부터 출력 파일을 판독함으로써 결과를 획득할 수 있다.
[0042] 일부 실시예들에서, 서명 디바이스는, 사용자와 연관된 시크릿 서명 키를 보안 저장할 수 있고, 파일을 서명 또는 암호해독하기 위해 저장된 시크릿 서명 키를 이용하는 암호 알고리즘에 따라 암호 계산들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 시크릿 서명 키는 사용자와 연관된 공개-개인 키 쌍의 개인 키를 포함할 수 있고, 암호 알고리즘은, 예컨대, RSA(Rivest -Shamir-Adleman) 알고리즘 또는 타원 곡선 알고리즘과 같은 비대칭 암호 알고리즘을 포함할 수 있다.
[0043] 스마트 카드에 대한 인터페이스 디바이스.
[0044] 일부 실시예들에서, 서명 디바이스는, 사용자와 연관된 개인 키를 저장하고, 저장된 개인 키를 이용하는 비대칭 암호 알고리즘에 따른 암호 계산들을 수행하도록 구성되는 외부 제거가능 키 저장 디바이스와 통산하기 위해 제2 통신 인터페이스를 포함할 수 있다. 일부 실시예들에서, 서명 디바이스는, 개인 키와 관련된 (예컨대, 파일을 서명 또는 암호해독하기 위한 또는 OTP를 생성하기 위한) 암호 계산들 중 적어도 일부를 키 저장 디바이스에 위임할 수 있다. 일부 실시예들에서, 제2 통신 인터페이스는 스마트 카드 인터페이스를 포함할 수 있고, 키 저장 디바이스는 스마트 카드를 포함할 수 있다. 일부 실시예들에서, 스마트 카드는 ISO 7816 호환가능 스마트 카드일 수 있고, 제2 통신 인터페이스는 ISO 7816 호환가능일 수 있다. 일부 실시예들에서, 스마트 카드는 PKI 가능한 스마트 카드일 수 있다.
[0045] 암호 라이브러리, 스마트 카드 판독기 및/또는 스마트 카드 드라이버의 에뮬레이션
[0046] 일부 실시예들에서, 서명 디바이스는, 암호 라이브러리, USB 스마트 카드 판독기 및 USB 스마트 카드 드라이버 중 하나 또는 그 초과(3개 모두의 결합을 포함함)를 에뮬레이팅하기 위해 사용될 수도 있으며, 따라서, 이들 중 하나 또는 그 초과가 사용자의 호스트 컴퓨터 상에 제시 또는 인스톨될 필요성을 제거한다.
[0047] 예컨대, 일부 실시예들에서, 전자 문서와 같은 전자 파일에 대해 서명을 획득하기를 추구하고 그에 의해 서명이 사용자와 연관되고, 예컨대, 사용자의 스마트 카드 상에 보안적으로 저장되는 개인 키를 이용하여 생성되는 애플리케이션은 다음과 같이 진행할 수도 있다. 사용자와 연관되고 사용자의 스마트 카드 상에 저장된 개인 키에 의해 서명된 전자 문서를 획득하기 위해 PKCS#11 또는 MS-CAPI와 같은 표준 암호 API와 인터페이싱하는 것 대신에, 애플리케이션은, 전자 문서를 포함하는 파일을 USB 대용량 디바이스 클래스의 디바이스에 저장하기 위해 표준 인터페이스를 사용하여, 서명될 파일을 서명 디바이스에 전달할 수도 있다. 그 후, 서명 디바이스는, 서명을 생성하기 위한 기존의 스마트 카드 커맨드들을 사용하여 스마트 카드와 상호작용함으로써 전자 문서에 대해 서명을 생성하는 것을 처리할 수도 있다. 예컨대, 서명 디바이스는, 파일을 서명 디바이스에 저장하기 위하여 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 호스트 컴퓨터 상의 애플리케이션으로부터, 서명될 전자 문서를 갖는 입력 파일을 수신할 수도 있다. 그 후, 서명 디바이스는, 메시지 다이제스트에 대해 서명을 생성하고 생성된 서명을 스마트 카드로부터 수신하도록 스마트 카드에게 명령하기 위해, (예컨대, 예컨대, SHA-1과 같은 해싱 알고리즘을 사용하여) 수신 전자 문서의 메시지 다이제스트를 생성하고, 생성된 메시지 다이제스트를 스마트 카드에 전달하도록 통상의 기존의 스마트 카드 커맨드들을 사용할 수도 있다. 그 후, 서명 디바이스는 출력 파일에 수신 서명을 저장할 수도 있고, 애플리케이션은, 서명 디바이스로부터 파일을 판독하기 위하여 표준 USB 대용량 디바이스 클래스 인터페이스를 통해 서명 디바이스로부터 출력 파일을 판독함으로써 서명을 포함하는 이러한 출력 파일을 리트리브할 수도 있다.
[0048] 전자 파일 서명
[0049] 일부 실시예들에서, 서명 디바이스는 다음의 방식으로 전자 파일을 서명하기 위해 사용될 수도 있다. 애플리케이션은, 파일을 서명 디바이스에 저장하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 사용함으로써, 서명될 파일(입력 파일로서 또한 지칭될 수도 있음)을 서명 디바이스에 전달할 수도 있다. 입력 파일을 수신할 시에, 서명 디바이스는, 사용자와 연관된 개인 키를 사용하여, 수신된 입력 파일에 대해 서명을 생성할 수도 있다. 일단 서명 디바이스가 서명을 생성하면, 서명 디바이스는, 생성된 서명을 포함하는 출력 파일을 판독-출력하기 위해 이용가능하게 될 수도 있다. 애플리케이션은, 아래에서 더 상세히 설명될 바와 같이, 서명 디바이스로부터 파일을 판독하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 사용함으로써 이러한 서명 파일 또는 출력 파일을 판독함으로써 서명을 획득할 수도 있다.
[0050] 일부 실시예들에서, 출력 파일은 표준 서명 포맷으로 존재한다. 일부 실시예들에서, 출력 파일은, 서명될 본래의 파일의 데이터 및 실제 서명 둘 모두를 포함한다. 일부 실시예들에서, 출력 파일의 포맷은 입력 파일의 포맷에 의해 결정될 수도 있다. 일부 실시예들에서, 서명 디바이스는, 입력 파일이 수신되고 있는 동안 즉시 서명되도록 입력 파일을 프로세싱할 수도 있으며, 전체 입력을 저장하지는 않을 수도 있다. 예컨대, 일부 실시예들에서, 서명 디바이스는, 입력 파일에 대해 메시지 다이제스트를 즉시 생성할 수도 있으며, 일단 입력 파일의 본래의 콘텐츠들이 메시지 다이제스트를 생성하기 위해 사용되면 그들을 폐기할 수도 있고, 서명을 생성하기 위해 메시지 다이제스트를 사용할 수도 있다.
[0051] 전자 파일 암호해독
[0052] 일부 실시예들에서, 서명 디바이스는, 사용자와 연관된 개인 키에 대응하는 공용 키를 이용하여 암호화되는 전자 파일을 암호해독하기 위해 사용될 수도 있다. 애플리케이션은, 파일을 서명 디바이스에 저장하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 사용함으로써, 암호해독될 파일(입력 파일로서 또한 지칭될 수도 있음)을 서명 디바이스에 전달할 수도 있다. 입력 파일을 수신할 시에, 서명 디바이스는, 사용자와 연관된 개인 키를 사용하여, 수신된 입력 파일을 암호해독할 수도 있다. 일단 서명 디바이스가 입력 파일을 암호해독하면, 서명 디바이스는, 암호해독된 서명을 포함하는 출력 파일을 판독-출력하기 위해 이용가능하게 될 수도 있다. 애플리케이션은, 아래에서 더 상세히 설명될 바와 같이, 서명 디바이스로부터 파일을 판독하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 사용함으로써 이러한 암호해독된 파일 또는 출력 파일을 판독함으로써 서명을 획득할 수도 있다.
[0053] 원-타임 패스워드 생성
[0054] 일부 실시예들에서, 서명 디바이스는 원-타임 패스워드들을 생성하기 위해 사용될 수도 있으며, 그에 의해, 사용자의 개인 키는 동적 변수를 서명하기 위해 사용되고, 그 변수의 값은 원-타임 패스워드(OTP)를 검증할 서명 디바이스 및 엔티티 둘 모두에 알려진다(또는 알려지게 된다). 일부 실시예들에서, 원-타임 패스워드는 동적 변수에 대한 서명을 포함할 수도 있다. 일부 실시예들에서, 동적 변수는 서명 디바이스에 의해 생성 및/또는 보유된다. 예컨대, 일부 실시예들에서, 서명 디바이스는, 서명 디바이스가 시간-기반 OTP를 생성하기 위해 동적 변수의 값을 결정하는데 사용할 수도 있는 시간 값을 생성하기 위한 클록을 포함할 수도 있다. 다른 실시예들에서, 서명 디바이스는, 그것이 특정한 이벤트들 시에 업데이트하는 이벤트 관련 값을 메모리에 저장 및 보유할 수도 있으며, 서명 디바이스는, 이벤트-기반 OTP를 생성하기 위해 동적 변수의 값을 결정하도록 이러한 이벤트 관련 값을 사용할 수도 있다. 예컨대, 일부 실시예들에서, 서명 디바이스는, 서명 디바이스가 원-타임 패스워드를 생성할 때마다 이벤트 관련 값을 업데이트시킬 수도 있다. 일부 실시예들에서, 이벤트 관련 값은 카운터일 수도 있으며, 이벤트 관련 값을 업데이트시키는 것은 카운터를 증분시키는 것을 포함할 수도 있다. 일부 실시예들에서, 이벤트 관련 값을 업데이트시키는 것은, 서명 디바이스가 이벤트 관련 값의 현재의 값을, 서명 디바이스가 이벤트 관련 값의 현재의 값으로부터 계산할 수도 있는 새로운 값으로 대체하는 것을 포함할 수도 있다. 일부 실시예들에서, 서명 디바이스는, 예컨대, 해싱 함수를 이벤트 관련 값의 현재의 값에 적용함으로써, 이벤트 관련 값의 새로운 값을 계산할 수도 있다.
[0055] 일단 서명 디바이스가 원-타임 패스워드를 생성하면, 서명 디바이스는, 원-타임 패스워드를 포함하는 출력 파일을 판독-출력하기 위해 이용가능하게 될 수도 있다. 애플리케이션은, 아래에서 더 상세히 설명될 바와 같이, 서명 디바이스로부터 파일을 판독하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 사용함으로써 이러한 서명 파일 또는 출력 파일을 판독함으로써 서명을 획득할 수도 있다. 일부 실시예들에서, 원-타임 패스워드의 서명 디바이스에 의한 생성은, 원-타임 패스워드를 이용하여 파일을 판독하기 위해 표준 USB 대용량 디바이스 클래스 인터페이스를 통하여 판독 요청에 의해 프롬프트될 수도 있다. 일부 실시예들에서에서(예컨대, 시간-기반 OPT의 경우에서), 서명 디바이스는, 원-타임 패스워드 출력 파일을 판독-출력하기 위한 요청을 호스트 컴퓨터로부터 수신할 시에, 즉시 원-타임 패스워드를 계산하고, 최근에 생성된 OTP를 이용하여 원-타임 패스워드 출력의 콘텐츠들을 업데이트시킬 수도 있으며, 업데이트된 OTP 출력 파일을 호스트 컴퓨터에 리턴할 수도 있다. 일부 실시예들에서(예컨대, 이벤트-기반 OTP의 경우에서), 서명 디바이스는, 새로운 원-타임 패스워드를 계산하며, 호스트 컴퓨터가 OTP 출력 파일을 판독-출력한 이후 OPT의 새로이 계산된 값을 이용하여 OTP 출력 파일의 콘텐츠들을 업데이트시킬 수도 있다.
[0056] 일부 실시예들에서, OTP 출력 파일은 또한, 원-타임 패스워드의 값에 부가하여, OTP를 계산하기 위하여 서명 디바이스에 의해 사용되었던 동적 변수의 값을 포함할 수도 있다.
[0057] 일부 실시예들에서, OTP 출력 파일은 사람이 판독가능한 포맷으로 OTP의 값을 포함할 수도 있다. 일부 실시예들에서, OTP 출력 파일은, 예컨대, 텍스트 파일일 수도 있고, OTP는, 예컨대, ASCII 포맷으로 코딩될 수도 있다. 일부 실시예들에서, 사용자는, 예컨대, 호스트 컴퓨터 상의 파일 관리자 애플리케이션을 이용하여 원-타임 패스워드를 포함하는 출력 파일을 오픈하고, OTP를 포함하는 출력 파일 내의 텍스트를 복사하며, 이러한 복사된 OTP를 애플리케이션으로 붙여넣을 수도 있다.
[0058] 입력 파일을 수신함.
[0059] 일부 실시예들에서, 서명 디바이스는, 파일을 서명 디바이스에 저장하기 위해 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 서명 디바이스가 수신하는 임의의 파일을 서명 또는 암호해독하도록 구성된다. 일부 실시예들에서, 서명 디바이스는, 파일 이름이 특정 포맷을 따르는 임의의 파일을 서명 또는 암호해독하도록 구성될 수 있다. 예컨대, 일부 실시예들에서, 서명 디바이스는, 특정 파일 이름(예컨대, "input_file_to_be_signed")을 갖는 파일을 서명 디바이스에 저장하고 그리고/또는 다른 특정 파일 이름(예컨대, "input_file_to_be_decrypted")을 갖는 임의의 파일을 유사하게 암호해독하기 위해, 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 서명 디바이스가 수신하는 임의의 파일을 서명하도록 구성될 수 있다. 일부 실시예들에서, 서명 디바이스는, 특정 파일 경로를 갖거나 또는 특정 위치(예컨대, 디렉토리 "input_files_to_be_signed")에 저장되는 파일을 서명 디바이스에 저장하고 그리고/또는 다른 특정 위치(예컨대, 디렉토리 "input_files_to_be_decrypted")에서 수신되는 임의의 파일을 유사하게 암호해독하기 위해, 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 서명 디바이스가 수신하는 임의의 파일을 서명하도록 구성될 수 있다.
[0060] 호스트 컴퓨터에 대해 이용가능한 출력 파일을 만듦.
[0061] 일부 실시예들에서, 출력 파일은, (적용가능하면, 즉, 동작이 입력 파일을 수반하여 수행되면) 입력 파일이 형식적으로 저장되기 위해 표준 USB 대용량 저장 디바이스 클래스 인터페이스에 의해 사용되었던 이름 및 위치에 따라서 서명 디바이스에 의해 저장될 수 있다. 즉, (USB 대용량 저장 디바이스 클래스 인터페이스에 의해 명령되는 바와 같은) 입력 파일 그 자체를 주어진 이름에 따라 주어진 위치에 저장하기 보다는, 서명 디바이스는, 출력 파일을 그 이름에 따라 그리고 그 위치에 저장할 수 있다. 이것은, 예컨대, 파일을 서명 또는 암호해독하는 경우에 적용가능할 수 있다. 일부 실시예들에서, 서명 디바이스는, 출력 파일을 고정된 위치에서(예컨대, "signature_files"과 같은 고정된 경로를 갖는 디렉토리에서) 이용가능하게 할 수 있고, 출력 파일의 이름은, 예컨대, 서명된 또는 암호해독된 입력 파일의 이름과 동일한 이름일 수 있다. 일부 실시예들에서, 새로운 출력 파일이 생성되는 경우, 마지막에 생성된 출력 파일은 자동적으로 제거되거나 또는 덮어 쓰여질 수 있다. 일부 실시예들에서, 서명 디바이스는, 출력 파일을 고정된 위치에서(예컨대, "output_files"과 같은 고정된 경로를 갖는 디렉토리에서) 그리고 고정된 이름(예컨대, "one_time_password")에 따라 이용가능하게 할 수 있다.
[0062] 일부 실시예들에서, 예컨대, 서명 디바이스는, 입력 파일의 콘텐츠들 중 적어도 일부에 걸쳐 서명을 생성하는 것, 원-타임 패스워드를 생성하는 것, 또는 입력 파일의 콘테츠들 중 적어도 일부를 암호화 또는 암호해독하는 것과 같은 몇몇 타입들의 암호 동작들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 수행될 동작은, 입력 파일의 이름 또는 이름의 구조로 표시될 수 있다. 일부 실시예들에서, 수행될 동작은, 출력 파일의 이름 또는 이름의 구조로 표시될 수 있다. 일부 실시예들에서, 수행될 동작은, 입력 또는 출력 파일의 경로로 표현되는 바와 같은 입력 또는 출력 파일의 위치로 표시될 수 있다. 예컨대, 입력 파일이 서명되어야 하면, 입력 파일은, 예컨대, 'input/to_be_signed'와 같은 특정 디렉토리 이름을 갖는 위치에 서명 애플리케이션에 의해 저장될 수 있다.
[0063] 일부 실시예들에서, 서명 디바이스는, 언제 출력 파일이 이용가능한지를 표시하도록 구성될 수 있다. 일부 실시예들에서, 서명 디바이스는, 서명 디바이스가 호스트 컴퓨터에 제시하는 대용량 저장 디바이스의 분리 이벤트 및 재연결 이벤트를 에뮬레이팅함으로써 출력 파일이 이용가능하다는 것을 표시한다. 일부 실시예들에서, 서명 디바이스는, 서명 디바이스가 입력 파일을 수신하기 위해 호스트 컴퓨터에 제시한 대용량 저장 디바이스 외의 다른 대용량 저장 디바이스에서 출력 파일을 이용가능하게 하고, 출력 파일이 이용가능한 경우, 출력 파일을 갖는 이러한 다른 대용량 저장 디바이스를 호스트 컴퓨터에 연결한다.
[0064] 공개 키 및 인증서들.
[0065] 일부 실시예들에서, 서명 디바이스는, 사용자와 연관된 공개-개인 키 쌍의 전술된 개인 키(또한 서명 디바이스에 저장됨)에 대응하는 공개 키를 저장할 수 있다. 일부 실시예들에서, 서명 디바이스는 부가적으로, 공개 키를 예컨대 사용자의 아이덴티티와 암호 결속시킬 수 있는, 이러한 공개 키의 인증서를 저장할 수 있다.
[0066] 일부 실시예들에서, 공개 및/또는 인증서는, 서명 디바이스 상의 파일에서 이용가능할 수 있다. 일부 실시예들에서, 호스트 컴퓨터 상의 애플리케이션은, 서명 디바이스로부터 파일을 판독하기 위해, 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 사용하여 이러한 파일을 판독함으로써 공개 키 및/또는 인증서를 획득할 수 있다. 일부 실시예들에서, 이러한 파일은, 고정된 위치(예컨대, "certificates"와 같은 특정한 고정된 이름을 갖는 디렉토리)에 로케이팅될 수 있다. 일부 실시예들에서, 이러한 파일은 (예컨대, "certificate_file"와 같은) 고정된 이름을 가질 수 있다.
[0067] 일부 실시예들에서, 서명 디바이스는, 본 출원의 다른 곳에서 더 상세히 설명되는 바와 같이, 개인 키를 저장하고 그리고 개인 키를 수반하는 암호 계산들을 수행하기 위해, 외부 제거가능 키 저장 디바이스에 의존할 수 있다. 그러한 경우들에서, 서명 디바이스는, 적절한 방식으로(예컨대, 외부 제거가능 키 저장 디바이스가 스마트 카드를 포함하는 경우에서는, 공개 키 및 인증서를 판독하기 위한 적용가능한 스마트 카드 커맨드들 및 응답들을 교환함으로써) 외부 제거가능 키 저장 디바이스로부터 공개 키 및/또는 인증서를 획득할 수 있고, 획득된 공개 키 및/또는 인증서를, 위에 설명된 바와 같이 호스트 컴퓨터 상의 애플리케이션에 대해 이용가능하게 하는 파일에 저장할 수 있다.
[0068] 일부 실시예들에서 그리고 일부 동작들에 대해, 공개 키 및/또는 인증서는 출력 파일에 포함될 수 있다. 예컨대, 서명을 생성하는 경우에서, 공개 키 및 인증서는 서명 출력 파일에 포함될 수 있다.
[0069] 구성, 상태, 및 매개변수화.
[0070] 일부 실시예들에서, 서명 디바이스는 구성가능할 수 있다. 일부 실시예들에서, 서명 디바이스의 현재 구성은, 파일을 판독하기 위한 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 구성 파일을 판독함으로써 획득될 수 있다. 일부 실시예들에서, 구성 파일은, 고정된 이름 및/또는 고정된 위치를 가질 수 있다.
[0071] 일부 실시예들에서, 서명 디바이스는, 임의의 주어진 시간에서 일 세트의 다양한 상태들 중 하나의 상태에 있을 수 있다. 일부 실시예들에서, 서명 디바이스의 현재 상태는, 파일을 판독하기 위한 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 상태 파일을 판독함으로써 획득될 수 있다. 일부 실시예들에서, 상태 파일은, 고정된 이름 및/또는 고정된 위치를 가질 수 있다.
[0072] 일부 실시예들에서, 서명 디바이스의 특정 동작들(예컨대, 입력 파일을 서명하기 위한 서명 동작)은 구성가능할 수 있다. 예컨대, 일부 실시예들에서, 서명된 입력 파일의 콘텐츠들의 메시지 다이제스트를 생성하기 위한 해싱 알고리즘의 선택은 매개변수화가능할 수 있다. 일부 실시예들에서, 서명 디바이스의 동작은, 동작이 서명 디바이스에 의해 수행되기 이전에, 매개변수 파일을 서명 디바이스에 저장함으로써 매개변수화될 수 있다.
[0073] 펌웨어 업데이트.
[0074] 일부 실시예들에서, 서명 디바이스는 자신의 펌웨어의 업데이트를 허용하도록 구성된다. 일부 실시예들에서, 서명 디바이스의 펌웨어는 펌웨어 업데이트 파일을 서명 디바이스에 저장함으로써 업데이트될 수 있으며, 이에 의해, 펌웨어 업데이트 파일은 특정 파일 이름을 가질 수 있거나 또는 특정 위치에 저장될 수 있다. 일부 실시예들에서, 서명 디바이스는, 펌웨어 업데이트 파일이 신뢰되는 기관에 의해 서명되는 것을 요구할 수 있다. 일부 실시예들에서, 서명 디바이스는, 펌웨어 업데이트 파일에 걸쳐 서명을 검증하고 그리고 서명이 유효하다고 판단한 경우에만 수신된 펌웨어 업데이트 파일의 콘텐츠들로 자신의 펌웨어를 업데이트하도록 구성된다.
[0075] 사용자 승인 및 PIN 엔트리.
[0076] 일부 실시예들에서, (예컨대, 서명을 생성하거나 파일을 암호해독하기 위한) 암호 연산들에서의 개인 키의 사용은 사용자 승인을 받을 수도 있다. 일부 실시예들에서, 서명 디바이스는 사용자로부터 이러한 승인을 얻도록 구성된다. 일부 실시예들에서, 서명 디바이스는 사용자 승인을 얻기 위한 사용자 입력 인터페이스를 포함할 수도 있다. 일부 실시예들에서, 서명 디바이스는 예컨대, 사용자가 승인을 표시하기 위해 작동할 수 있는 OK 버튼을 포함할 수도 있다. 일부 실시예들에서, 개인 키의 사용은 PIN(personal identification number) 및/또는 패스워드에 의해 보호될 수도 있다. 일부 실시예들에서, 사용자는 기준 PIN 및/또는 패스워드와 비교될 수 있는 PIN 및/또는 패스워드를 입력하도록 요구될 수도 있고, 서명 디바이스는 사용자에 의해 제공되는 PIN 및/또는 패스워드가 기준 PIN 및/또는 패스워드와 매칭한다면 개인 키의 암호 사용을 수반하는 동작을 실행하도록 진행할 수 있다. 일부 실시예들에서, 서명 디바이스는 사용자가 PIN 및/또는 패스워드의 값을 서명 디바이스에 제공할 수 있게 하도록 구성된 사용자 입력 디바이스를 포함할 수도 있다. 일부 실시예들에서, 사용자는 호스트 컴퓨터 상에 PIN 및/또는 패스워드를 입력할 수 있고, 호스트 컴퓨터는 서명 디바이스에 파일을 저장하기 위한 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 PIN 및/또는 패스워드를 포함하는 파일을 서명 디바이스에 저장함으로써 서명 디바이스에 PIN 및/또는 패스워드를 전달할 수 있다. 일부 실시예들에서, PIN 및/또는 패스워드를 가진 이러한 파일은 고정된 명칭으로 저장될 수도 있고 또는 고정된 위치에 저장될 수도 있다. 일부 실시예들에서, PIN 및/또는 패스워드는 서명 디바이스에 의해 처리될 입력 파일(예컨대, 서명되거나 암호해독될 파일)을 또한 보유하는 동일한 파일에 포함될 수도 있다. 일부 실시예들에서, 서명 디바이스는 PIN 및/또는 패스워드 기준 값을 저장하고 사용자로부터 수신된 PIN 및/또는 패스워드를 저장된 기준 PIN 및/또는 패스워드 값과 비교하도록 구성될 수도 있다. 일부 실시예들에서, 서명 디바이스는 사용자로부터 수신된 PIN 및/또는 패스워드를 외부 제거가능 키 저장 디바이스에 전달하도록 구성될 수도 있다.
[0077] 대칭 암호화의 사용
[0078] 일부 실시예들에서, 서명 디바이스는 검증 엔티티와 공유되는 시크릿 암호 키를 저장하도록 구성될 수도 있다. 일부 실시예들에서, 서명 디바이스는 대칭 암호 알고리즘들을 지원하도록 구성될 수도 있다. 일부 실시예들에서, 서명 디바이스는 대칭 암호 알고리즘(예컨대, AES(Advanced Encryption Standard)와 같은 대칭 암호화 알고리즘 또는 HMAC와 같은 키-해시 알고리즘)을 사용하여 이러한 공유된 키를 (위에서 설명된 바와 같이 서명 디바이스가 획득할 수 있는) 동적 변수와 암호 결합함으로써 원-타임 패스워드들을 생성할 수도 있고, 서명 디바이스는 위에서 설명된 바와 같이 호스트 컴퓨터에 의해 리트리브될 수 있는 출력 파일에 결과적인 원-타임 패스워드를 저장할 수 있다. 일부 실시예들에서, 서명 디바이스는 위에서 설명된 바와 같이 서명 디바이스에 파일을 저장하기 위한 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 자신이 수신한 입력 파일에 대해 MAC(Message Authentication Code)을 생성하고, 위에서 설명된 바와 같이 호스트 컴퓨터에 의해 리트리브될 수 있는 출력 파일에 결과적인 MAC을 저장하도록 구성될 수도 있다. 일부 실시예들에서, 서명 디바이스는 공유되는 키로 매개변수화되는 대칭 암호 알고리즘(예컨대, AES와 같은 대칭 암호화 알고리즘 또는 HMAC와 같은 키-해시 알고리즘)을 사용하여 MAC을 생성할 수도 있다. 일부 실시예들에서, 서명 디바이스는 대칭 암호화/암호해독 알고리즘(예컨대, AES)으로 (위에서 설명된 바와 같이 수신된) 입력 파일을 암호화 또는 암호해독하고, 결과적인 암호화된 또는 암호해독된 파일을 위에서 설명된 바와 같이 호스트 컴퓨터에 의해 리트리브될 수있는 출력 파일에 저장할 수 있다.
[0079] 보안 디바이스.
[0080] 일부 실시예들에서, 서명 디바이스는 예컨대, 디스플레이를 포함할 수도 있는 그 자체 사용자 출력 인터페이스를 가질 수도 있다. 일부 실시예들에서, 서명 디바이스는 예컨대, 키패드를 포함할 수도 있는 그 자체 사용자 입력 인터페이스를 가질 수도 있다. 일부 실시예들에서, 사용자 입력 인터페이스 및 사용자 출력 인터페이스는 서명 디바이스는 제거가능하지 않거나 사용자-서비스가능하지 않을 수도 있고, 디바이스에 의해 완전히 제어되며, 호스트 컴퓨터 상의 악성 소프트웨어에 의한 간섭을 받지 않을 수도 있다. 따라서 이러한 실시예들에서 디바이스는 악성 소프트웨어, 예컨대 바이러스나 트로이 목마가 사용자에게 위조 메시지들을 제시하거나, 사용자가 키패드 상에서 입력할 때마다 캡처하거나, 메모리에서 보안 애플리케이션과 연관된 민감 데이터를 판독하거나 데이터가 서명되고 있을 때 데이터를 변경할 가능성이 항상 있는 PC들과는 달리, 신뢰할 수 있는 사용자 인터페이스를 갖는다고 여겨질 수 있다. 일부 실시예들에서, 디바이스의 펌웨어는 변경할 수 없을 수도 있다. 일부 실시예들에서, 디바이스는 탬퍼 확인용 프로비전들을 가질 수도 있다.
[0081] 다른 특징들
[0082] 일부 실시예들에서, 서명 디바이스는 예컨대, 배터리와 같은 그 자체의 자율적인 전기 전원을 가질 수도 있다. 일부 실시예들에서, 서명 디바이스는 USB 연결을 통해 전기적으로 전력이 공급될 수도 있다.
[0083] 일부 실시예들에서, 서명 디바이스는 휴대 가능하고 경량일 수도 있다. 일부 실시예들에서, 서명 디바이스는 무게가 200그램 미만이다. 일부 실시예들에서, 서명 디바이스는 콤팩트하고 핸드-헬드형일 수도 있다. 일부 실시예들에서, 서명 디바이스는 포켓-사이즈일 수도 있다. 일부 실시예들에서, 서명 디바이스의 사이즈는 임의의 방향에서 최대 15cm이다. 일부 실시예들에서, 서명 디바이스의 길이는 15cm 미만이고, 폭은 8cm 미만이며, 두께는 2cm 미만이다.
[0084] 일부 실시예들에서, 서명 디바이스는 USB 키 또는 USB 메모리 스틱의 형태를 가질 수도 있다. 일부 실시예들에서, 서명 디바이스는 USB 스마트 카드 판독기의 형태를 가질 수도 있다.
[0085] 본 발명의 앞서 말한 그리고 다른 특징들 및 이점들은 첨부 도면들에 예시된 바와 같은, 다음의 본 발명의 실시예들의 보다 상세한 설명으로부터 명백해질 것이다.
[0086] 도 1은 본 발명의 한 양상에 따른 예시적인 장치를 개략적으로 예시한다.
[0087] 도 2는 본 발명의 양상들에 따라 전자 파일에 대한 디지털 서명을 생성하기 위한 단계들의 흐름도이다.
[0088] 도 3은 본 발명의 양상들에 따라 전자 파일에 대한 디지털 서명을 생성하기 위한 시스템의 블록도이다.
[0089] 본 발명의 일부 구현들이 아래에서 논의된다. 특정 구현들이 논의되지만, 이는 단지 예시 목적으로 이루어진다고 이해되어야 한다. 해당 기술분야에서 통상의 지식을 가진 자는 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 컴포넌트들 및 구성들이 사용될 수도 있다고 인식할 것이다.
[0090] 도 1은 본 발명의 한 양상에 따른 본 발명의 예시적인 장치(100)(예컨대, 서명 디바이스)를 개략적으로 예시한다. 이 장치는 장치를 호스트 컴퓨터(99)에 로컬 연결하기 위한 제1 통신 인터페이스(110), 및 데이터를 프로세싱하고 그리고/또는 장치의 다른 컴포넌트들, 예컨대 제1 통신 인터페이스를 제어하기 위한 하나 또는 그 초과의 프로세싱 컴포넌트들(150)을 포함할 수 있다.
[0091] 일부 실시예들에서, 장치는 그 자체를 연결된 호스트 컴퓨터(99)에 대용량 저장 디바이스로서 제시할 수 있는데, 연결된 호스트가 대용량 저장 디바이스에 파일들을 저장할 수 있고 연결된 호스트가 대용량 저장 디바이스로부터 파일들을 판독할 수 있다. 일부 실시예들에서, 제1 통신 인터페이스는 USB 인터페이스를 포함할 수 있고, 장치는 그 자체를 연결된 호스트 컴퓨터에 USB 대용량 저장 디바이스 클래스의 USB 디바이스로서 제시할 수도 있다. 일부 실시예들에서, 제1 통신 인터페이스는 커넥터, 예컨대 USB 커넥터를 포함할 수도 있다. 일부 실시예들에서, 제1 통신 인터페이스는 케이블을 포함할 수도 있다.
[0092] 일부 실시예들에서, 장치는 USB 대용량 저장 디바이스 클래스의 디바이스 상에 파일을 저장하기 위하여 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 호스트 컴퓨터로부터 입력 파일을 수신하고, 사용자와 연관된 공개-개인 키 쌍의 개인 키로 매개변수화되는 비대칭 암호 알고리즘을 사용하여 수신된 파일을 암호 프로세싱하고, 출력 파일에서 상기 암호 프로세싱한 결과를 저장하고, USB 대용량 저장 디바이스 클래스의 디바이스로부터 파일을 판독하기 위하여 표준 USB 대용량 저장 디바이스 클래스 인터페이스를 통해 출력 파일을 판독하도록 호스트 컴퓨터로부터의 요청 시 호스트 컴퓨터로의 출력 파일을 리턴하도록 구성된다.
[0093] 일부 실시예들에서, 장치는 사용자에게 데이터 및/또는 메시지들을 제시하기 위한 휴먼 출력 인터페이스(130)를 더 포함한다. 일부 실시예들에서, 장치는 사용자로부터 입력들을 수신하기 위한 휴먼 입력 인터페이스(120)를 더 포함한다. 일부 실시예들에서, 휴먼 입력 인터페이스는 사용자의 승인을 캡처하도록 구성될 수 있다. 일부 실시예들에서, 휴먼 입력 인터페이스는 사용자에 의해 입력되는 PIN 및/또는 패스워드를 수신하도록 구성될 수 있다.
[0094] 일부 실시예들에서, 장치는 하나 또는 그 초과의 메모리 컴포넌트들(160)을 포함할 수 있다. 일부 실시예들에서, 하나 또는 그 초과의 메모리 컴포넌트들은 상기 개인 키를 저장하도록 구성될 수 있다. 일부 실시예들에서, 장치는 위에서 언급된 비대칭 암호 알고리즘을 수행하기 위하여 이 개인 키를 사용하여 암호 계산들을 수행하도록 추가로 구성될 수 있다.
[0095] 일부 실시예들에서, 장치는 외부 제거가능 키 저장 디바이스(102)와 통신하기 위한 제2 통신 인터페이스(180)를 더 포함한다. 일부 실시예들에서, 외부 제거가능 키 저장 디바이스는 (예컨대, 메모리(도시되지 않음)에) 사용자와 연관된 개인 키를 보안적으로 저장하고, 이 개인 키를 사용하여 (예컨대, 데이터 프로세싱 컴포넌트(도시되지 않음)를 사용하여) 암호 계산들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 장치는 수신된 파일을 프로세싱하기 위한 비대칭 암호 알고리즘을 수행하도록 요구되는 암호 계산들 중 적어도 일부를 외부 제거가능 키 저장 디바이스로 델리게이트하도록 추가로 구성된다. 일부 실시예들에서, 외부 제거가능 키 저장 디바이스는, 예컨대, PKI 스마트 카드일 수 있는 스마트 카드를 포함할 수 있다.
[0096] 일부 실시예들에서, 장치는 시간 값을 제공하기 위한 클럭(170)을 더 포함할 수 있다. 일부 실시예들에서, 장치는, 예컨대, 사용자와 연관된 개인 키를 사용하여 시간 값을 서명함으로써, 원-타임 패스워드를 생성하기 위한 동적 변수로서 시간 값을 사용하도록 구성될 수 있다.
[0097] 도 2는 본 발명의 또 다른 양상에 따른 본 발명의 예시적 방법(200)을 개략적으로 예시한다. 장치는 다음의 단계들을 포함할 수 있다. 단계(210): 일부 실시예들에서, 서명 디바이스는 호스트 컴퓨터에 연결될 수 있으며, USB 대용량 저장 디바이스 클래스 중의 디바이스로서 그 자체를 제시할 수 있다. 단계(220): 호스트 컴퓨터는 USB 대용량 저장 디바이스 클래스 중의 디바이스에 파일들을 저장하기 위하여 표준 인터페이스를 통해 서명 디바이스가 호스트 컴퓨터에 제시한 대용량 저장 디바이스에 입력 파일을 저장함으로써 입력 파일을 연결된 서명 디바이스에 전송할 수 있다. 단계(230): 서명 디바이스는 그 자체의 USB 인터페이스에 의해 서명 디바이스가 연결되는 호스트 컴퓨터로부터 입력 파일을 수신할 수 있다. 단계(240): 서명 디바이스는 그 다음, 사용자와 연관된 공개-개인 키 쌍 중 개인 키를 사용하여, 수신된 입력 파일을 암호 프로세싱할 수 있다. 단계(250): 서명 디바이스는 출력 파일에 입력 파일의 암호 프로세싱의 결과(예컨대, 서명 또는 암호화해제된 파일 또는 원-타임 패스워드)를 저장할 수 있다. 단계(260): 호스트 컴퓨터는 USB 대용량 저장 디바이스 클래스 중의 디바이스로부터 파일을 판독하기 위하여 표준 인터페이스를 통해 서명 디바이스가 호스트 컴퓨터에 제시한 대용량 저장 디바이스로부터 출력 파일을 판독함으로써 결과를 획득할 수 있다.
[0098] 도 3은 본 발명의 또 다른 양상에 따른 본 발명의 예시적 시스템(300)을 개략적으로 예시한다. 시스템은: 원격을 액세스가능한 애플리케이션을 호스팅하기 위한 애플리케이션 서버(310); 사용자(390)가 애플리케이션에 의해 호스팅되는 원격으로 액세스가능한 애플리케이션과 상호작용하게 하기 위한 액세스 디바이스(320) ― 여기서, 애플리케이션 서버 및 액세스 디바이스는 인터넷과 같은 공중 전화 또는 컴퓨터 네트워크(350)를 통해 서로 통신할 수 있음 ― ; 및 액세스 디바이스에 로컬로 연결된 서명 디바이스(330)를 포함할 수 있으며, 여기서, 서명 디바이스는 도 1과 관련하여 설명되는 바와 같은 장치를 포함할 수 있고, 여기서, 서명 디바이스는 수신된 전자 파일에 대하여 서명을 생성하고 서명을 포함하는 출력 파일을 호스트에 리턴하기 위하여, 사용자와 연관된 개인 키를 사용하여 서명될 전자 파일(예컨대, 전자 문서)을 포함하는 입력 파일을 액세스 디바이스를 통해 수신하도록 구성된다. 일부 실시예들에서, 시스템은 생성된 서명을 검증하기 위한 검증 컴포넌트(340)를 포함할 수 있다. 일부 실시예들에서, 서명은 도 2와 관련하여 설명되는 방법을 사용하여 획득될 수 있다.
[0099] 다수의 구현들이 설명되었다. 그렇지만, 다양한 변경들이 이루어질 수 있다는 것이 이해될 것이다. 예컨대, 하나 또는 그 초과의 구현들의 엘리먼트들이 결합되거나, 삭제되거나, 수정되거나, 또는 보충됨으로써 추가적인 구현들을 형성할 수 있다. 따라서, 다른 구현들이 첨부된 청구항들의 범위 내에 있다. 게다가, 본 발명의 특정 특성이 수 개의 구현들 중 오직 하나의 구현에 관해 개시되었을 수 있지만, 그러한 특성은, 임의의 주어진 애플리케이션 또는 특정 애플리케이션에 대해 바람직하고 유리할 수 있기 때문에, 다른 구현들의 하나 또는 그 초과의 다른 특성들과 결합될 수 있다. 본 발명의 다양한 실시예들이 위에 설명되었지만, 그들 실시예들은 제한으로서가 아닌 단지 예로서만 제시되었다는 것이 이해되어야 한다. 특히, 청구된 요지를 설명하려는 목적들을 위해 컴포넌트들 또는 방법들의 모든 각각의 가능한 결합을 설명하는 것은 물론 가능하지 않지만, 당업자는, 본 발명의 많은 추가적인 결합들 및 치환들이 가능하다는 것을 인지할 수 있다. 따라서, 본 발명의 외연 및 범위는 위에 설명된 예시적인 실시예들 중 임의의 실시예에 의해 제한되어서는 안되며, 오직 다음의 청구항들 및 그들의 등가물들에 따라서만 정의되어야 한다.

Claims (28)

  1. 장치로서,
    상기 장치를 호스트 컴퓨터에 로컬 연결하기 위한 통신 인터페이스; 및
    제1 입력 데이터와 암호 시크릿 키를 암호 결합함으로써 생성된 암호 프로세싱 결과를 제공하도록 구성된 데이터 프로세싱 컴포넌트
    를 포함하고,
    상기 장치는, 상기 장치가 상기 통신 인터페이스에 의해 상기 호스트 컴퓨터에 연결될 때, 상기 호스트 컴퓨터상의 애플리케이션이 파일들을 교환하기 위해 표준 대용량 저장 액세스 메커니즘을 통해 액세스할 수 있는 대용량 저장 디바이스로서 자신을 상기 호스트 컴퓨터에 제시하도록 구성되고,
    상기 통신 인터페이스는 암호 프로세싱 결과를 포함하는 출력 파일을 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터에 리턴하도록 구성되고, 상기 호스트 컴퓨터는 상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 판독하기 위한 메커니즘을 사용하여 상기 통신 인터페이스를 통해 상기 장치로부터 상기 출력을 판독함으로써 상기 출력 파일을 획득하고,
    상기 장치는 입력 파일의 적어도 일부 콘텐츠들에 대하여 디지털 서명을 생성하도록 추가로 구성되고,
    상기 통신 인터페이스는 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하도록 추가로 구성되고, 상기 호스트 컴퓨터는 상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 저장하기 위한 메커니즘을 통해 상기 장치에 의해 제시된 상기 대용량 저장 디바이스에 상기 입력 파일을 저장함으로써 상기 통신 인터페이스를 통해 상기 입력 파일을 상기 장치에 전송하고,
    상기 제1 입력 데이터는 상기 입력 파일의 상기 적어도 일부 콘텐츠들을 나타내는 값에 기초하고,
    상기 디지털 서명의 생성은 상기 입력 파일의 수신시에 일어나고, 그리고
    상기 디지털 서명은 상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것의 결과에 포함되는,
    장치.
  2. 제1항에 있어서,
    상기 통신 인터페이스는 USB(Universal Serial Bus) 인터페이스를 포함하고,
    상기 장치는, 상기 장치가 상기 호스트 컴퓨터에 연결될 때, USB 대용량 저장 디바이스 클래스 중 USB 디바이스로서 자신을 상기 호스트 컴퓨터에 제시하도록 추가로 구성되는,
    장치.
  3. 제1항 또는 제2항에 있어서,
    상기 암호 시크릿 키를 저장하도록 구성된 메모리 컴포넌트를 더 포함하고,
    상기 데이터 프로세싱 컴포넌트는 상기 암호 시크릿 키를 사용하여 암호 계산들을 수행하도록 구성되고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 데이터 프로세싱 컴포넌트가 상기 암호 계산들을 수행하는 것을 포함하는,
    장치.
  4. 제1항 또는 제2항에 있어서,
    외부의 제거가능 키 저장 디바이스와 커맨드들 및 응답들을 수신 및 교환하기 위한 제2 통신 인터페이스를 더 포함하고,
    상기 키 저장 디바이스는 상기 암호 시크릿 키를 저장하도록 구성된 키 저장 디바이스 메모리 컴포넌트 및 상기 암호 시크릿 키를 사용하여 암호 계산들을 수행하도록 구성된 키 저장 디바이스 데이터 프로세싱 컴포넌트를 포함하고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 키 저장 디바이스 데이터 프로세싱 컴포넌트가 상기 암호 시크릿 키를 사용하여 상기 암호 계산들을 수행하는 것을 포함하는,
    장치.
  5. 제4항에 있어서,
    상기 제2 통신 인터페이스는 ISO(International Organization for Standardization) 7816 호환가능 스마트 카드 인터페이스를 포함하고, 상기 커맨드들 및 응답들은 스마트 카드 커맨드들 및 응답들을 포함하며, 상기 키 저장 디바이스는 스마트 카드를 포함하는,
    장치.
  6. 제1항 또는 제2항에 있어서,
    상기 장치의 사용자가 승인을 표시하기 위한 사용자 입력 인터페이스를 더 포함하고,
    상기 장치는 상기 사용자에 의한 승인을 상기 사용자 입력 인터페이스에 의해 캡처하도록 구성되고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것 중 적어도 하나는 상기 장치가 상기 승인을 획득하는 것을 조건으로 하는,
    장치.
  7. 제1항 또는 제2항에 있어서,
    상기 암호 시크릿 키는 비대칭 공개-개인 키 쌍의 시크릿 개인 키를 포함하고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것은 상기 시크릿 개인 키로 매개변수화되는 비대칭 암호 알고리즘을 상기 제1 입력 데이터에 대해 수행하는 것을 포함하는,
    장치.
  8. 제1항 또는 제2항에 있어서,
    상기 입력 파일의 상기 적어도 일부 콘텐츠들은 전체 입력 파일을 포함하는,
    장치.
  9. 제1항 또는 제2항에 있어서,
    상기 장치의 사용자에게 출력들을 제시하기 위한 사용자 출력 인터페이스 및 상기 사용자로부터의 입력들을 캡처하기 위한 사용자 입력 인터페이스를 더 포함하고,
    상기 장치는,
    상기 입력 파일의 복수의 가능한 파일 타입의 포맷들 중 적어도 하나의 타입의 포맷을 인식하고,
    상기 입력 파일의 상기 적어도 일부 콘텐츠들을 판독하고,
    상기 적어도 일부 콘텐츠들을 상기 사용자 출력 인터페이스에 의해 상기 사용자에게 제시하며; 그리고
    상기 사용자에게 제시된 상기 적어도 일부 콘텐츠들의 사용자에 의해 승인 또는 거절 중 적어도 하나를 상기 사용자 입력 인터페이스에 의해 상기 사용자로부터 캡처하도록
    추가로 구성되고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것은 상기 장치가 상기 승인을 획득하는 것을 조건으로 하는,
    장치.
  10. 제1항 또는 제2항에 있어서,
    패스워드 값 또는 PIN 값 중 적어도 하나를 상기 장치의 사용자가 상기 장치에 제공하기 위한 사용자 입력 인터페이스를 더 포함하고,
    상기 장치는 상기 사용자 입력 인터페이스에 의해 상기 PIN 값 또는 상기 패스워드 값 중 적어도 하나를 상기 사용자로부터 획득하고 상기 PIN 값 또는 상기 패스워드 값 중 상기 적어도 하나가 정확한지의 여부를 검증하도록 추가로 구성되고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것은 상기 사용자에 의해 제공되는 상기 패스워드 값 또는 상기 PIN 값 중 상기 적어도 하나가 정확한 것을 조건으로 하는,
    장치.
  11. 제10항에 있어서,
    기준 값을 저장하도록 추가로 구성되고,
    상기 획득된 PIN 값 또는 획득된 패스워드 값 중 적어도 하나를 검증하는 것은 상기 장치가 상기 획득된 PIN 값 또는 상기 획득된 패스워드 값 중 상기 적어도 하나와 상기 기준 값을 비교하는 것을 포함하는,
    장치.
  12. 제10항에 있어서,
    외부의 제거가능 디바이스를 사용하여 커맨드들 및 응답들을 수신 및 교환하기 위한 제2 통신 인터페이스를 더 포함하고,
    상기 획득된 PIN 값 또는 획득된 패스워드 값 중 적어도 하나를 검증하는 것은,
    상기 장치가 상기 외부의 제거가능 디바이스가 검증할, 상기 획득된 PIN 값 또는 상기 획득된 패스워드 값 중 적어도 하나를 나타내는 PIN 표현 값 또는 패스워드 표현 값 중 적어도 하나를 상기 제2 통신 인터페이스를 통해 상기 외부의 제거가능 디바이스에 통신하는 것, 및
    상기 장치가 상기 표현 값의 상기 외부의 제거가능 디바이스에 의한 검증의 결과를 상기 제2 통신 인터페이스를 통해 상기 외부의 제거가능 디바이스로부터 수신하는 것
    을 포함하는,
    장치.
  13. 제1항 또는 제2항에 있어서,
    상기 장치의 사용자의 바이오메트릭 측정을 캡처하기 위한 바이오메트릭 센서를 더 포함하고,
    상기 장치는 상기 바이오메트릭 센서에 의해 상기 사용자로부터의 상기 바이오메트릭 측정을 획득하고 상기 바이오메트릭 측정이 정확한지의 여부를 검증하도록 추가로 구성되고,
    상기 제1 입력 데이터와 암호 시크릿 키를 암호 결합하는 것 또는 상기 암호 결합의 결과를 포함하는 적어도 하나의 출력 파일을 리턴하는 것 중 적어도 하나는 상기 획득된 바이오메트릭 측정이 정확한 것을 조건으로 하는,
    장치.
  14. 장치를 호스트 컴퓨터에 로컬 연결하기 위한 통신 인터페이스를 포함하는 상기 장치에 사용하기 위한 전자 입력 파일에 대해 디지털 서명을 생성하기 위한 방법으로서,
    상기 장치는,
    상기 장치가 상기 호스트 컴퓨터에 연결될 때, 상기 호스트 컴퓨터 상의 애플리케이션이 표준 대용량 저장 액세스 메커니즘을 통해 파일들을 판독 및 저장하기 위해 액세스할 수 있는 대용량 저장 디바이스로서 자신을 상기 호스트 컴퓨터에 제시하고,
    상기 통신 인터페이스를 통해 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하고,
    상기 입력 파일의 수신시, 시크릿 서명 키에 의해 매개변수화되는 디지털 서명 알고리즘을 상기 입력 파일에 적용함으로써 상기 입력 파일에 대하여 상기 디지털 서명을 생성하고,
    상기 입력 파일에 대한 상기 디지털 서명을 포함하는 출력 파일을 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터에 리턴하도록
    구성되고,
    상기 방법은,
    상기 호스트 컴퓨터에서 상기 장치와의 연결을 형성하는 단계;
    상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 저장하기 위한 방법을 사용하여 상기 장치에 의해 제시되는 상기 대용량 저장 디바이스에 입력 파일을 저장함으로써 상기 호스트 컴퓨터가 상기 입력 파일을 상기 통신 인터페이스를 통해 상기 장치에 전송하는 단계;
    상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 판독하기 위한 방법을 사용하여 상기 출력 파일을 판독함으로써 상기 호스트 컴퓨터가 상기 통신 인터페이스를 통해 상기 장치로부터 상기 출력 파일을 획득하는 단계; 및
    상기 출력 파일로부터 상기 디지털 서명을 리트리브하는 단계
    를 포함하는,
    방법.
  15. 전자 입력 파일에 대해 디지털 서명을 생성하기 위한 시스템으로서,
    호스트 컴퓨터를 포함하며,
    상기 호스트 컴퓨터는,
    소프트웨어 애플리케이션들을 실행하기 위한 데이터 프로세싱 컴포넌트,
    적어도 하나의 외부의 주변 디바이스를 상기 호스트 컴퓨터에 제거가능하게 연결하기 위한 연결 메커니즘
    을 포함하고;
    상기 호스트 컴퓨터는,
    대용량 저장 디바이스들의 클래스를 지원하고,
    디바이스들이 상기 호스트 컴퓨터에 연결될 때 상기 디바이스들이 자신들을 대용량 저장 디바이스들의 클래스에 속하는 것으로 통지하는 경우, 상기 연결 메커니즘을 통해 상기 호스트 컴퓨터에 연결되는 디바이스들을 상기 대용량 저장 디바이스들의 클래스에 속하는 것으로서 인식하고,
    상기 연결 메커니즘을 통해 상기 호스트 컴퓨터에 연결되고 상기 대용량 저장 디바이스들의 클래스에 속하는 것으로 상기 호스트 컴퓨터에 의해 인식된 대용량 저장 디바이스들에 파일들을 판독 및 저장하기 위한 표준 대용량 저장 액세스 메커니즘을 지원하고,
    상기 대용량 저장 디바이스들로부터 상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 판독하기 위한 제1 방법 및 상기 대용량 저장 디바이스들에 상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 저장하기 위한 제2 방법을 상기 소프트웨어 애플리케이션들에 제공하도록
    추가로 구성되고,
    상기 시스템은 서명 장치를 더 포함하고,
    상기 서명 장치는, 상기 연결 메커니즘에 의해 상기 호스트 컴퓨터에 상기 서명 장치를 로컬 연결하기 위한 통신 인터페이스를 포함하고,
    상기 서명 장치가 상기 호스트 컴퓨터에 연결될 때, 자신을 상기 대용량 저장 디바이스의 클래스에 속하는 것으로 상기 호스트 컴퓨터에 제시하도록 구성되고, 이로써, 상기 서명 장치는 상기 통신 인터페이스 및 상기 연결 메커니즘을 통해 상기 호스트 컴퓨터에 연결되고,
    상기 서명 장치는,
    상기 통신 인터페이스를 통해 상기 호스트 컴퓨터로부터 상기 입력 파일을 수신하고,
    상기 입력 파일의 수신시, 시크릿 서명 키에 의해 매개변수화되는 디지털 서명 알고리즘을 상기 입력 파일에 적용함으로써 상기 입력 파일에 대하여 상기 디지털 서명을 생성하고,
    상기 입력 파일에 대한 상기 디지털 서명을 포함하는 출력 파일을 상기 통신 인터페이스를 통해 상기 호스트 컴퓨터에 리턴하도록
    추가로 구성되고,
    상기 호스트 컴퓨터는 서명 애플리케이션을 실행하고, 상기 서명 애플리케이션은,
    상기 표준 대용량 저장 액세스 메커니즘 중 파일들을 저장하기 위한 제2 방법을 사용하여 상기 입력 파일을 상기 장치에 저장함으로써 상기 통신 인터페이스를 통해 상기 입력 파일을 상기 서명 장치에 전송하고,
    상기 표준 대용량 저장 액세스 메커니즘 중 상기 제1 방법을 사용하여 상기 출력 파일을 판독함으로써 상기 호스트 컴퓨터가 상기 통신 인터페이스를 통해 상기 서명 장치로부터 상기 출력 파일을 획득하도록
    구성되는,
    시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020167021005A 2013-12-31 2014-12-18 전자 서명 방법들, 시스템들 및 장치 KR102144517B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361922128P 2013-12-31 2013-12-31
US61/922,128 2013-12-31
PCT/US2014/071068 WO2015102918A1 (en) 2013-12-31 2014-12-18 Electronic signing methods, systems and apparatus

Publications (2)

Publication Number Publication Date
KR20160128998A KR20160128998A (ko) 2016-11-08
KR102144517B1 true KR102144517B1 (ko) 2020-08-14

Family

ID=52358990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021005A KR102144517B1 (ko) 2013-12-31 2014-12-18 전자 서명 방법들, 시스템들 및 장치

Country Status (8)

Country Link
US (1) US9495546B2 (ko)
EP (1) EP3090504B1 (ko)
JP (1) JP2017505048A (ko)
KR (1) KR102144517B1 (ko)
CN (1) CN106063182B (ko)
BR (1) BR112016015416A2 (ko)
MX (1) MX363020B (ko)
WO (1) WO2015102918A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537833B2 (en) 2014-12-31 2017-01-03 Google Inc. Secure host communications
US9547773B2 (en) 2014-12-31 2017-01-17 Google Inc. Secure event log management
US9760727B2 (en) * 2014-12-31 2017-09-12 Google Inc. Secure host interactions
CN105069346B (zh) * 2015-08-19 2018-04-20 深圳市文鼎创数据科技有限公司 电子签名设备
JP6828014B2 (ja) * 2015-10-07 2021-02-10 株式会社ワコム 1つまたは複数の署名デバイスに通信可能に接続されたローカルコンピューヒング装置によって実行されるコンピュータ実装方法
US10516538B2 (en) 2016-11-01 2019-12-24 Netcomm Inc. System and method for digitally signing documents using biometric data in a blockchain or PKI
CN106899600A (zh) * 2017-03-09 2017-06-27 广州力小浦科技有限公司 ***的数据处理方法及装置
US10540342B2 (en) * 2017-05-08 2020-01-21 American Express Travel Related Services Company, Inc. In-memory transaction processing
JP6736033B2 (ja) * 2018-06-12 2020-08-05 フレセッツ株式会社 暗号通貨のためのウォレット装置及びその装置を用いる署名方法
US12041039B2 (en) 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator
CN110688519B (zh) * 2019-09-30 2022-07-15 腾讯音乐娱乐科技(深圳)有限公司 播放媒体数据的方法、装置、***、设备及存储介质
CN112822228B (zh) * 2019-11-15 2023-05-02 北京中电普华信息技术有限公司 一种基于国密算法的浏览器文件加密上传方法及***
JP7249037B2 (ja) * 2020-01-10 2023-03-30 株式会社HashBank 暗号通貨のためのウォレットシステム
JPWO2022091544A1 (ko) * 2020-10-28 2022-05-05

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002258745A (ja) 2001-03-06 2002-09-11 Sony Corp 電子署名装置
JP2004362516A (ja) 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb暗号化装置及びプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3749640B2 (ja) * 1999-10-15 2006-03-01 株式会社東芝 Icカード利用装置、icカード及び記憶媒体
JP4622082B2 (ja) * 2000-10-20 2011-02-02 ソニー株式会社 データ再生装置、データ記録装置、およびデータ再生方法、データ記録方法、リスト更新方法、並びにプログラム提供媒体
JP2003085149A (ja) * 2001-06-07 2003-03-20 Systemneeds Inc 指紋認証装置及び認証システム
BR0105727A (pt) * 2001-11-26 2002-03-26 Carlos Cesar Moretzsohn Rocha Sistema para prover um ambiente individual de processamento de dados, com a identificação e o conteúdo pessoal de cada usuário armazenados, em um dispositivo portátil, que interage com uma estação de trabalho para operar programas aplicativos em servidores
JP4454908B2 (ja) * 2002-04-05 2010-04-21 キヤノン株式会社 情報処理装置、情報処理方法、プログラム及び記録媒体
EP1349031B1 (en) * 2002-03-18 2003-11-05 Ubs Ag Secure user and data authentication over a communication network
ATE254773T1 (de) * 2002-03-18 2003-12-15 Ubs Ag Sichere benutzerauthenifizierung über ein kommunikationsnetzwerk
WO2003105400A1 (ja) * 2002-06-07 2003-12-18 ソニー株式会社 データ処理システム、データ処理装置、および方法、並びにコンピュータ・プログラム
EP1646218A4 (en) * 2003-07-11 2006-10-25 Yoshiaki Takida FAX MACHINE OF THE NEXT GENERATION INTERNET TERMINAL TYPE
JP4599814B2 (ja) * 2003-07-30 2010-12-15 ソニー株式会社 認証処理装置及びセキュリティ処理方法
JP2006031604A (ja) * 2004-07-21 2006-02-02 Denso Wave Inc 非接触通信システム
US7672003B2 (en) * 2004-09-01 2010-03-02 Eric Morgan Dowling Network scanner for global document creation, transmission and management
FR2898001A1 (fr) * 2006-02-28 2007-08-31 Gemplus Sa Gestion d'acces securise a un contenu numerique securise dans un objet communicant portable
JP3899365B1 (ja) * 2006-07-05 2007-03-28 有限会社トゥールビヨン 情報記憶装置
JP4827684B2 (ja) * 2006-10-17 2011-11-30 有限会社トゥールビヨン 情報記憶装置
US20080263363A1 (en) * 2007-01-22 2008-10-23 Spyrus, Inc. Portable Data Encryption Device with Configurable Security Functionality and Method for File Encryption
JP2008225661A (ja) * 2007-03-09 2008-09-25 Sony Corp 電子機器、および情報処理方法
JP2009181316A (ja) * 2008-01-30 2009-08-13 Ntt Electornics Corp 暗証番号認証暗号装置
US20090276474A1 (en) * 2008-05-01 2009-11-05 Rotem Sela Method for copying protected data from one secured storage device to another via a third party
US8966580B2 (en) * 2008-05-01 2015-02-24 Sandisk Il Ltd. System and method for copying protected data from one secured storage device to another via a third party
JP2010204809A (ja) * 2009-03-02 2010-09-16 Toppan Printing Co Ltd Usb型トークン
EP2583212B1 (en) 2010-06-16 2019-08-14 OneSpan International GmbH Mass storage device memory encryption methods, systems, and apparatus
JP2012008756A (ja) * 2010-06-24 2012-01-12 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
WO2013074631A2 (en) * 2011-11-14 2013-05-23 Vasco Data Security, Inc. A smart card reader with a secure logging feature
WO2014022755A2 (en) * 2012-08-02 2014-02-06 Cellsec Limited Automated multi-level federation and enforcement of information management policies in a device network
US20150103383A1 (en) * 2013-10-10 2015-04-16 Eric Morgan Dowling Network scanner for global document creation, transmission and management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002258745A (ja) 2001-03-06 2002-09-11 Sony Corp 電子署名装置
JP2004362516A (ja) 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb暗号化装置及びプログラム

Also Published As

Publication number Publication date
MX363020B (es) 2019-03-05
US9495546B2 (en) 2016-11-15
CN106063182A (zh) 2016-10-26
WO2015102918A1 (en) 2015-07-09
JP2017505048A (ja) 2017-02-09
MX2016008710A (es) 2016-10-07
CN106063182B (zh) 2019-11-19
BR112016015416A2 (pt) 2017-08-08
EP3090504A1 (en) 2016-11-09
EP3090504B1 (en) 2020-04-29
KR20160128998A (ko) 2016-11-08
US20150186658A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
KR102144517B1 (ko) 전자 서명 방법들, 시스템들 및 장치
US8967477B2 (en) Smart card reader with a secure logging feature
US9124433B2 (en) Remote authentication and transaction signatures
EP2158717B1 (en) Remote authentication and transaction signatures
RU158940U1 (ru) Токен строгой аутентификации с визуальным выводом подписей инфраструктуры открытых ключей (pki)
EP2885904B1 (en) User-convenient authentication method and apparatus using a mobile authentication application
US8667285B2 (en) Remote authentication and transaction signatures
EP3605997A1 (en) Method, apparatus and system for securing a mobile application
EP3586264B1 (en) Securely performing cryptographic operations
US7545930B1 (en) Portable terminal
JP5675979B2 (ja) スマートカードを個人専有化する単純化された方法とその関連装置
JP5489913B2 (ja) 携帯型情報装置及び暗号化通信プログラム
TWI772648B (zh) 基於集體驗證的部分資料驗證方法
Oliveira Dynamic QR codes for Ticketing Systems
Sowers Architecture for Issuing DoD Mobile Derived Credentials

Legal Events

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