KR102525716B1 - Hsm 성능 향상 방법 - Google Patents

Hsm 성능 향상 방법 Download PDF

Info

Publication number
KR102525716B1
KR102525716B1 KR1020230009722A KR20230009722A KR102525716B1 KR 102525716 B1 KR102525716 B1 KR 102525716B1 KR 1020230009722 A KR1020230009722 A KR 1020230009722A KR 20230009722 A KR20230009722 A KR 20230009722A KR 102525716 B1 KR102525716 B1 KR 102525716B1
Authority
KR
South Korea
Prior art keywords
hsm
called
standard api
application program
api
Prior art date
Application number
KR1020230009722A
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 KR1020230009722A priority Critical patent/KR102525716B1/ko
Application granted granted Critical
Publication of KR102525716B1 publication Critical patent/KR102525716B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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/64Protecting data integrity, e.g. using checksums, certificates or 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]

Landscapes

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

Abstract

HSM 성능 향상 방법이 개시된다. HSM 성능 향상방법은, (A) 응용 프로그램이 실행되어 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하는 단계; (B) HSM 클라이언트 프로그램이 상기 응용 프로그램으로부터 호출된 표준 API를 자체 처리가능한지 판단하는 단계; 및 (C) 자체 처리가능한 것으로 판단되면, HSM 클라이언트 프로그램이 상기 호출된 표준 API의 요청을 자체 처리하여 상기 응용 프로그램에게 처리 결과를 응답하는 단계;를 포함할 수 있다.

Description

HSM 성능 향상 방법 {Method for improving HSM performance}
본 발명은 HSM 성능 향상을 위한 사용자 단말 장치, 방법, 그리고, HSM 시스템에 관한 것으로, 보다 구체적으로, HSM 서버의 개입없이 처리가 가능한 PKCS#11 표준 API가 호출되는 경우 HSM 서버를 대신하여 HSM 클라이언트에서 처리하여 HSM 서비스의 성능을 향상시킬 수 있는 HSM 성능 향상을 위한 사용자 단말 장치, 방법, 그리고, HSM 시스템에 관한 것이다.
일반적으로 인증서와 개인키는 공인인증서의 경우처럼 파일 형태로 존재하며 메모리로 로드한 후에 패스워드로 암호화된 개인키를 복호화하여 메모리에서 사용한다.
그런데, 이러한 방식은 파일 형태로 가져간 뒤에 키로깅을 하여 패스워드를 가로채는 방식으로 탈취를 하거나 암호화가 풀린 메모리 상에서 가져가는 방식을 취하며 Heart Bleed와 같은 공격이 메모리 상의 서버 인증서를 가져가는 공략법으로 널리 알려져 있다.
이러한 방식으로 인증서 또는 키를 파일이나 메모리 상에 노출되는 것을 막아 보안을 강화하는 방법으로 별도의 하드웨어 장비를 두어 키를 꺼내지 못하게 한 뒤에 서명, 암호화나 복호화처럼 비밀키를 사용할 일이 있을 경우 그 장비에 보내어 작업을 한 후에 그 결과를 받는 하드웨어 보안 모듈(HSM, Hardware Security Module) 방식이 있다.
그러나, 네트워크 HSM의 경우, 네트워크 상에 별도의 장비 형태로 HSM을 두고, 여러 사용자들이 접속하여 HSM을 사용하므로 복잡도가 올라가고 통신 속도도 직접 사용자 단말기에 부착하여 사용하는 것보다 느리게 되어 성능 저하가 발생한다.
클라우드 HSM의 경우, 네트워크 HSM과 구조적으로 거의 동일한 형태의 서비스를 제공하나 다만 추가적으로 단일 계정이 아닌 복수 계정의 사용자가 접속하는 측면에서 네트워크 HSM보다 복잡하며 네트워크 구조도 사내망의 간단한 구조가 아닌 클라우드의 복잡한 구조라는 면에서 성능이 더욱 나빠질 수밖에 없는 상황이다. 따라서, 네트워크 HSM 또는 클라우드 HSM을 사용하는 환경에서 HSM 성능을 개선할 수 있는 대책이 필요하다.
국내 등록특허 10-2258215호
본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로, HSM 서버의 개입없이 동작이 가능한 PKCS#11 표준 API가 호출되는 경우 HSM 서버를 대신하여 HSM 클라이언트에서 처리할 수 있는 HSM 성능 향상을 위한 사용자 단말 장치, 방법, 그리고, HSM 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위하여 본 발명의 실시예에 따르면, HSM 성능 향상을 위한 사용자 단말 장치는, 프로세서; 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램을 저장하는 메모리; HSM 서비스를 제공하는 HSM 서버와 통신하는 통신 인터페이스부;를 포함하고, 상기 프로세서는, 상기 응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하면, HSM 클라이언트 프로그램이 상기 호출된 표준 API를 자체 처리가능한 경우 자체 처리하여 상기 응용 프로그램에게 처리 결과를 응답하도록 처리할 수 있다.
상기 HSM 클라이언트 프로그램은, 상기 응용 프로그램으로부터 호출되는 표준 API가 암호키를 불필요로 하는 기능을 요청하는 API이면, 상기 호출된 표준 API에 해당하는 요청을 자체 처리할 수 있다.
응용 프로그램으로부터 일반 업무 카테고리에 해당하는 표준 API들이 호출되면 상기 HSM 서버로부터 제공되는 일반 업무 정보를 저장하고, 슬롯 및 토큰 관리 카테고리에 해당하는 표준 API들이 호출되면 상기 HSM 서버로부터 제공되는 슬롯 및 토큰 정보를 저장하는 저장부;를 더 포함하고, 상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 호출되는 표준 API가 상기 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하면 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하고, 갱신이 불필요하면 상기 저장부에 기저장된 정보로 상기 응용 프로그램에게 응답하도록 처리할 수 있다.
상기 응용 프로그램으로부터 호출되는 표준 API가 상기 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하면 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하여 갱신 필요 여부를 판단하고, 갱신이 필요한 것으로 판단되면, 상기 HSM 서버로부터 상기 호출된 표준 API에 부합하는 정보를 요청 및 제공받아 저장하고, 갱신이 불필요한 것으로 판단되면, 상기 호출된 표준 API에 부합하는 정보를 상기 저장부로부터 읽어와 응용 프로그램에게 응답할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하고, 상기 확인된 정보 갱신 조건을 충족하도록 일반 업무 정보 또는 슬롯 및 토큰 정보가 상기 저장부에 저장되어 있으면 갱신이 불필요한 것으로 판단하도록 처리할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하도록 처리할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 및 MAC 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하도록 처리할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 C_SignInit 표준 API와 C_SignUpdate 표준 API가 순차적으로 호출되면, 상기 C_SignUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_SignFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_SignFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송하도록 처리할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 검증 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하도록 처리할 수 있다.
상기 프로세서는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 C_VerifyInit 표준 API와 C_VerifyUpdate 표준 API가 순차적으로 호출되면, 상기 C_VerifyUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_VerifyFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_VerifyFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송하도록 처리할 수 있다.
또한, 본 발명의 실시 예에 따르면 사용자 단말 장치의 HSM 성능 향상 방법은, (A) 응용 프로그램이 실행되어 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하는 단계; (B) HSM 클라이언트 프로그램이 상기 응용 프로그램으로부터 호출된 표준 API를 자체 처리가능한지 판단하는 단계; 및 (C) 자체 처리가능한 것으로 판단되면, HSM 클라이언트 프로그램이 상기 호출된 표준 API의 요청을 자체 처리하여 상기 응용 프로그램에게 처리 결과를 응답하는 단계;를 포함할 수 있다.
상기 (B) 단계는, 상기 응용 프로그램으로부터 호출되는 표준 API가 암호키를 불필요로 하는 기능을 요청하는 API이면, 상기 HSM 클라이언트 프로그램이 상기 호출된 표준 API를 자체 처리가능한 것으로 판단할 수 있다.
상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이, (C1) 상기 응용 프로그램으로부터 호출되는 표준 API가 상기 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하면, 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하여 갱신이 불필요한 경우, 상기 사용자 단말 장치에 기저장된 정보로 상기 응용 프로그램에게 응답하는 단계;를 포함할 수 있다.
상기 (C) 단계는, (C11) 상기 응용 프로그램으로부터 호출되는 표준 API가 상기 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하면 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하여 갱신 필요 여부를 판단하는 단계; (C12) 갱신이 필요한 것으로 판단되면, 상기 HSM 서버로부터 상기 호출된 표준 API에 부합하는 정보를 요청 및 제공받아 상기 사용자 단말 장치의 저장부에 저장하는 단계; 및 (C13) 갱신이 불필요한 것으로 판단되면, 상기 호출된 표준 API에 부합하는 정보를 상기 저장부로부터 읽어와 응용 프로그램에게 응답하는 단계;를 포함할 수 있다.
상기 (C1) 단계는, 상기 HSM 클라이언트 프로그램이, 상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하고, 상기 확인된 정보 갱신 조건을 충족하도록 일반 업무 정보 또는 슬롯 및 토큰 정보가 상기 저장부에 저장되어 있으면 갱신이 불필요한 것으로 판단할 수 있다.
상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이, (C2) 상기 응용 프로그램으로부터 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하는 단계;를 포함할 수 있다.
상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이, (C3) 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 및 MAC 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하는 단계;를 포함할 수 있다.
상기 (C3) 단계는, 상기 HSM 클라이언트 프로그램이, 상기 응용 프로그램으로부터 C_SignInit 표준 API와 C_SignUpdate 표준 API가 순차적으로 호출되면, 상기 C_SignUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_SignFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_SignInit 표준 API와 C_SignFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송할 수 있다.
상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이, (C4) 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 검증 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답할 수 있다.
상기 (C4) 단계는, 상기 HSM 클라이언트 프로그램이,
상기 응용 프로그램으로부터 C_VerifyInit 표준 API와 C_VerifyUpdate 표준 API가 순차적으로 호출되면, 상기 C_VerifyUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_VerifyFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_VerifyInit 표준 API와 C_VerifyFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송할 수 있다.
또한, 본 발명의 실시 예에 따르면 HSM 성능 향상을 위한 HSM 시스템은, HSM(Hardware Security Module) 서비스를 제공하는 HSM 서버; 및 상기 HSM 서버와 통신하여 HSM 서비스를 이용하는 사용자 단말 장치;를 포함하고, 상기 사용자 단말 장치는, 응용 프로그램이 상기 HSM 서비스를 이용하기 위해 제공되는 표준 API(Application Programming Interface)을 호출하면, HSM 클라이언트 프로그램이 상기 호출된 표준 API를 자체 처리가능한 경우 자체 처리하여 상기 응용 프로그램에게 처리 결과를 응답하도록 처리할 수 있다.
상기 사용자 단말 장치는, 프로세서; 상기 응용 프로그램 및 상기 HSM 클라이언트 프로그램을 저장하는 메모리; 및 상기 HSM 서버와 통신하는 통신 인터페이스부;를 포함하고, 상기 프로세서에 의해 실행되는 HSM 클라이언트 프로그램은, 상기 응용 프로그램으로부터 호출되는 표준 API가 일반 업무 카테고리(General Purpose Functions), 슬롯 및 토큰 관리 카테고리(Slot and token management Functions), 메시지 다이제스트 카테고리(Message Digesting Functions), 서명 및 MAC 카테고리(signing and MACing Functions) 및 서명 검증 카테고리(functions for verifying signatures and MACs) 중 하나에 해당하면, 상기 호출된 표준 API에 해당하는 요청을 자체 처리할 수 있다.
본 발명은, HSM 서비스를 이용하기 위해 응용 프로그램으로부터 호출되는 표준 API를 HSM 클라이언트가 자체 처리가능한 경우 HSM 서버에게 표준 API를 호출하지 않고 자체 처리함으로써 HSM 부하를 최소화하고, HSM 서비스 처리 속도를 향상시킬 수 있다.
본 발명의 효과들은 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 HSM(Hardware Security Module, 하드웨어 보안 모듈)의 성능 개선을 위한 HSM 시스템을 도식적으로 도시한 도면,
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 사용자 단말 장치(100)를 도시한 블록도,
도 3은 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면,
도 4는 도 3에 도시된 PKCS #11 API, 즉, 표준 API 중 HSM 서버(200)에 저장된 개인키 또는 대칭키를 이용하지 않고도 HSM 서비스 제공이 가능한 표준 API를 하나 이상 포함하는 카테고리를 도시한 도면,
도 5는 본 발명의 실시 예에 따른 사용자 단말 장치(100)의 HSM 성능 향상 방법을 개략적으로 도시한 흐름도,
도 6은 도 5의 S510단계에서 호출되는 표준 API가 일반 업무 카테고리 또는 슬롯 및 토큰 관리 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법을 도시한 흐름도,
도 7a는 도 5의 S510단계에서 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법의 일 실시 예를 도시한 흐름도,
도 7b는 도 5의 S510단계에서 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법의 다른 실시 예를 도시한 흐름도,
도 8은 도 5의 S510단계에서 호출되는 표준 API가 서명 및 MAC 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법을 도시한 흐름도, 그리고,
도 9는 도 5의 S510단계에서 호출되는 표준 API가 서명 검증 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 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)를 의미할 수 있다.
이하, 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 HSM(Hardware Security Module, 하드웨어 보안 모듈)의 성능 개선을 위한 HSM 시스템을 도식적으로 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 HSM 성능 향상을 위한 보안 강화를 위한 클라우드 HSM 시스템은 사용자 단말 장치(100) 및 HSM 서버(200)를 포함할 수 있다.
사용자 단말 장치(100)는 HSM 서버(200)와 통신하여 HSM 서비스를 이용할 수 있다. 사용자 단말 장치(100)는 사용자가 사용하는 컴퓨팅 장치로, 스마트폰, 태블릿, 노트북 및/또는 데스크탑 등일 수 있다.
사용자 단말 장치(100)는 HSM 클라이언트 프로그램을 통해 HSM 서버(200)와 연동하여 응용 프로그램에서 필요로 하는 서명 요청, 암호화 요청, 복호화 요청 등 보안과 관련된 HSM 서비스를 사용할 수 있다.
또한, 사용자 단말 장치(100)는 응용 프로그램이 HSM 서비스를 이용하기 위해 표준 API(Application Programming Interface)을 호출하면, HSM 클라이언트 프로그램이 호출된 표준 API를 자체 처리가능한 경우 자체 처리하여 응용 프로그램에게 처리 결과를 응답하도록 처리할 수 있다.
HSM 서버(200)는 클라우드 환경 또는 네트워크 환경에서 동작하며, 사용자 단말 장치(100)의 응용 프로그램이 표준 API(Application Programming Interface) 를 호출하여 요청한 HSM 서비스(즉, HSM 기능)를 제공하는 컴퓨팅 장치일 수 있다.
HSM 서버(200)는 개인키, 대칭키 등의 암호키를 안전하게 보관하는 장비로서, 표준 API인 PKCS(Public Key Cryptography Standard)#11 API를 제공하여 HSM 서버(200)에 저장된 키 정보 및 암호 모듈 기능을 활용 가능하게 한다.
예를 들어, HSM 서버(200)는 사용자 단말 장치(100)로부터 서명이 요청되면 개인키로 전자서명한 후 서명문을 사용자 단말 장치(100)로 전송한다. 또한, HSM 서버(200)는 사용자 단말 장치(100)로부터 암호화가 요청되면 대칭키로 암호화한 후 암호문을 사용자 단말 장치(100)에게 전송하고, 복호화가 요청되면 대칭키로 복호화한 후 복호문을 사용자 단말 장치(100)에게 전송할 수 있다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 사용자 단말 장치(100)를 도시한 블록도이다.
도 2를 참조하면, 사용자 단말 장치(100)는 통신 인터페이스부(110), 사용자 인터페이스부(120), 저장부(130), 메모리(140) 및 프로세서(150)를 포함할 수 있다.
통신 인터페이스부(110)는 사용자 단말 장치(100)와 HSM 서버(200) 간의 유선 및/또는 무선 통신을 수행하도록 통신회로와 안테나를 포함할 수 있다. 통신 인터페이스부(110)는 HSM 서버(200)와 표준 API인 PKCS#11 API 호출을 통해 서로 통신할 수 있다.
사용자 인터페이스부(120)는 사용자와의 상호작용을 위한 것으로, 사용자의 조작에 따른 데이터를 발생시키거나 프로세서(150)의 지시에 따라 시각 정보 및 청각 정보 등을 출력할 수 있다. 사용자 인터페이스부(120)는 키보드, 키패드, 버튼, 스위치, 터치 패드, 터치 스크린, 디스플레이 및/또는 스피커 등을 포함할 수 있다.
저장부(130)는 후술할 응용 프로그램으로부터 호출되는 표준 API가 HSM 서버(200)에서 제공되는 일반 업무 카테고리 중 타겟 API에 해당하면 HSM 서버(200)로부터 제공되는 일반 업무 정보를 1회 이상 저장하고, 호출되는 표준 API가 슬롯 및 토큰 관리 카테고리 중 타겟 API에 해당하면 HSM 서버(200)로부터 제공되는 슬롯 및 토큰 정보를 1회 이상 저장할 수 있다. 일반 업무 정보는 일반 업무 카테고리에 속하는 표준 API의 호출에 따라 제공되는 정보이고, 슬롯 및 토큰 관리 정보는 슬롯 및 토큰 관리 카테고리에 속하는 표준 API의 호출에 따라 제공되는 정보이다.
일반 업무 정보와 슬롯 및 토큰 정보는 사용자에 의해 설정된 갱신 조건에 따라 주기적으로 갱신될 수도 있다. 예를 들어, 갱신 조건이 1일 1회 저장하는 것이면, 일반 업무 정보와 슬롯 및 토큰 정보 중 타겟 API에 해당하는 정보는 1일 1회, 최초 HSM 서버(200)로부터 정보를 제공받아 저장부(130)에 저장된다. 또한, 갱신 조건이 타겟 API가 호출될 때마다 정보를 갱신하는 것이면, 해당하는 정보는 타겟 API가 호출될 때마다 HSM 서버(200)로부터 제공받아 저장부(130)에 갱신될 수 있다.
또한, 저장부(130)는 도 3에 도시된 다수의 표준 API들 중 HSM 클라이언트 프로그램이 자체 처리가능한 타겟 API 목록과, 타겟 API 별 정보 갱신 조건을 더 저장할 수 있다.
메모리(140)는 프로세서에 의해 실행되는 명령어들(instructions) 또는 사용자 단말 장치(100)의 적어도 하나의 다른 구성요소에 관계된 적어도 하나의 프로그램을 실행하기 위한 명령어 또는 데이터를 저장할 수 있다.
또한, 메모리(140)에는 사용자 단말 장치(100)가 제공하는 동작, 기능 등을 구현 및/또는 제공하기 위하여, 하나 이상의 프로그램 및/또는 소프트웨어, 운영체제 등이 저장될 수 있다.
하나 이상의 프로그램 및/또는 소프트웨어는 예를 들어, 응용 프로그램과 HSM 클라이언트 프로그램을 포함할 수 있다. 응용 프로그램은 사용자가 필요로 하는 기능을 제공하는 프로그램으로서 사용자가 설치, 실행 또는 삭제할 수 있다. 응용 프로그램은 예를 들어, WAS(Web Application Server), 자바 어플리케이션, 공동인증서 툴킷 등 다양하다.
HSM 클라이언트 프로그램은 사용자 단말 장치(100)에서 실행되는 응용 프로그램의 보안을 위하여 HSM 서버(200)에서 제공하는 드라이버 소프트웨어일 수 있다. HSM 클라이언트 프로그램은 쉐어드 라이브러리(Shared Library) 형태로 제공될 수 있으며, 응용 프로그램은 HSM 서버(200)가 제공하는 PKCS#11 라이브러리를 로드(load)하여 API를 호출(call)할 수 있다. 즉, HSM 클라이언트 프로그램은 라이브러리로 혼자 동작하지 못하며 응용 프로그램이 라이브러리를 동적으로 로딩하여 원하는 기능을 호출할 수 있다. PKCS#11은 HSM 장비를 호출하기 위해 만든 표준 인터페이스로서, 표준 API와 혼용될 수 있다.
또한, HSM 클라이언트 프로그램은 사용자가 HSM 클라이언트 프로그램이 제공하는 속성 설정 메뉴에서, 상술한 자체 처리 기능을 사용할지를 설정하도록 할 수 있다. HSM 성능 향상보다는 기존처럼 HSM 서버(200)로부터 정보(예를 들어, 일반 업무 정보)를 제공받고자 하는 경우, 사용자는 자체 처리 기능을 비활성화시키고, 향상된 처리 속도를 HSM 서비스를 이용하고자 하는 경우 자체 처리 기능을 활성화시킬 수 있다. 이러한 경우, 이미 개발된 응용 프로그램은 HSM 클라이언트 프로그램의 속성 메뉴에서 설정된 결과만으로 동작 방식을 변경하여 성능이 개선되도록 할 수 있다.
저장부(130)와 메모리(140)는 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Disk), SD 카드(Secure Digital Card), 비휘발성 메모리, 휘발성 메모리 등 다양한 형태로 구현될 수 있다. 저장부(130)와 메모리(140)는 프로세서(150)에 의해 액세스되며, 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(150)는 통신 인터페이스부(110), 사용자 인터페이스부(120), 저장부(130) 및 메모리(140)와 전기적으로 연결되어 사용자 단말 장치(100)의 전반적인 동작을 제어할 수 있다.
예를 들어, 프로세서(150)는 메모리(140)에 저장된 응용 프로그램을 실행하여 HSM 서비스를 이용하기 위해 HSM 서버(200)에서 제공되는 표준 API를 호출하도록 처리할 수 있다. HSM 서버(200)에서 제공되는 표준 API는 PKCS #11 API(또는 'Cryptoki API'라 한다)일 수 있다.
도 3은 PKCS #11 API를 13개의 카테고리로 분류한 표를 도시한 도면이다.
도 3을 참조하면, PKCS #11 API는 13개의 카테고리로 분류되고 각 카테고리는 한 개 이상의 표준 API를 포함한다. 도 1의 표준 API 중 일부는 HSM 서버(200)에 저장된 개인키 또는 대칭키를 이용하여 HSM 서비스를 제공하고, 일부는 개인키 또는 암호키를 이용하지 않고 HSM 서비스를 제공하는데 사용될 수 있다.
도 4는 도 3에 도시된 PKCS #11 API, 즉, 표준 API 중 HSM 서버(200)에 저장된 개인키 또는 대칭키를 이용하지 않고도 HSM 클라이언트 프로그램이 자체 처리할 수 있는 API를 하나 이상 포함하는 카테고리를 도시한 도면이다.
도 4에서 점선 해칭 표시가 추가된 표준 API는 HSM 클라이언트 프로그램이 자체적으로 처리가능한 표준 API(이하, '타겟 API'라 한다), 즉, HSM 서버(200)에게 API를 호출하지 않고도 HSM 서비스 제공이 가능한 타겟 API를 의미한다.
다시 도 2를 참조하면, 프로세서(150)는 응용 프로그램이 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API를 호출하면, HSM 클라이언트 프로그램이 호출된 표준 API의 요청을 자체 처리하거나, HSM 서버(200)에게 표준 API를 호출하여 응용 프로그램이 요청한 HSM 서비스(즉, HSM 기능)을 제공하도록 처리할 수 있다. 이를 위하여, HSM 클라이언트 프로그램은 응용 프로그램이 호출한 표준 API가 자체 처리가능한지 판단하고, 자체 처리가능한 경우 자체 처리하여 응용 프로그램에게 처리 결과를 응답하는 명령어들을 포함할 수 있다.
이하에서 설명되는 본 발명의 실시 예에 따른 구성 또는 동작은 프로세서(150)의 제어에 의해 수행될 수 있으며, 설명의 편의를 위해 프로세서(150)는 생략되고, 프로세서(150)에 의해 실행되는 응용 프로그램 또는 HSM 클라이언트 프로그램이 수행하는 것으로 설명될 수도 있다.
자세히 설명하면, 보안이 요구되는 응용 프로그램이 사용자 요청에 의해 실행되면, 응용 프로그램은 HSM 클라이언트 프로그램의 라이브러리를 로딩할 수 있다. 응용 프로그램이 HSM 서버(200)에서 제공하는 HSM 기능을 이용하기 위해 표준 API를 호출하면, HSM 클라이언트 프로그램은 호출된 표준 API가 자체 처리가능한 타겟 API인 경우 자체 처리하고, 응용 프로그램에게 처리 결과를 응답할 수 있다. HSM 클라이언트 프로그램은 호출된 표준 API가 암호키(개인키 또는 대칭키)를 불필요로 하는 기능을 요청하는 API이면, 자체 처리가능한 타겟 API인 것으로 판단하고, 호출된 표준 API에 해당하는 기능 요청을 자체 처리할 수 있다.
HSM 클라이언트 프로그램이 자체 처리 가능한 카테고리와 타겟 API는 도 4에 도시되어 있다. HSM 클라이언트 프로그램은 응용 프로그램으로부터 호출되는 표준 API가 일반 업무 카테고리(General Purpose Functions), 슬롯 및 토큰 관리 카테고리(Slot and token management Functions), 메시지 다이제스트 카테고리(Message Digesting Functions), 서명 및 MAC 카테고리(signing and MACing Functions) 및 서명 검증 카테고리(functions for verifying signatures and MACs) 중 하나에 해당하면서 타겟 API에 해당하면, 호출된 표준 API에 해당하는 기능을 자체 처리할 수 있다.
도 4를 참조하면, 일반 업무 카테고리에 속하는 표준 API들 중 HSM 클라이언트 프로그램이 자체 처리 가능한 타겟 API는 C_GetInfo와 C_GetFunctionList를 포함할 수 있다.
슬롯 및 토큰 관리 카테고리에 속하는 표준 API들 중 타겟 API는 슬롯과 토큰을 관리하는 C_GetSlotList, C_GetSlotInfo, C_GetMechanismList, C_GetMechanismInfo를 포함할 수 있다.
메시지 다이제스트 카테고리에 속하는 표준 API들 중 타겟 API는 메시지 다이제스트를 하는 C_DigestInit, C_Digest, C_DigestUpdate, C_DigestFinal를 포함할 수 있다.
서명 및 MAC 카테고리에 속하는 표준 API들 중 타겟 API는 전자 서명을 위한 C_SignInit, C_SignUpdate, C_SignFinal를 포함할 수 있다.
서명 검증 카테고리에 속하는 표준 API들 중 타겟 API는 서명의 검증을 위한 C_VerifyInit, C_VerifyUpdate, C_VerifyFinal를 포함할 수 있다.
먼저, 프로세서(150)는, HSM 클라이언트 프로그램이, 응용 프로그램으로부터 호출되는 표준 API가 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하고 타겟 API에 해당하면, 호출된 표준 API에 설정된 정보 갱신 조건을 확인하여 갱신이 필요한지 판단하도록 처리할 수 있다. 그리고, 프로세서(150)는, HSM 클라이언트 프로그램이, 확인된 정보 갱신 조건(예를 들어 1일 1회, 또는 1시간마다 저장)을 충족하도록 일반 업무 정보 또는 슬롯 및 토큰 정보가 저장부(130)에 저장되어 있으면(예를 들어, 1회 저장되었으면, 또는 갱신된지 1시간이 안 되었으면) 갱신이 불필요한 것으로 판단하도록 처리할 수 있다.
갱신이 불필요한 것으로 판단되면, 프로세서(150)는, HSM 클라이언트 프로그램이 저장부(130)에 기저장된 일반 업무 정보 또는 슬롯 및 토큰 정보를 읽어와 응용 프로그램에게 호출된 표준 API에 대한 응답 결과로서 전달하도록 처리할 수 있다. 반면, 갱신이 필요한 것으로 판단되면, 프로세서(150)는, HSM 클라이언트 프로그램이 HSM 서버(200)에게 표준 API를 호출하여 표준 API에 부합하는 정보를 요청하고, HSM 서버(200)로부터 제공받아 저장부(130)에 저장하도록 처리할 수 있다.
예를 들어, 호출된 표준 API가 일반 업무 카테고리의 C_GetInfo이면, 호출된 표준 API는 타겟 API이므로, HSM 클라이언트 프로그램은 C_GetInfo에 설정된 정보 갱신 조건을 확인할 수 있다. 정보 갱신 조건이 1일 1회 저장이면, HSM 클라이언트 프로그램은 저장부(130)에 C_GetInfo에 대한 일반 업무 정보가 저장되어 있는지 확인할 수 있다. HSM 클라이언트 프로그램은 저장부(130)에 C_GetInfo에 대한 일반 업무 정보가 저장되어 있으면 HSM 서버(200)에 의한 갱신이 불필요한 것으로 판단하고, 저장부(130)에 저장된 C_GetInfo에 대한 일반 업무 정보를 응용 프로그램에게 전달하여 호출된 표준 API에 대해 응답할 수 있다. 반면, HSM 클라이언트 프로그램은 저장부(130)에 C_GetInfo에 대한 일반 업무 정보가 저장되어 있지 않으면 HSM 서버(200)에 의한 갱신이 필요한 것으로 판단하고, HSM 서버(200)에게 C_GetInfo를 호출하여 일반 업무 정보를 요청하고, HSM 서버(200)로부터 제공받아 응용 프로그램에게 응답하며, 저장부(130)에 저장할 수 있다.
다음, 프로세서(150)는, HSM 클라이언트 프로그램이, 응용 프로그램으로부터 호출되는 표준 API가 메시지 다이제스트 카테고리와 타겟 API에 해당하면, 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 호출된 표준 API에 대해 응답하도록 처리할 수 있다. 다이제스트 기능, 즉, 해쉬 기능은 메시지를 짧게 만드는 기능으로, HSM 서버(200)에 저장된 내부 키를 이용할 필요가 없으므로 HSM 서버(200)에서 수행하지 않아도 된다. 따라서, HSM 서버(200)와 사용자 단말 장치(100)의 통신량과 HSM 서버(200)의 부하를 줄이기 위해 HSM 클라이언트 프로그램이 직접 수행할 수 있다.
일 예로, HSM 클라이언트 프로그램은 응용 프로그램으로부터 C_DigestInit이 호출되면 다이제스트 작업을 준비하고, 이후 하나의 데이터를 포함하는 C_Digest가 순차적으로 호출되면 하나의 데이터에 대한 다이제스트 작업을 수행하고, 수행 결과를 응용 프로그램에게 전달하여 응답할 수 있다.
다른 예로, HSM 클라이언트 프로그램은 응용 프로그램으로부터 C_DigestInit이 호출되면 다이제스트 작업을 준비하고, C_DigestUpdate가 순차적으로 호출되면 여러 조각으로 분리된 데이터에 대한 다이제스트 작업을 수행하고, C_DigestFinal이 호출되면 다이제스트 작업을 종료한 후, 종료되었음을 응용 프로그램에게 전달할 수 있다. 예를 들어, '123456789012345678901234567890'와 같은 데이터를 한번에 다 처리할 경우, 응용 프로그램은 C_Digest를 호출하고, 이 데이터를 10자씩 잘라서 보낼 경우에는 C_DigestUpdate를 3번 호출하고, HSM 클라이언트 프로그램은 3번의 다이제스트 작업을 수행할 수 있다. C_DigestUpdate는 긴 길이의 데이터를 처리할 경우 사용된다.
다음, 프로세서(150)는, HSM 클라이언트 프로그램이 응용 프로그램으로부터 호출되는 표준 API가 서명 및 MAC 카테고리와 타겟 API에 해당하는지 판단하고, 해당하는 것으로 판단되면, 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하도록 처리할 수 있다.
자세히 설명하면, HSM 클라이언트 프로그램은, 응용 프로그램으로부터 C_SignInit이 호출되면 서명 작업을 초기화하고, 순차적으로 C_SignUpdate가 호출되면 C_SignUpdate에 부합하는 서명 다이제스트 기능(분할된 데이터를 각각 축소함, 해쉬라고도 함)을 수행한 후, 수행 결과를 응용 프로그램에게 전달할 수 있다. 그리고, HSM 클라이언트 프로그램은 C_SignFinal이 호출되면 서명 다이제스트 작업을 종료하고, HSM 서버(200)에게 C_SignFinal을 호출하되 서명 다이제스트 결과와 서명 초기화시 입력된 키정보와 알고리즘 정보를 함께 전송할 수 있다. 서명 초기화시 입력된 키정보와 알고리즘 정보는 C_SignInit이 호출되어 파라미터로 전달된 서명 작업에 사용할 키와 알고리즘 정보이다. 이후 HSM 서버(200)로부터 서명이 수행되어 서명 결과가 수신되면, HSM 클라이언트 프로그램은 서명 결과를 응용 프로그램에게 전달할 수 있다.
다음, 프로세서(150)는, HSM 클라이언트 프로그램이 응용 프로그램으로부터 호출되는 서명 검증 카테고리와 타겟 API에 해당하는지 판단하고, 해당하면, 호출된 표준 API에 부합하는 서명 검증 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하도록 처리할 수 있다.
자세히 설명하면, HSM 클라이언트 프로그램은 응용 프로그램으로부터 C_VerifyInit이 호출되면 서명 검증 작업을 준비하고, C_VerifyUpdate가 순차적으로 호출되면 서명 검증 다이제스트 기능을 수행한 후, 수행 결과를 응용 프로그램에게 전달할 수 있다. 이후, HSM 클라이언트 프로그램은 C_VerifyFinal이 호출되면 서명 검증 작업을 종료하고, HSM 서버(200)에게 C_VerifyFinal을 호출하되 서명 검증 다이제스트 결과와 서명 검증 초기화시 입력된 키와 알고리즘 정보를 함께 전송할 수 있다. 서명 검증 초기화시 입력된 키와 알고리즘 정보는 C_VerifyInit이 호출되어 파라미터로 전달된 서명 검증 작업에 사용할 키와 알고리즘 정보이다. 이후 HSM 서버(200)로부터 서명 검증이 수행되어 서명 검증 결과가 수신되면, HSM 클라이언트 프로그램은 서명 검증 결과를 응용 프로그램에게 전달할 수 있다.
이하, 도 5 내지 도 8을 참조하여, 본 발명의 실시 예에 따른 사용자 단말 장치의 HSM 성능 향상 방법을 설명한다.
도 5는 본 발명의 실시 예에 따른 사용자 단말 장치(100)의 HSM 성능 향상 방법을 개략적으로 도시한 흐름도이다.
도 5를 참조하면, 사용자 단말 장치(100)에 설치된 응용 프로그램이 실행되어 HSM 서버(200)에서 제공하는 표준 API를 호출하면(S510), 프로세서(150)는 표준 API를 수신한 HSM 클라이언트 프로그램이 S510단계에서 호출된 표준 API를 자체 처리가능한지 판단하도록 처리할 수 있다(S520).
S520단계는 응용 프로그램으로부터 호출되는 표준 API가 일반 업무 카테고리(General Purpose Functions), 슬롯 및 토큰 관리 카테고리(Slot and token management Functions), 메시지 다이제스트 카테고리(Message Digesting Functions), 서명 및 MAC 카테고리(signing and MACing Functions) 및 서명 검증 카테고리(functions for verifying signatures and MACs) 중 하나에 해당하면서, 암호키없이 수행될 수 있는 타겟 API이면, HSM 클라이언트 프로그램이 자체 처리가능한 것으로 판단할 수 있다. 암호키는 서명, 암호화, 복호화와 같이 보안을 요구로 하는 HSM 기능을 수행하기 위하여, HSM 서버(200)에 저장된 개인키 또는 대칭키일 수 있다.
자체 처리가능한 것으로 판단되면(S530-Yes), 프로세서(150)는 HSM 클라이언트 프로그램이 S510단계에서 호출된 표준 API의 요청, 즉, 표준 API에 해당하는 HSM 기능을 자체 처리하고(S540), 응용 프로그램에게 처리 결과를 전달함으로써 호출에 대해 응답하도록 처리할 수 있다.
반면, 자체 처리 불가능한 것으로 판단되면(S530-No), 프로세서(150)는 HSM 클라이언트 프로그램이 S510단계에서 호출된 표준 API를 HSM 서버(200)에게 호출하도록 처리할 수 있다(S550).
프로세서(150)는 HSM 서버(200)로부터 호출된 표준 API에 대한 결과가 수행되면, HSM 클라이언트 프로그램이 처리 결과를 응용 프로그램에게 전달하여 호출된 표준 API에 대해 응답하도록 처리할 수 있다(S560).
도 6은 도 5의 S510단계에서 호출되는 표준 API가 일반 업무 카테고리 또는 슬롯 및 토큰 관리 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법을 도시한 흐름도이다.
도 6을 참조하면, 응용 프로그램으로부터 표준 API가 호출되면(S610), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 표준 API가 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하고 타겟 API에 해당하는지 판단하도록 처리한다(S615).
호출된 표준 API가 일반 업무 카테고리 또는 슬롯 및 토큰 관리 카테고리 중 하나에 해당하고 타겟 API에 해당하는 것으로 판단되면(S620-Yes), 즉, HSM 클라이언트 프로그램이 자체 처리 가능한 API인 것으로 판단되면, 프로세서(150)는, HSM 클라이언트 프로그램이 호출된 표준 API에 설정된 정보 갱신 조건을 저장부(130)로부터 확인하고, 호출된 표준 API가 요청한 정보가 저장부(130)에 저장되어 있는지 확인한다(S625).
S620단계에서 자체 처리 가능한 표준 API는 C_GetInfo, C_GetFunctionList, C_GetSlotList, C_GetSlotInfo, C_GetMechanismList, C_GetMechanismInfo 중 하나일 수 있다.
프로세서(150)는, HSM 클라이언트 프로그램이, S625단계에서 확인된 정보 갱신 조건과 확인된 정보를 비교 분석하여 정보의 갱신이 필요한지 판단하도록 처리한다(S630). S630단계에서, HSM 클라이언트 프로그램은 S625단계에서 확인된 정보 갱신 조건(예를 들어 1일 1회, 또는 1시간마다 저장)을 충족하도록 일반 업무 정보 또는 슬롯 및 토큰 정보가 저장부(130)에 저장되어 있으면(예를 들어, 1회 저장되었으면, 또는 갱신된지 1시간이 안 되었으면) 갱신이 불필요한 것으로 판단할 수 있다.
정보의 갱신이 불필요한 것으로 판단되면(S630-No), 프로세서(150)는, HSM 클라이언트 프로그램이 S625단계에서 확인한 정보를 읽어와 응용 프로그램에게 전달하도록 처리할 수 있다(S640). 이로써 HSM 클라이언트 프로그램은 호출된 표준 API에 대한 기능을 수행하여 그 결과를 응답한다.
반면, S630단계에서 갱신이 필요한 것으로 판단되면, 프로세서(150)는, HSM 클라이언트 프로그램이 HSM 서버(200)에게 S610단계에서 호출된 표준 API를 호출하도록 처리할 수 있다(S645).
HSM 서버(200)는 호출된 표준 API에 해당하는 기능을 수행한 후 결과를 사용자 단말 장치(100)에게 전달한다(S650).
프로세서(150)는 HSM 클라이언트 프로그램이 S650단계에서 받은 HSM 기능 수행 결과를 저장부(130)에 저장 또는 갱신하고(S655), 응용 프로그램에게 HSM 기능 수행 결과를 전달하도록 처리할 수 있다(S660). S655단계는 이전에 저장된 정보와 비교하여 변경된 부분 또는 추가된 부분만 저장할 수도 있다.
또한, S620단계에서 타겟 API가 아닌 것으로 확인되면(S620-No), 프로세서(150)는 HSM 클라이언트 프로그램이 HSM 서버(200)에게 S610단계에서 호출된 표준 API를 호출하도록 처리할 수 있다(S665).
HSM 서버(200)는 호출된 표준 API에 해당하는 기능을 수행한 후 결과를 사용자 단말 장치(100)에게 전달한다(S670).
프로세서(150)는 HSM 클라이언트 프로그램이 S670단계에서 받은 HSM 기능 수행 결과를 응용 프로그램에게 전달하도록 처리할 수 있다(S675).
도 7a는 도 5의 S510단계에서 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법의 일 실시 예를 도시한 흐름도이다.
도 7a를 참조하면, 응용 프로그램으로부터 표준 API(C_DigestInit)가 호출되면(S710a), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_DigestInit이 메시지 다이제스트 카테고리에 해당하고 타겟 API에 해당하는지 판단하도록 처리한다(S715a). 메시지 다이제스트 카테고리 중 타겟 API는 C_Digest, C_DigestUpdate 또는 C_DigestFinal일 수 있다.
호출된 C_DigestInit이 메시지 다이제스트 카테고리이면서 타겟 API에 해당하면(S720a), 즉, HSM 클라이언트 프로그램이 자체 처리 가능한 API인 것으로 판단되면, 프로세서(150)는, HSM 클라이언트 프로그램이 호출된 C_DigestInit에 따라 해쉬 작업 준비를 하고(초기화), 응용 프로그램에 초기화 결과를 응답하도록 처리한다(S730a).
이후, 응용 프로그램으로부터 C_Digest가 호출되면(S740a), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_Digest가 타겟 API인지 확인하고, 타겟 API이면 다이제스트 기능을 수행하도록 처리할 수 있다(S750a).
다이제스트 기능이 완료되면, 프로세서(150)는 HSM 클라이언트 프로그램이 다이제스트 결과를 응용 프로그램에게 전달하도록 처리한다(S760a).
도 7b는 도 5의 S510단계에서 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법의 다른 실시 예를 도시한 흐름도이다.
도 7b를 참조하면, 응용 프로그램으로부터 표준 API(C_DigestInit)가 호출되면(S710b), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_DigestInit이 메시지 다이제스트 카테고리에 해당하고 타겟 API에 해당하는지 판단하도록 처리한다(S715b).
호출된 C_DigestInit이 메시지 다이제스트 카테고리이면서 타겟 API에 해당하면, 프로세서(150)는, HSM 클라이언트 프로그램이 호출된 C_DigestInit에 따라 초기화(해쉬 작업 준비)를 하고(S720b), 응용 프로그램에 초기화 결과를 응답하도록 처리한다(S730b).
이후, 응용 프로그램으로부터 C_DigestUpdate가 호출되면(S740b), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_DigestUpdate가 타겟 API인지 확인하고, 타겟 API이면 다이제스트 기능을 수행하도록 처리할 수 있다(S750b). C_DigestUpdate는 하나의 메시지가 분할된 개수만큼 호출되어 처리될 수 있다.
다이제스트 기능이 완료되면, 프로세서(150)는 HSM 클라이언트 프로그램이 다이제스트 결과를 응용 프로그램에게 전달하도록 처리한다(S760b).
이후, C_DigestFinal이 호출되면(S770b), 프로세서(150)는 HSM 클라이언트 프로그램이 호출된 C_DigestFinal이 타겟 API인지 확인하고(S780b), 타겟 API이면 해쉬 작업을 종료한 후(S790b), 해쉬 작업이 종료되었음을 응용 프로그램에게 전달하도록 처리할 수 있다(S795b).
도 8은 도 5의 S510단계에서 호출되는 표준 API가 서명 및 MAC 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법을 도시한 흐름도이다.
도 8을 참조하면, 응용 프로그램으로부터 표준 API(C_SignInit)가 호출되면(S810), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_SignInit이 서명 및 MAC 카테고리에 해당하고 타겟 API에 해당하는지 판단하도록 처리한다(S815). 서명 및 MAC 카테고리에 속하는 표준 API들 중 타겟 API는 C_SignInit, C_SignUpdate, C_SignFinal를 포함할 수 있다.
호출된 C_SignInit이 서명 및 MAC 카테고리이면서 타겟 API에 해당하면, 프로세서(150)는, HSM 클라이언트 프로그램이 서명 작업을 준비(초기화)하고(S820), 응용 프로그램에 초기화 결과를 응답하도록 처리한다(S825).
이후, 응용 프로그램으로부터 C_SignUpdate가 호출되면(S830), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_SignUpdate가 타겟 API인지 확인하고, 타겟 API이면 서명 다이제스트 기능을 수행하도록 처리할 수 있다(S835). C_SignUpdate는 하나의 메시지를 다수로 분할하여 서명 다이제스트가 진행되도록 요청하는 API이다.
다이제스트 기능이 완료되면, 프로세서(150)는 HSM 클라이언트 프로그램이 다이제스트 결과를 응용 프로그램에게 전달하도록 처리한다(S840).
이후, C_SignFinal이 호출되면(S845), 프로세서(150)는 HSM 클라이언트 프로그램이 호출된 C_SignFinal이 타겟 API인지 확인하고(S850), 타겟 API이면 서명 다이제스트 작업을 종료하고, HSM 서버(200)에게 C_SignFinal을 호출하되 서명 다이제스트 결과와 서명 초기화 알고리즘 정보를 함께 전송할 수 있다(S855). HSM 클라이언트 프로그램은 S810단계 이후 서명 초기화 알고리즘 정보를 HSM 서버(200)에게 전송할 수도 있으며, 이러한 경우, S855단계에서 서명 초기화 알고리즘 정보는 전송되지 않는다.
이후 HSM 서버(200)로부터 개인키를 이용한 서명이 수행되어 서명 결과가 수신되면(S860, S865), HSM 클라이언트 프로그램은 서명 결과를 응용 프로그램에게 전달할 수 있다(S870).
도 9는 도 5의 S510단계에서 호출되는 표준 API가 서명 검증 카테고리에 해당하는 경우, 사용자 단말 장치(100)의 HSM 성능 향상 방법을 도시한 흐름도이다.
도 9를 참조하면, 응용 프로그램으로부터 표준 API(C_VerifyInit)가 호출되면(S910), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_VerifyInit이 서명 검증 카테고리에 해당하고 타겟 API에 해당하는지 판단하도록 처리한다(S915). 서명 검증 카테고리에 속하는 표준 API들 중 타겟 API는 C_VerifyInit, C_VerifyUpdate, C_VerifyFinal를 포함할 수 있다.
호출된 C_VerifyInit이 서명 검증 카테고리이면서 타겟 API에 해당하면, 프로세서(150)는, HSM 클라이언트 프로그램이 서명 검증 작업을 준비(초기화)하고(S920), 응용 프로그램에 초기화 결과를 응답하도록 처리한다(S925).
이후, 응용 프로그램으로부터 C_VerifyUpdate가 호출되면(S930), 프로세서(150)는, HSM 클라이언트 프로그램이, 호출된 C_VerifyUpdate가 타겟 API인지 확인하고, 타겟 API이면 서명 검증 다이제스트 기능을 수행하도록 처리할 수 있다(S935). C_VerifyUpdate는 하나의 메시지를 다수로 분할하여 서명 검증 다이제스트가 진행되도록 요청하는 API로서 1회 이상 호출될 수 있다.
다이제스트 기능이 완료되면, 프로세서(150)는 HSM 클라이언트 프로그램이 다이제스트 결과를 응용 프로그램에게 전달하도록 처리한다(S940).
이후, C_VerifyFinal이 호출되면(S945), 프로세서(150)는 HSM 클라이언트 프로그램이 호출된 C_VerifyFinal이 타겟 API인지 확인하고(S950), 타겟 API이면 서명 검증 다이제스트 작업을 종료하고, HSM 서버(200)에게 C_VerifyFinal을 호출하되 서명 검증 다이제스트 결과와 서명 검증 초기화 알고리즘 정보를 함께 전송할 수 있다(S955). HSM 클라이언트 프로그램은 S910단계 이후 서명 검증 초기화 알고리즘 정보를 HSM 서버(200)에게 전송할 수도 있으며, 이러한 경우, S955단계에서 서명 검증 초기화 알고리즘 정보는 전송되지 않는다.
이후 HSM 서버(200)로부터 대칭키(또는 공개키)를 이용한 서명 검증이 수행되어 서명 검증 결과가 수신되면(S960, S965), HSM 클라이언트 프로그램은 서명 검증 결과를 응용 프로그램에게 전달할 수 있다(S970).
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(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: 사용자 단말 장치
200: HSM 서버

Claims (6)

  1. 프로세서, 응용 프로그램 및 HSM(Hardware Security Module) 클라이언트 프로그램을 저장하는 메모리, HSM 서비스를 제공하는 HSM 서버와 통신하는 통신 인터페이스부, 및 응용 프로그램으로부터 일반 업무 카테고리에 해당하는 표준 API들이 호출되면 상기 HSM 서버로부터 제공되는 일반 업무 정보를 저장하고, 슬롯 및 토큰 관리 카테고리에 해당하는 표준 API들이 호출되면 상기 HSM 서버로부터 제공되는 슬롯 및 토큰 정보를 저장하는 저장부를 포함하는 사용자 단말 장치에 의해 수행되는 HSM 성능 향상 방법에 있어서,
    (A) 응용 프로그램이 실행되어 HSM 서비스를 이용하기 위해 HSM 서버에서 제공하는 표준 API(Application Programming Interface)를 호출하는 단계;
    (B) HSM 클라이언트 프로그램이 상기 응용 프로그램으로부터 호출된 표준 API를 자체 처리가능한지 판단하는 단계; 및
    (C) 자체 처리가능한 것으로 판단되면, HSM 클라이언트 프로그램이 상기 호출된 표준 API의 요청을 자체 처리하여 상기 응용 프로그램에게 처리 결과를 응답하는 단계;를 포함하고,
    상기 (B) 단계는,
    상기 응용 프로그램으로부터 호출되는 표준 API가 암호키를 불필요로 하는 기능을 요청하는 API이면, 상기 HSM 클라이언트 프로그램이 상기 호출된 표준 API를 자체 처리가능한 것으로 판단하며,
    상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이,
    (C3) 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 및 MAC 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하는 단계;를 포함하며,
    상기 (C3) 단계는, 상기 HSM 클라이언트 프로그램이,
    상기 응용 프로그램으로부터 C_SignInit 표준 API와 C_SignUpdate 표준 API가 순차적으로 호출되면, 상기 C_SignUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_SignFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_SignInit 표준 API와 C_SignFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송하는
    HSM 성능 향상 방법.
  2. 제1항에 있어서,
    상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이,
    (C1) 상기 응용 프로그램으로부터 호출되는 표준 API가 상기 일반 업무 카테고리 및 슬롯 및 토큰 관리 카테고리 중 어느 하나에 해당하면, 상기 호출된 표준 API에 해당하는 정보의 갱신이 불필요하다고 판단하면, 상기 사용자 단말 장치에 기저장된 정보를 상기 응용 프로그램에게 전달하여 응답하는 단계;
    를 포함하는 HSM 성능 향상 방법.
  3. 제2항에 있어서,
    상기 (C1) 단계는, 상기 HSM 클라이언트 프로그램이,
    상기 호출된 표준 API에 설정된 정보 갱신 조건을 확인하고, 상기 확인된 정보 갱신 조건을 충족하도록 일반 업무 정보 또는 슬롯 및 토큰 정보가 상기 저장부에 저장되어 있으면 갱신이 불필요한 것으로 판단하는
    포함하는 HSM 성능 향상 방법.
  4. 제1항에 있어서,
    상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이,
    (C2) 상기 응용 프로그램으로부터 호출되는 표준 API가 메시지 다이제스트 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하는 단계;
    를 포함하는 HSM 성능 향상 방법.
  5. 제1항에 있어서,
    상기 (C) 단계는, 상기 HSM 클라이언트 프로그램이,
    (C4) 상기 응용 프로그램으로부터 호출되는 표준 API가 서명 검증 카테고리에 해당하면, 상기 호출된 표준 API에 부합하는 다이제스트 기능을 수행하고, 다이제스트 수행 결과를 응용 프로그램에게 전달하여 응답하는
    HSM 성능 향상 방법.
  6. 제5항에 있어서,
    상기 (C4) 단계는, 상기 HSM 클라이언트 프로그램이,
    상기 응용 프로그램으로부터 C_VerifyInit 표준 API와 C_VerifyUpdate 표준 API가 순차적으로 호출되면, 상기 C_VerifyUpdate 표준 API에 부합하는 다이제스트 기능을 수행하여 다이제스트 결과를 응용 프로그램에게 전달하고, 응용 프로그램으로부터 C_VerifyFinal 표준 API가 호출되면, 상기 HSM 서버에게 C_VerifyInit 표준 API와 C_VerifyFinal 표준 API를 호출하되 상기 다이제스트 결과를 함께 전송하는
    HSM 성능 향상 방법.
KR1020230009722A 2022-10-15 2023-01-25 Hsm 성능 향상 방법 KR102525716B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230009722A KR102525716B1 (ko) 2022-10-15 2023-01-25 Hsm 성능 향상 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220132794A KR102504957B1 (ko) 2022-10-15 2022-10-15 Hsm 성능 향상을 위한 사용자 단말 장치,그리고, hsm 시스템
KR1020230009722A KR102525716B1 (ko) 2022-10-15 2023-01-25 Hsm 성능 향상 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220132794A Division KR102504957B1 (ko) 2022-10-15 2022-10-15 Hsm 성능 향상을 위한 사용자 단말 장치,그리고, hsm 시스템

Publications (1)

Publication Number Publication Date
KR102525716B1 true KR102525716B1 (ko) 2023-04-26

Family

ID=85509109

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220132794A KR102504957B1 (ko) 2022-10-15 2022-10-15 Hsm 성능 향상을 위한 사용자 단말 장치,그리고, hsm 시스템
KR1020230009722A KR102525716B1 (ko) 2022-10-15 2023-01-25 Hsm 성능 향상 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020220132794A KR102504957B1 (ko) 2022-10-15 2022-10-15 Hsm 성능 향상을 위한 사용자 단말 장치,그리고, hsm 시스템

Country Status (1)

Country Link
KR (2) KR102504957B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056049A (ko) * 2019-11-08 2021-05-18 한국과학기술원 Kms 및 hsm를 함께 이용하는 보안 시스템 및 그 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056049A (ko) * 2019-11-08 2021-05-18 한국과학기술원 Kms 및 hsm를 함께 이용하는 보안 시스템 및 그 동작 방법
KR102258215B1 (ko) 2019-11-08 2021-05-31 한국과학기술원 Kms 및 hsm를 함께 이용하는 보안 시스템 및 그 동작 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cryptography Stack Exchange, "Why is C_digest defined in PKCS#11?"(2021.05.)* *
Sivanarayana Gaddam et al., "Reducing HSM Reliance in Payments through Proxy Re-Encryption"(2021.01)* *

Also Published As

Publication number Publication date
KR102504957B1 (ko) 2023-03-02

Similar Documents

Publication Publication Date Title
US11956371B2 (en) Recursive token binding for cascaded service calls
US11121873B2 (en) System and method for hardening security between web services using protected forwarded access tokens
KR100786551B1 (ko) 복수 개의 방식에 의한 일회용 비밀번호의 사용자 등록,인증 방법 및 그러한 방법을 수행하는 프로그램이 기록된컴퓨터 판독 가능 기록 매체
KR102248237B1 (ko) 브라우저 기반 보안pin인증을 이용한 did 시스템 및 그것의 제어방법
CN110365684B (zh) 应用集群的访问控制方法、装置和电子设备
US10623186B1 (en) Authenticated encryption with multiple contexts
CN102404314A (zh) 远程资源单点登录
CN102469080A (zh) 实现通行证用户安全登录应用客户端的方法和系统
KR102248249B1 (ko) 복수의 브라우저를 이용한 did 시스템 및 그것의 제어방법
US11803398B2 (en) Computing device and associated methods providing browser launching of virtual sessions in an application
CN111200593A (zh) 应用登录方法、装置和电子设备
CN112733180A (zh) 数据查询方法、装置和电子设备
CN109842616B (zh) 账号绑定方法、装置及服务器
CN113377784B (zh) 一种基于中间件的数据处理方法、系统和存储介质
US10218505B1 (en) Server based settings for client software with asymmetric signing
CN111400743B (zh) 基于区块链网络的事务处理方法、装置、电子设备和介质
EP3477531A1 (en) Integrity of user input in web pages
KR102525716B1 (ko) Hsm 성능 향상 방법
US20230179404A1 (en) Hybrid cloud-based security service method and apparatus for security of confidential data
CN115941217B (zh) 用于安全通信的方法和其相关产品
US20240089249A1 (en) Method and system for verification of identify of a user
US11481759B2 (en) Method and system for implementing a virtual smart card service
CN110390516B (zh) 用于数据处理的方法、装置和计算机存储介质
JP2021152816A (ja) 情報処理システム、情報処理装置及びプログラム
KR102576819B1 (ko) 금융 토큰과 보안 토큰 발급이 가능한 클라우드 hsm 시스템 및 그의 금융 토큰과 보안 토큰 발급 방법

Legal Events

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