KR102628775B1 - 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법 - Google Patents

인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법 Download PDF

Info

Publication number
KR102628775B1
KR102628775B1 KR1020230014347A KR20230014347A KR102628775B1 KR 102628775 B1 KR102628775 B1 KR 102628775B1 KR 1020230014347 A KR1020230014347 A KR 1020230014347A KR 20230014347 A KR20230014347 A KR 20230014347A KR 102628775 B1 KR102628775 B1 KR 102628775B1
Authority
KR
South Korea
Prior art keywords
hsm
token
user terminal
terminal device
client certificate
Prior art date
Application number
KR1020230014347A
Other languages
English (en)
Inventor
김기영
김성원
황재형
Original Assignee
(주)케이스마텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)케이스마텍 filed Critical (주)케이스마텍
Priority to KR1020230014347A priority Critical patent/KR102628775B1/ko
Application granted granted Critical
Publication of KR102628775B1 publication Critical patent/KR102628775B1/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/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
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법이 개시된다. 사용자 단말 장치는 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램을 저장하고, HSM 서버는 클라우드 환경에서 동작하며, 사용자 단말 장치로부터 토큰에 접근하기 위한 클라이언트 인증서가 제출되면, 클라이언트 인증서를 검증하고, 검증된 클라이언트 인증서를 기반으로 토큰에 접근하기 위한 계정을 자동으로 지정하는 HSM 서버를 포함한다.

Description

인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법{Cloud HSM system for accessing token based on certificates and ID and method thereof}
본 발명은 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법에 관한 것으로, 보다 구체적으로, 상호인증을 위해 발급된 클라이언트 인증서와 계정을 연동하여 토큰에 접근하도록 하는 인증서와 계정 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법에 관한 것이다.
일반적으로 인증서와 개인키는 공인인증서의 경우처럼 파일 형태로 존재하며 사용하기 위해서 메모리로 로드를 한 후에 패스워드로 암호화된 개인키를 복호화 하여 그 키를 메모리에서 사용한다.
그런데 이러한 방식은 파일 형태로 가져간 뒤에 키로깅을 하여 패스워드를 가로채는 방식으로 탈취를 하거나 암호화가 풀린 메모리 상에서 가져가는 방식을 위하며 Heart Bleed와 같은 공격이 메모리 상의 서버 인증서를 가져가는 공략법으로 널리 알려져 있다.
이러한 방식으로 인증서나 키를 파일이나 메모리 상에 노출되는 것을 막아 보안을 강화하는 방법으로 별도의 하드웨어를 두어 키를 꺼내지 못하게 한 뒤에 서명, 암호화나 복호화처럼 비밀키를 사용할 일이 있을 경우 그 장비에 보내어 작업을 한 후에 그 결과를 받는 방식으로 동작 키를 안전하게 보호하는 방식이 하드웨어 보안 모듈(HSM, Hardware Security Module)의 동작 방식이 있다.
네트워크 방식의 HSM 서비스를 사용하기 위해서, HSM 서버와 사용자 단말 장치는 모두 인증서를 사용하여 자신을 증명하는 방식을 사용한다. 즉, HSM 서버와 사용자 단말 장치는 보안채널을 공격할 수 없도록 하기 위해서 인증서 기반으로 상호 인증을 통해 안전한 채널을 생성한 후 지정된 파티션에 접근하여 설정된 PIN을 사용하여 인증하는 상호인증 방식을 사용한다.
도 1은 기존의 HSM 시스템에서 제1 및 제2사용자 서버들(10, 20)이 HSM 서버(30)에 접근하는 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 클라우드 환경에서 제1 및 제2사용자 서버들(10, 20)이 하나의 HSM 서버(30)를 공유해서 사용할 경우 모든 사용자 서버들(10, 20)의 인증서는 HSM 서버(30)에서 검증이 된다. 이는, 제1 및 제2사용자 서버들(10, 20)의 인증서는 모두 동일한 HSM 서버(30)에서 발급받은 인증서이기 때문이다. 제1 및 제2사용자 서버들(10, 20)은 동일한 HSM 서버(30)에서 발급한 인증서를 사용하기 때문에 모두 HSM 서버(30)에 접속이 허용되고, 이 때, 접근은 불가하나 타 사용자들의 파티션도 확인이 가능하다.
타 사용자의 파티션에 접근하기 위해서는 오직 파티션에 대한 PIN에 의해서만 식별이 되기 때문에 PIN 정보만 알면 제1사용자 서버(10)는 제2사용자 서0버(20)에 할당된 파티션B에 접근하거나 제2사용자 서버(20)는 제1사용자 서버(10)에 할당된 파티션A에 접근할 수 있게 된다. 즉, 사전에 제1사용자 서버(10)에서 파티션B에 접근하도록 설정되면, 상호인증에 의해 채널이 형성된 후, 파티션B에 접근이 가능하게 된다. 또한, 제1사용자 서버(10)가 잘못된 PIN을 이용하여 파티션B에 접근시도하면 인증에는 실패하지만, 잘못된 접근 시도에 의해 HSM 서버(30)는 락(LOCK) 상태가 되어 HSM 서비스를 제공하지 못 하게 될 수도 있다.
국내 등록특허공보 10-2258215 (2021년 5월25일 등록)
본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로, 클라우드 HSM 환경에서 채널 보호용 클라이언트 인증서를 계정과 연동하여 토큰(또는 해당 파티션)에 접근하도록 함으로써 타 클라이언트 인증서로는 허용되지 않은 HSM의 토큰에 접근이 불가하도록 하는 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
이에 인증서와 계정을 연동하여 다른 인증서로는 내 HSM에 접근이 근본적으로 불가하게 하고자 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 실시예에 따르면, 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템은, 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램이 저장되는 사용자 단말 장치; 및 클라우드 환경에서 동작하며, 상기 HSM 클라이언트 프로그램과 연동하여 HSM 서비스를 제공하는 HSM 서버를 포함하고, 상기 HSM 서버는, 상기 사용자 단말 장치로부터 토큰에 접근하기 위한 클라이언트 인증서가 제출되면, 상기 클라이언트 인증서를 검증하고, 검증된 클라이언트 인증서를 기반으로 상기 토큰에 접근하기 위한 계정을 자동으로 지정할 수 있다.
상기 HSM 서버는, 상기 사용자 단말 장치와의 상호인증을 위해 클라이언트 인증서를 사전에 발급하고, 상기 발급된 클라이언트 인증서의 정보를 상기 토큰에 접근하기 위한 계정으로 설정할 수 있다.
상기 HSM 서버는, 상기 사용자 단말 장치에게 클라이언트 인증서와 토큰 발급 시, 상기 클라이언트 인증서의 CN(Common Name) 정보를 사용자 단말 장치의 계정으로 설정하고, 상기 CN 정보를 이용하여 상기 토큰의 DB 테이블 이름을 생성할 수 있다.
상기 HSM 서버는, 상기 사용자 단말 장치로부터 제출된 검증 완료된 클라이언트 인증서로부터 CN 정보를 확인하고, 상기 확인된 CN 정보와 동일한 이름을 가지는 DB 테이블에 접근하여 토큰 서비스를 제공할 수 있다.
한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 실시예에 따르면, 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법은, (A) 사용자 단말 장치가, 응용 프로그램이 실행되면 HSM(Hardware Security Module) 클라이언트 프로그램에 의해, HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하여 상기 HSM 서버 내 토큰 접근을 시도하는 단계; (B) 상기 HSM 서버가, 상기 (A) 단계에서 사용자 단말 장치로부터 제출되는 클라이언트 인증서를 검증하는 단계; 및 (C) 상기 HSM 서버가, 상기 (B) 단계에서 검증된 클라이언트 인증서를 기반으로 상기 토큰에 접근하기 위한 계정을 자동으로 지정하여 토큰에 접근하는 단계;를 포함할 수 있다.
상기 HSM 서버는, (D) 상기 (A) 단계 이전에, 상기 사용자 단말 장치와의 상호인증을 위해 클라이언트 인증서를 사전에 발급하고, 상기 발급된 클라이언트 인증서의 정보를 상기 토큰에 접근하기 위한 계정으로 설정하는 단계;를 더 포함할 수 있다.
상기 (D) 단계는, 상기 HSM 서버가, 상기 사용자 단말 장치에게 클라이언트 인증서와 토큰 발급 시, 상기 클라이언트 인증서의 CN(Common Name) 정보를 사용자 단말 장치의 계정으로 설정하고, 상기 CN 정보를 이용하여 상기 토큰의 DB 테이블 이름을 생성할 수 있다.
상기 (C) 단계는, 상기 HSM 서버가, 상기 사용자 단말 장치로부터 제출된 검증 완료된 클라이언트 인증서로부터 CN 정보를 확인하고, 상기 확인된 CN 정보와 동일한 이름을 가지는 DB 테이블에 접근하여 토큰 서비스를 제공할 수 있다.
본 발명은, 사용자 단말 장치가 토큰 접근 시, 채널 보호를 위한 상호인증을 위해 사용되는 클라이언트 인증서를 계정과 연계하여 지정된 토큰에만 접근하도록 함으로써 다른 사용자가 토큰에 접속할 PIN 정보를 알고 있는 경우에도 다른 사용자가 다른 사용자의 클라이언트 인증서를 이용하여 채널을 형성하는 경우 사용자의 계정(즉, 토큰)에 근본적으로 접속하거나 접속을 시도하는 것 자체를 차단하여 독립성을 높이고 공격받을 가능성을 낮출 수 있다.
본 발명의 효과들은 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 기존의 HSM 시스템에서 제1 및 제2사용자 서버들(10, 20)이 HSM 서버(300)에 접근하는 동작을 설명하기 위한 도면,
도 2는 본 발명의 실시 예에 따른 HSM 시스템에서 제1 및 제2사용자 단말 장치들(100, 200)이 HSM 서버(300)의 해당 파티션(즉, 해당 토큰)에 접근하는 동작을 설명하기 위한 도면,
도 3은 본 발명의 실시 예에 따른 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템을 도시한 도면,
도 4는 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면,
도 5는 제1클라이언트 인증서에 포함된 정보의 일부를 도시한 도면,
도 6은 제1클라이언트 인증서에 기반하여 작성된 이름을 가지는 DB 테이블을 도시한 도면,
도 7은 상술한 본 발명의 실시 예에 따른 인증서와 계정을 기반으로 토큰접근이 가능한 클라우드 HSM 시스템의 동작을 간단히 도식화한 도면,
도 8은 본 발명의 실시 예에 따른 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 생성 방법을 도시한 흐름도, 그리고,
도 9는 본 발명의 실시예에 따른 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법을 도시한 흐름도이다.
본 발명은 취지를 벗어나지 않는 한도에서 다양하게 변경하여 실시할 수 있고, 하나 이상의 실시 예를 가질 수 있다. 그리고 본 발명에서 "발명을 실시하기 위한 구체적인 내용" 및 "도면" 등에 기재한 실시 예는, 본 발명을 구체적으로 설명하기 위한 예시이며, 본 발명의 권리 범위를 제한하거나 한정하는 것은 아니다.
따라서, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자가, 본 발명의 "발명을 실시하기 위한 구체적인 내용" 및 "도면" 등으로부터 용이하게 유추할 수 있는 것은, 본 발명의 범위에 속하는 것으로 해석할 수 있다.
또한, 도면에 표시한 각 구성 요소들의 크기와 형태는, 실시 예의 설명을 위해 과장되어 표현한 것 일 수 있으며, 실제로 실시되는 발명의 크기와 형태를 한정하는 것은 아니다.
본 발명의 명세서에서 사용되는 용어를 특별히 정의하지 않는 이상, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 것과 동일한 의미를 가질 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요 소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성 요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다. 명세에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합 한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도 록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것 만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
이하, 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다.
도 2는 본 발명의 실시 예에 따른 HSM 시스템에서 제1 및 제2사용자 단말 장치들(100, 200)이 HSM 서버(300)의 해당 파티션(즉, 해당 토큰)에 접근하는 동작을 설명하기 위한 도면, 도 3은 본 발명의 실시 예에 따른 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템을 도시한 도면이다.
도 2 및 도 3을 참조하면, 본 발명의 실시 예에 따른 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템은 제1 및 제2사용자 단말 장치들(100, 200) 및 HSM 서버(300)를 포함할 수 있다.
제1 및 제2사용자 단말 장치들(100, 200)은 HSM 서버(300)와 통신하여 HSM 서비스를 이용할 수 있다. 제1 및 제2사용자 단말 장치들(100, 200)은 사용자가 사용하는 컴퓨팅 장치 또는 컴퓨팅 서버로서, 스마트폰, 태블릿, 노트북 및/또는 데스크탑 등 유무선 통신 및 저장이 가능한 전자장치일 수 있다.
제1사용자 단말 장치(100)는 HSM 클라이언트 프로그램을 통해 HSM 서버(300)와 연동하여 제1응용 프로그램에서 필요로 하는 서명 요청, 암호화 요청, 복호화 요청 등 보안과 관련된 HSM 서비스를 사용할 수 있다. 이를 위하여, 제1사용자 단말 장치(100)의 저장부에는 하나 이상의 제1응용 프로그램(Application)과 HSM 클라이언트 프로그램이 저장되어 실행될 수 있다.
HSM 서비스를 사용하기 위하여 제1사용자 단말 장치(100)는 HSM 서버(300)로부터 제1클라이언트 인증서를 발급받아 저장하며, HSM 서버(300)는 제1클라이언트 인증서를 발급하면서 HSM 서버(300) 내에 제1사용자 단말 장치(100)가 접근가능한 파티션A를 할당하고 할당된 파티션A에 토큰A를 생성하여 저장할 수 있다.
또한, 제2사용자 단말 장치(200)는 HSM 클라이언트 프로그램을 통해 HSM 서버(300)와 연동하여 제2응용 프로그램에서 필요로 하는 서명 요청, 암호화 요청, 복호화 요청 등 보안과 관련된 HSM 서비스를 사용할 수 있다. 이를 위하여, 제2사용자 단말 장치(200)의 저장부에는 하나 이상의 제2응용 프로그램과 HSM 클라이언트 프로그램이 저장되어 실행될 수 있다.
HSM 서비스를 사용하기 위하여 제2사용자 단말 장치(200)는 HSM 서버(300)로부터 제2클라이언트 인증서를 발급받아 저장하며, HSM 서버(300)는 제2클라이언트 인증서를 발급하면서 HSM 서버(300) 내에 제2사용자 단말 장치(200)가 접근가능한 파티션B를 할당하고 할당된 파티션B에 토큰B를 생성하여 저장할 수 있다.
제1 및 제2응용 프로그램은 사용자가 필요로 하는 기능을 제공하는 프로그램으로서 사용자가 설치, 실행 또는 삭제할 수 있다. 제1 및 제2응용 프로그램은 예를 들어, WAS(Web Application Server), 자바 어플리케이션, 공동인증서 툴킷을 포함하는 프로그램일 수 있다.
HSM 클라이언트 프로그램은 제1 및 제2사용자 단말 장치들(100, 200)에서 실행되는 제1 및 제2응용 프로그램을 위하여 HSM 서버(300)에서 제공하는 드라이버 소프트웨어일 수 있다. HSM 클라이언트 프로그램은 쉐어드 라이브러리(Shared Library) 형태로 제공될 수 있으며, 제1 및 제2응용 프로그램은 HSM 서버(300)가 제공하는 PKCS(Public Key Cryptography Standard)#11 라이브러리를 로드(load)하여 표준 API(Application Programming Interface)를 호출(call)할 수 있다. 즉, HSM 클라이언트 프로그램은 라이브러리로 혼자 동작하지 못하며 제1 및 제2응용 프로그램이 동적으로 로딩하여 원하는 기능을 호출할 수 있다. PKCS#11은 API HSM 장비를 호출하기 위해 만든 표준 인터페이스 중 하나이다.
도 4는 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면이다.
도 4를 참조하면, PKCS #11 API는 13개의 카테고리로 분류되고 각 카테고리는 한 개 이상의 표준 API를 포함한다.
다시 도 2 및 도 3을 참조하면, HSM 서버(300)는 클라우드 환경에서 동작하며, 제1사용자 단말 장치(100)의 제1응용 프로그램이 표준 API를 호출하여 요청한 HSM 서비스(즉, HSM 기능)를 제공하는 컴퓨팅 장치일 수 있다.
HSM 서버(300)는 개인키, 대칭키 등의 암호키를 안전하게 보관하는 장비로서, 표준 API인 PKCS#11 API를 제공하여 HSM 서버(300)에 저장된 키 정보 및 암호 모듈 기능을 활용 가능하게 한다.
예를 들어, HSM 서버(300)는 제1사용자 단말 장치(100)로부터 서명이 요청되면, 기저장된 개인키로 전자서명하여 생성되는 서명문을 제1사용자 단말 장치(100)로 전송할 수 있다. 또한, HSM 서버(300)는 제1사용자 단말 장치(100)로부터 암호화가 요청되면 대칭키로 암호화한 후 암호문을 제1사용자 단말 장치(100)에게 전송하고, 복호화가 요청되면 대칭키로 복호화한 후 복호문을 제1사용자 단말 장치(100)에게 전송할 수 있다.
한편, HSM 서버(300)는 제1사용자 단말 장치(100)의 제1응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버(300)에서 제공하는 표준 API(예를 들어, PKCS#11)를 이용하여 토큰 생성을 요청하면, 토큰을 생성하고 제1사용자 단말 장치(100)에게 제1클라이언트 인증서를 발급할 수 있다. 이는 제2사용자 단말 장치(200)에도 동일하므로 상세한 설명은 생략한다.
토큰은 HSM 서버(300) 내에서 암호학적인 정보와 기능을 수행하는 논리적 형태의 장치로서, HSM이 제공하는 암호가속기나 안전한 저장기능 등을 이용하여 해당 기능을 수행한다. 하나의 HSM 서버(300)는 다수의 파티션으로 구분될 수 있으며, 각 파티션마다 하나의 토큰을 생성하여 저장할 수 있다.
도 2의 경우, HSM 서버(300)는 제1사용자 단말 장치(100)에게는 제1클라이언트 인증서를 발급하여 제공하고, HSM 서버(300) 내에 제1사용자 단말 장치(100)가 접근가능한 파티션A를 할당한 후, 할당된 파티션A에 토큰A를 생성하여 저장할 수 있다. 이 때, HSM 서버(300)는 도 5 및 도 6에 도시된 것처럼, 제1클라이언트 인증서의 정보 중 일부를 토큰A에 접근하기 위한 계정(ID)으로 설정하고, 토큰A가 이용할 DB 테이블의 이름을 설정된 계정을 이용하여 작성할 수 있다.
도 5는 제1클라이언트 인증서에 포함된 정보의 일부를 도시한 도면, 도 6은 제1클라이언트 인증서에 기반하여 작성된 이름을 가지는 DB 테이블을 도시한 도면이다.
도 5 및 도 6을 참조하면, HSM 서버(300)는 제1사용자 단말 장치(100)에게 제1클라이언트 인증서와 토큰A를 발급 시, 제1클라이언트 인증서의 CN(Common Name) 정보를 제1사용자 단말 장치(100)의 계정(ID)으로도 설정하고, CN 정보를 이용하여 토큰A의 DB 테이블 이름(ID_OBJECT)을 생성할 수 있다. 즉, HSM 서버(300)는 제1클라이언트 인증서의 CN 정보를 계정(ID) 또는 계정 연계정보로 설정하여 발급하고, 설정 및 발급된 CN 정보(즉, 계정 정보) 기반으로 DB 테이블 이름을 생성해서 제1클라이언트 인증서와 연계하도록 설정할 수 있다. 이후, 제1사용자 단말 장치(100)로부터 상호인증을 위한 제1클라이언트 인증서가 제출되면, HSM 서버(300)는 제1클라이언트 인증서의 CN 정보를 계정(ID)으로 지정하고, 지정된 CN 정보를 이름으로 가지는 DB(즉, 파티션A 또는 토큰A와 연동하도록 할당된 DB)에 접근할 수 있다.
이로써, 제1사용자 단말 장치(100)의 HSM Client에서 접근하려는 토큰A를 지정하지 않고, HSM 서버(300)가 제출된 제1클라이언트 인증서만으로 계정을 지정하고, 지정된 계정과 연동하도록 사전에 설정된 토큰A(또는 파티션A)의 DB 테이블에서만 검색과 기능 수행이 가능하게 되므로, 타 계정으로 자신의 파티션에 접근하거나 간섭할 수 없게 된다. 클라이언트 인증서와 토큰의 DB에 접근하기 위한 계정을 연동하도록 설정하는 동작은 제2사용자 단말 장치(200)에 대해서도 동일하므로 상세한 설명은 생략한다.
즉, 기존의 클라이언트 인증서가 HSM 서버(300)와의 안전한 채널을 형성하는데만 사용됨으로써 관리자 설정에 따라 다른 파티션에 접근이 가능하였다면 본 발명의 실시 예에서는 변조가 불가한 클라이언트 인증서를 이용하여 채널을 형성하면서 이와 동시에 실제 계정을 접근함으로써 다른 사용자의 계정에 접근불가하게 되며 또는 다른 사용자의 파티션조차 보이지 않게 함으로써 클라우드와 같이 자원을 다른 사용자들과 공유하는 환경에서도 안전하게 계정을 격리하에 사용이 가능하다.
또한, 본 발명에 따르면 상호인증 채널 생성을 위한 클라이언트 인증서를 단순히 채널 보호뿐만이 아니라 계정과 연동시켜 인증서가 다를 경우 다른 계정으로 연동되도록 함으로서 해당 계정에 접속 자체가 불가하게 하고, PIN 정보를 취득하여도 인증서와 계정이 연동되지 않는 토큰에서는 접속을 할 수 없도록 원천 차단함으로써 공격이 불가하게 할 수 있다.
일반 문자열로 계정, 파티션 등을 지정할 수 있게 할 경우 클라이언트에서 이 값을 조작하여 타인이나 타기관의 토큰에 접근을 시도할 수 있다. 이와 달리 인증서의 값은 서명이 되어 있어서 조작할 경우 인증서 검증시 감지되어 차단되므로 접근할 수가 없게 된다.
도 7은 상술한 본 발명의 실시 예에 따른 인증서와 계정을 기반으로 토큰접근이 가능한 클라우드 HSM 시스템의 동작을 간단히 도식화한 도면이다.
도 7을 참조하면, 제1사용자 단말 장치(100)는 표준 API를 이용하여 HSM 서버(300)의 토큰에 접근을 시도하며, 이 때 제1클라이언트 인증서를 제출한다. 즉, 제1사용자 단말 장치(100)는 사전에 발급받은 토큰 접근 시 제1클라이언트 인증서로 접근을 시도할 수 있다.
HSM 서버(300)는 수신된 제1클라이언트 인증서를 검증하고, 검증 완료되면 제1클라이언트 인증서를 기반으로 제1사용자 단말 장치(100)의 계정을 선택할 수 있다. 제1클라이언트 인증서의 검증에 의해 제1사용자 단말 장치(100)와 HSM 서버(300) 간의 채널이 커넥팅되었으므로, 제1사용자 단말 장치(100)는 PIN을 입력하고, HSM 서버(300)는 입력된 PIN을 검증한다. 검증이 완료되면, 제1사용자 단말 장치(100)에게는 파티션A(즉, 파티션A에 생성된 토큰A)만 활성화되어 표시될 수 있다.
도 7에 의하면, 제1사용자 단말 장치(100)가 HSM 서버(300)에 접근하기 위해 제1클라이언트 인증서를 제출할 경우, HSM 서버(300)는 제1클라이언트 인증서를 기반으로 계정 자원(파티션A 또는 파티션A에 생성된 토큰A)에 접근하도록 함으로써 원천적으로 타 사용자가 자신에게 할당되지 않은 계정 자원에 접근하는 것을 불가능하게 한다.
도 8은 본 발명의 실시 예에 따른 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 생성 방법을 도시한 흐름도이다.
도 8을 참조하면, HSM 서버(300)는 제1사용자 단말 장치(100)로부터 토큰 생성 요청이 수신되면, 제1클라이언트 인증서를 생성하여 제1사용자 단말 장치(100)에게 발급하고, 토큰A를 생성할 수 있다(S810, S820).
HSM 서버(300)는 S820단계에서 발급된 제1클라이언트 인증서의 CN 정보를 이용하여 제1사용자 단말 장치(100)의 계정(ID) 또는 계정 연계정보로 설정할 수 있다(S830).
HSM 서버(300)는 S830단계에서 계정으로 설정된 CN 정보를 이용하여 토큰A가 사용할 DB 테이블의 이름(ID_OBJECT)을 생성할 수 있다(S840). 이로써 제1사용자 단말 장치(100)로부터 상호인증을 위한 제1클라이언트 인증서가 제출되면, HSM 서버(300)는 제1클라이언트 인증서의 CN 정보를 계정(ID)으로 이용하여 동일한 계정을 가지는 토큰A의 DB에 접근할 수 있다.
도 9는 본 발명의 실시예에 따른 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법을 도시한 흐름도이다.
도 9를 참조하면, 제1사용자 단말 장치(100)의 제1응용 프로그램은 사전에 발급받은 토큰A에 접근하기 위하여 C_Initialize를 호출할 수 있다(S900).
제1사용자 단말 장치(100)의 HSM 클라이언트 프로그램은 제1응용 프로그램이 호출한 C_Initialize을 HSM 서버(300)에게 호출하면서 제1클라이언트 인증서를 제출할 수 있다(S910). S900단계 및 S910단계는, 사용자 입장에서는 C_Initialize를 비롯한 명령을 호출하는 것이며, 제1사용자 단말 장치(100)의 내부적으로는 HSM 서비스를 이용하기 위한 모듈 설치 시 설정된 제1클라이언트 인증서로 HSM 서버(300)에 특정 토큰을 요청하고 그에 대한 명령을 전달하는 것을 의미할 수 있다. 이 때 제1클라이언트 인증서를 제출하는 방식은 ssl과 같은 프로토콜을 맺는 과정에서 제1사용자 단말 장치(100)가 서명된 제1클라이언트 인증서를 포함하여 보낼 수 있다. 이후 제1사용자 단말 장치(100)와 HSM 서버(300) 간의 통신은 이 때 맺어진 통신 채널을 이용하여 데이터를 주고받는다.
HSM 서버(300)는 호출된 C_Initialize 인터페이스에 따라 제1클라이언트 인증서를 검증한다(S920).
HSM 서버(300)는 S920단계에서 검증완료된 제1클라이언트 인증서를 기반으로 계정을 지정하고, 지정된 계정을 이용하여 C_Initialize 작업을 수행할 수 있다(S930). S930단계는, HSM 서버(300)가 제1클라이언트 인증서를 분석하여 CN 정보를 확인하고, 확인된 CN 정보를 계정(ID)으로 지정한 후, CN 정보를 테이블 이름으로 가지는 DB 테이블에 접근 및 데이터 검색할 수 있도록 설정하는 작업을 포함할 수 있다. 여기서 CN은 ID와 1:1로 맵핑 되는 값을 사용하여 식별만 가능하면 된다. 또한 CN은 가장 일반적으로 대상을 식별하는 값이나 OU나 O등 다른 필드를 사용하거나 여러 필드를 같이 사용하여 식별할 수 있다.
HSM 서버(300)는 C_Initialize 호출에 대한 결과를 HSM 클라이언트 프로그램으로 전송하고, HSM 클라이언트 프로그램은 수신된 결과를 제1응용 프로그램에게 전송한다(S940, S950).
이후, 제1사용자 단말 장치(100)의 제1응용 프로그램은 HSM 서버(300)에 로그인을 시도하여 PIN 정보를 입력하고 C_Login 인터페이스를 호출한다(S960).
C_Login 호출 이전에 인증을 필요로 하지 않는 다른 기능들을 수행할 수 있다.
제1사용자 단말 장치(100)의 HSM 클라이언트 프로그램은 제1응용 프로그램이 호출한 C_Login을 HSM 서버(300)에게 호출하면서 PIN 정보를 전송할 수 있다(S970).
HSM 서버(300)는 호출된 C_Login에 따라 PIN 정보를 검증하고 검증이 완료되면 S930단계에서 지정된 계정에 대해 로그인을 수행할 수 있다(S980). C_Login 인터페이스는 S920단계 및 S930단계에서 맺어진 채널과 동일한 채널하에 호출되므로, HSM 서버(300)는 S930단계에서 지정된 동일한 계정에 대해 로그인을 수행할 수 있다.
HSM 서버(300)는 C_Login 호출에 대한 결과를 HSM 클라이언트 프로그램으로 전송하고, HSM 클라이언트 프로그램은 수신된 결과를 제1응용 프로그램에게 전송한다(S990, S995).
한편, 상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작 들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.
이상을 통해 본 발명의 실시 예에 대하여 설명하였지만, 본 발명은 상기 실시 예에 한정되지 않고, 본 발명의 취지를 벗어나지 않고 효과를 저해하지 않는 한, 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 다양하게 변경하여 실시할 수 있다. 또한 그러한 실시 예가 본 발명의 범위에 속하는 것은 당연하다.
100: 제1사용자 단말 장치
200: 제2사용자 단말 장치
300: HSM 서버

Claims (8)

  1. 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램이 저장되는 사용자 단말 장치; 및
    클라우드 환경에서 동작하며, 상기 HSM 클라이언트 프로그램과 연동하여 HSM 서비스를 제공하는 HSM 서버를 포함하고,
    상기 HSM 서버는,
    상기 사용자 단말 장치와의 상호인증을 위해 클라이언트 인증서를 사전에 발급하고, 토큰을 생성한 후, 상기 발급된 클라이언트 인증서의 정보를 상기 토큰에 접근하기 위한 계정으로 설정하며,
    상기 사용자 단말 장치로부터 상기 토큰에 접근하기 위한 클라이언트 인증서가 제출되면, 상기 클라이언트 인증서를 검증하고, 검증된 클라이언트 인증서를 기반으로 상기 토큰에 접근하기 위한 계정을 자동으로 지정하는,
    인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 HSM 서버는,
    상기 사용자 단말 장치에게 클라이언트 인증서를 발급하고 토큰 생성시, 상기 클라이언트 인증서의 CN(Common Name) 정보를 사용자 단말 장치의 계정으로 설정하고, 상기 CN 정보를 이용하여 상기 토큰의 DB 테이블 이름을 생성하는 것을 특징으로 하는 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템.
  4. 제3항에 있어서,
    상기 HSM 서버는,
    상기 사용자 단말 장치로부터 제출된 검증 완료된 클라이언트 인증서로부터 CN 정보를 확인하고, 상기 확인된 CN 정보와 동일한 이름을 가지는 DB 테이블에 접근하여 토큰 서비스를 제공하는 것을 특징으로 하는 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 HSM 시스템.
  5. (A) HSM(Hardware Security Module) 서버가, 사용자 단말 장치와의 상호인증을 위해 클라이언트 인증서를 생성하여 사용자 단말 장치에게 발급하고, 토큰을 생성한 후, 상기 발급된 클라이언트 인증서의 정보를 상기 토큰에 접근하기 위한 계정으로 설정하는 단계;
    (B) 상기 사용자 단말 장치가, 응용 프로그램이 실행되면 HSM 클라이언트 프로그램에 의해, 상기 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하고 상기 상호인증을 위해 HSM 서버로부터 발급된 클라이언트 인증서를 제출하여 상기 HSM 서버 내 토큰 접근을 시도하는 단계;
    (C) 상기 HSM 서버가, 상기 (B) 단계에서 사용자 단말 장치로부터 제출되는 클라이언트 인증서를 검증하는 단계; 및
    (D) 상기 HSM 서버가, 상기 (C) 단계에서 검증된 클라이언트 인증서를 기반으로 상기 토큰에 접근하기 위한 계정을 자동으로 지정하여 토큰에 접근하는 단계;
    를 포함하는 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 (A) 단계는,
    상기 HSM 서버가, 상기 사용자 단말 장치에게 클라이언트 인증서를 발급하고 토큰 생성시, 상기 클라이언트 인증서의 CN(Common Name) 정보를 사용자 단말 장치의 계정으로 설정하고, 상기 CN 정보를 이용하여 상기 토큰의 DB 테이블 이름을 생성하는 것을 특징으로 하는 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법.
  8. 제7항에 있어서,
    상기 (D) 단계는,
    상기 HSM 서버가, 상기 사용자 단말 장치로부터 제출된 검증 완료된 클라이언트 인증서로부터 CN 정보를 확인하고, 상기 확인된 CN 정보와 동일한 이름을 가지는 DB 테이블에 접근하여 토큰 서비스를 제공하는 것을 특징으로 하는 클라우드 HSM 시스템의 인증서와 계정 기반 토큰 접근 방법.
KR1020230014347A 2023-02-02 2023-02-02 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법 KR102628775B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230014347A KR102628775B1 (ko) 2023-02-02 2023-02-02 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230014347A KR102628775B1 (ko) 2023-02-02 2023-02-02 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법

Publications (1)

Publication Number Publication Date
KR102628775B1 true KR102628775B1 (ko) 2024-01-23

Family

ID=89713579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230014347A KR102628775B1 (ko) 2023-02-02 2023-02-02 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법

Country Status (1)

Country Link
KR (1) KR102628775B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101403626B1 (ko) * 2013-08-14 2014-06-03 (주) 뉴코 클라우드 컴퓨팅 환경에서의 스마트 단말 통합 보안 관리 방법
KR20190014958A (ko) * 2017-08-04 2019-02-13 주식회사 시큐아이 접속 제어 장치 및 방법
KR20190134135A (ko) * 2018-05-25 2019-12-04 삼성에스디에스 주식회사 클라우드 플랫폼에 기반한 서비스 제공 방법 및 그 시스템
KR102258215B1 (ko) 2019-11-08 2021-05-31 한국과학기술원 Kms 및 hsm를 함께 이용하는 보안 시스템 및 그 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101403626B1 (ko) * 2013-08-14 2014-06-03 (주) 뉴코 클라우드 컴퓨팅 환경에서의 스마트 단말 통합 보안 관리 방법
KR20190014958A (ko) * 2017-08-04 2019-02-13 주식회사 시큐아이 접속 제어 장치 및 방법
KR20190134135A (ko) * 2018-05-25 2019-12-04 삼성에스디에스 주식회사 클라우드 플랫폼에 기반한 서비스 제공 방법 및 그 시스템
KR102258215B1 (ko) 2019-11-08 2021-05-31 한국과학기술원 Kms 및 hsm를 함께 이용하는 보안 시스템 및 그 동작 방법

Similar Documents

Publication Publication Date Title
JP6526181B2 (ja) スマートカードによるログオンおよび連携されたフルドメインログオン
JP6121049B2 (ja) プロキシを使用したリソースへの安全なアクセス
US8838961B2 (en) Security credential deployment in cloud environment
CN105187362B (zh) 一种桌面云客户端和服务端之间连接认证的方法及装置
JP6335280B2 (ja) 企業システムにおけるユーザおよびデバイスの認証
US9697371B1 (en) Remote authorization of usage of protected data in trusted execution environments
US9846778B1 (en) Encrypted boot volume access in resource-on-demand environments
US9654462B2 (en) Late binding authentication
EP1914658B1 (en) Identity controlled data center
US10171470B2 (en) Techniques for secure debugging and monitoring
WO2022247359A1 (zh) 集群访问方法、装置、电子设备和介质
US9893891B2 (en) Identity verification using key pairs
US11368291B2 (en) Mutually authenticated adaptive management interfaces for interaction with sensitive infrastructure
US11722303B2 (en) Secure enclave implementation of proxied cryptographic keys
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
WO2022144024A1 (en) Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization
US10516655B1 (en) Encrypted boot volume access in resource-on-demand environments
US10873572B1 (en) Transferring a single sign-on session between a browser and a client application
KR102628775B1 (ko) 인증서와 계정을 기반으로 토큰 접근이 가능한 클라우드 hsm 시스템 및 그의 인증서와 계정 기반 토큰 접근 방법
CN114329574A (zh) 基于域管平台的加密分区访问控制方法、系统及计算设备
CN114238925A (zh) 基于jwt令牌的不互信异构系统聚合鉴权认证方法
US20230403138A1 (en) Agentless single sign-on techniques

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant