KR20210141188A - 분산형 키 관리 시스템 및 방법 - Google Patents

분산형 키 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20210141188A
KR20210141188A KR1020200058534A KR20200058534A KR20210141188A KR 20210141188 A KR20210141188 A KR 20210141188A KR 1020200058534 A KR1020200058534 A KR 1020200058534A KR 20200058534 A KR20200058534 A KR 20200058534A KR 20210141188 A KR20210141188 A KR 20210141188A
Authority
KR
South Korea
Prior art keywords
key
bootstrap
certificate
memory
management system
Prior art date
Application number
KR1020200058534A
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 KR1020200058534A priority Critical patent/KR20210141188A/ko
Priority to US16/885,480 priority patent/US11258616B2/en
Publication of KR20210141188A publication Critical patent/KR20210141188A/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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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]
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

분산형 키 관리 시스템 및 방법이 제공된다. 본 발명에 따른 분산형 키 관리 시스템은 키(Key)를 생성하고 상기 생성된 키에 대응하는 인증서를 획득하는 부트스트랩(Bootstrap), 상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 메모리, 상기 부트스트랩의 마운트(Mount) 명령에 응답하여 상기 메모리로부터 상기 키 및 상기 인증서를 읽어들여 마운트하는 컨테이너(Container), 및 상기 부트스트랩을 생성하고 상기 컨테이너가 상기 키 및 상기 인증서를 마운트 한 이후에는 상기 부트스트랩을 삭제하는 컨트롤러를 포함한다.

Description

분산형 키 관리 시스템 및 방법{DECENTRIALIZED KEY MANAGEMENT SYSTEM AND METHOD}
본 발명은 분산형 키 관리 시스템 및 방법에 관한 것이다. 보다 자세하게는, 중앙화 된 키 관리 시스템 없이 개별 로컬 장치가 자신의 키 및 인증서를 관리하는 분산형 키 관리 시스템 및 방법에 관한 것이다.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 자료 구조 그 자체를 의미한다. 블록체인 기술은 네트워크에 속한 모든 블록체인 노드가 트랜잭션을 기록하고 검증하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
블록체인 노드들은 블록체인 네트워크에 참여할 때 자신의 키와 인증서로 블록체인 네트워크에 대해 또는 다른 블록체인 노드에 대해 자신의 신원을 인증한다. 각 블록체인 노드들의 키와 인증서는 키 관리 시스템(KMS, Key Management System)에 의해 수집되어 HSM(Hardware Security Module)이라는 보안 매체에 따로 저장된다. 키 관리 시스템은 수집한 블록체인 노드들의 키와 인증서를 암호화하여 HSM에 저장하고, 블록체인 노드가 키와 인증서를 요청하는 경우 HSM에 저장된 키와 인증서를 불러와 복호화하여 블록체인 노드에 제공한다.
그러나, 이러한 종래의 키 관리 시스템은 모든 블록체인 노드의 키와 인증서가 키 관리 시스템 한 곳에 집중되므로, 키 관리 시스템이 외부 공격을 받는 경우 모든 블록체인 노드들의 키 및 인증서가 삭제되거나 유출되어 전체 블록체인 네트워크가 무력화되는 위험성이 존재한다(Single Points of Failure).
또한, 새로운 블록체인 노드가 생성되거나, 블록체인 노드가 삭제되거나, 삭제되었던 블록체인 노드가 복원되는 경우, 그 때마다 중앙의 키 관리 시스템에서 해당 블록체인 노드의 키 및 인증서를 새로 등록하거나, 삭제하거나, 기존 키 및 인증서를 삭제 후 다시 등록하여야 하여 관리 효율성 측면에서 문제가 있었으며, 특히 각 블록체인 노드가 빈번하게 생성, 삭제, 복원되는 것이 일반적인 블록체인 시스템에서는 그러한 비효율성이 더욱 두드러졌다.
이에 따라, 단일 고장점(Single Points of Failure) 문제를 해소하고, 키 및 인증서의 관리 효율성을 높이는 새로운 키 관리 시스템에 대한 요구가 높아져 왔다.
대한민국 등록특허공보 제10-2071402호 (2020.03.03 공고)
본 발명의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 개별 블록체인 노드가 자신의 키 및 인증서를 분산 관리함으로써 종래의 단일 고장점 문제를 해결하는 분산형 키 관리 시스템 및 방법을 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 블록체인 노드의 생성, 삭제, 복원 시에 관련된 키 및 인증서 관리를 간편하고 효율적으로 수행함으로써 관리 효율성을 높인 키 관리 시스템 및 방법을 제공하는 것이다.
본 발명의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 고가의 HSM을 사용하지 않아도 키 및 인증서를 안전하게 관리할 수 있는 보안성이 향상된 키 관리 시스템 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 분산형 키 관리 시스템은 키(Key)를 생성하고 상기 생성된 키에 대응하는 인증서를 획득하는 부트스트랩(Bootstrap), 상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 메모리, 상기 부트스트랩의 마운트(Mount) 명령에 응답하여 상기 메모리로부터 상기 키 및 상기 인증서를 읽어들여 마운트하는 컨테이너(Container), 및 상기 부트스트랩을 생성하고, 상기 컨테이너가 상기 키 및 상기 인증서를 마운트 한 이후에는 상기 부트스트랩을 삭제하는 컨트롤러를 포함한다.
일 실시예로서, 상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 스토리지를 더 포함할 수 있다.
일 실시예로서, 상기 컨테이너가 상기 메모리로부터 상기 키 및 상기 인증서를 읽어들이는 경우를 제외하면, 상기 메모리 및 상기 스토리지는 상기 부트스트랩을 통해서만 액세스 가능할 수 있다.
일 실시예로서, 상기 부트스트랩은 상기 스토리지에는 상기 키를 암호화하여 제공하고, 상기 메모리에는 상기 키를 암호화하지 않은 상태로 제공할 수 있다.
일 실시예로서, 상기 컨트롤러는 상기 메모리에 저장된 상기 키 또는 상기 인증서가 삭제된 경우, 상기 키 또는 상기 인증서의 복원을 위해 상기 부트스트랩을 다시 생성할 수 있다.
일 실시예로서, 상기 다시 생성된 부트스트랩은 상기 스토리지로부터 상기 키 또는 상기 인증서를 읽어들여 상기 메모리에 다시 저장하고, 상기 컨테이너는 상기 다시 생성된 부트스트랩의 마운트 명령에 응답하여 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 읽어들여 마운트 할 수 있다.
일 실시예로서, 상기 컨트롤러는 상기 컨테이너가 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 마운트 한 이후에는 상기 다시 생성된 부트스트랩을 삭제할 수 있다.
일 실시예로서, 상기 컨트롤러는 클라이언트 장치로부터의 노드 생성 요청에 응답하여 상기 부트스트랩을 생성하고, 상기 컨테이너는 블록체인 네트워크의 노드를 구성하고 상기 마운트 한 상기 키 및 상기 인증서를 이용하여 상기 블록체인 네트워크에 대한 인증을 수행할 수 있다.
일 실시예로서, 상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 스토리지를 더 포함하고, 상기 컨트롤러는 상기 부트스트랩을 삭제한 이후 클라이언트 장치로부터의 노드 복원 요청이 있으면 상기 부트스트랩을 다시 생성하고, 상기 다시 생성된 부트스트랩은 상기 스토리지로부터 상기 키 또는 상기 인증서를 읽어들여 상기 메모리에 다시 저장하고, 상기 컨테이너는 상기 다시 생성된 부트스트랩의 마운트 명령에 응답하여 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 읽어들여 다시 마운트하고, 상기 다시 마운트 한 상기 키 또는 상기 인증서를 이용하여 상기 노드를 복원할 수 있다.
일 실시예로서, 상기 컨트롤러는 상기 컨테이너가 상기 노드를 복원한 이후에는 상기 다시 생성된 부트스트랩을 삭제할 수 있다.
일 실시예로서, 상기 부트스트랩은 한 쌍의 비대칭 암호화 키를 생성하고, 상기 한 쌍의 비대칭 암호화 키 중 공개키(Public Key)를 이용하여 인증서 발급자로부터 상기 인증서를 획득하고, 상기 키는 상기 한 쌍의 비대칭 암호화 키 중 개인키(Private Key)일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 분산형 키 관리 방법은 부트스트랩(Bootstrap)을 생성하는 단계, 상기 부트스트랩을 이용하여 키를 생성하고, 상기 생성된 키에 대응하는 인증서를 획득하는 단계, 상기 키 및 상기 인증서를 메모리에 저장하는 단계, 상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계, 및 상기 키 및 상기 인증서를 마운트 한 이후에, 상기 부트스트랩을 삭제하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 분산형 키 관리 방법은 부트스트랩(Bootstrap)을 생성하는 단계, 상기 부트스트랩을 이용하여 스토리지에 저장된 암호화된 키 및 인증서를 읽는 단계, 상기 암호화된 키 및 인증서를 복호화하여 메모리에 저장하는 단계, 상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계, 및 상기 키 및 상기 인증서를 마운트 한 이후에, 상기 부트스트랩을 삭제하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 분산형 키 관리 시스템의 구동을 위한 컴퓨터 프로그램은 부트스트랩(Bootstrap)을 생성하는 단계, 상기 부트스트랩을 이용하여 키를 생성하고, 상기 생성된 키에 대응하는 인증서를 획득하는 단계, 상기 키 및 상기 인증서를 메모리에 저장하는 단계, 상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계, 및 상기 키 및 상기 인증서를 마운트 한 이후에 상기 부트스트랩을 삭제하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장된다.
도 1은 종래 키 관리 시스템의 동작 및 그로 인한 다양한 문제점들을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 키 관리 시스템의 구성 및 동작을 보여주는 블록도이다.
도 3은 도 2의 키 관리 시스템(100)이 부트스트랩(120)을 삭제했을 때 각 구성 요소(130, 140, 150)들이 외부 공격으로부터 어떻게 보호되는 지를 설명하기 위한 도면이다.
도 4는 본 발명에 따른 분산형 키 관리 시스템(100)이 적용된 블록체인 네트워크 환경을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 노드 생성 시의 분산형 키 관리 방법을 도시하는 순서도이다.
도 6은 도 5의 분산형 키 관리 방법을 각 구성요소 간 순차적 상호작용을 중심으로 부연 설명하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른, 블록체인 노드 복원 시의 분산형 키 관리 방법을 도시하는 순서도이다.
도 8은 도 7의 분산형 키 관리 방법을 각 구성요소 간 순차적 상호작용을 중심으로 부연 설명하는 흐름도이다.
도 9는 본 발명의 다양한 실시예들이 구현되는 컴퓨팅 장치(500)의 예시적인 하드웨어 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 종래 키 관리 시스템의 동작 및 그로 인한 다양한 문제점들을 설명하기 위한 도면이다. 도 1은 블록체인 시스템을 위한 종래의 키 관리 시스템을 도시한다.
블록체인 네트워크(10)는 복수의 블록체인 노드들의 컴퓨팅 능력을 이용하여 필요한 트랜잭션 및 연산 처리를 수행하는 시스템으로, 복수의 블록체인 노드(11, 12, 13)를 포함할 수 있다. 각 블록체인 노드(11, 12, 13)는 P2P(peer-to-peer) 구조의 블록체인 네트워크(300)를 구성하고, 블록체인 프로토콜에 따라 동작한다. 각 블록체인 노드(11, 12, 13)는 블록체인 네트워크(10)를 통해 각종 스마트 컨트랙트, 트랜잭션 데이터를 공유할 수 있고, 합의 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
각 블록체인 노드(11, 12, 13)는 블록체인 네트워크(10)에 참여할 때 자신이 정당한 노드인지 증명하기 위해 자신의 신원을 인증한다. 이를 위해, 각 블록체인 노드(11, 12, 13)는 키 관리 서버(13)를 통해 신원 인증을 위한 키 및 인증서를 발급받고, 상기 키 및 인증서는 키 관리 서버(13)가 접근가능한 별도의 보안 매체(14)에 수집 저장된다. 각 블록체인 노드(11, 12)는 신원 인증이 필요할 때, 키 관리 서버(13)에 키 및 인증서를 요청하고, 키 관리 서버(13)는 키 및 인증서를 보안 매체(14)에서 읽어와 이를 복호한 후 요청한 블록체인 노드(11, 12)에 제공하게 된다.
일 실시예로서, 상기 보안 매체(14)는 HSM(Hardware Security Module)과 같은 보안성이 강화된 저장 매체일 수 있다.
일 실시예로서, 상기 키 관리 서버(13)는 블록체인 노드들(11, 12, 13) 중 어느 한 노드(예를 들어, 제3 노드)일 수 있으나, 이에 한정되지는 않는다. 예를 들어, 블록체인 네트워크(10)와 연결된 별도의 키 관리 서버(15)를 구비하고, 상기 키 관리 서버(15)를 통해 블록체인 노드(11, 12, 13)의 키 및 인증서를 수집하여 키 관리 서버(15)가 접근가능한 보안 매체(16)에 보관하는 것도 가능하다.
그러나, 이러한 종래의 키 관리 방식은 몇가지 심각한 문제를 내포하고 있다. 첫째, 전체 블록체인 노드들(11, 12, 30)의 키 및 인증서를 한 곳에서 보관, 관리하고 있기 때문에, 보관, 관리하는 키 관리 서버(13)나 보안 매체(14)에 문제가 생긴 경우, 전체 블록체인 네트워크(10)가 동작하지 못하는 단일 고장점(Single Points of Failure)의 문제가 발생할 수 있다. 더불어, 한 곳에 키 및 인증서가 저장되고 있으므로, 특정 장치(13, 14)에 대한 해킹 공격만으로 블록체인 네트워크(10)의 전체 키 및 인증서가 유출될 수 있는 보안 상의 문제점도 내포하고 있다.
둘째, 전체 블록체인 노드(11, 12, 13)의 키 및 인증서를 하나의 키 관리 서버(13)가 관리하므로, 블록체인 노드가 새롭게 생성되거나, 삭제되거나, 복원될 때마다 중앙의 키 관리 서버(13)가 해당 블록체인 노드의 키 및 인증서를 지속적으로 갱신, 저장해야 하는 관리 상의 문제가 있다. 블록체인 네트워크(10)는 다수의 블록체인 노드들이 모여 구성된 시스템으로, 상시적으로 새로운 블록체인 노드가 추가되거나 기존 블록체인 노드가 삭제되는 등 네트워크 구조가 빈번하게 변동된다. 그에 따른, 키 및 인증서 관리를 중앙의 키 관리 서버(13) 한 곳에서 수행하게 되면, 블록체인 네트워크 구조의 변동에 유동적으로 대응하기 어려워 키 및 인증서 관리의 효율성이 크게 저하될 수 있다.
셋째, 보안 매체(14)의 경우, 전체 블록체인 노드(11, 12, 13)의 키 및 인증서를 보관하므로 보안성이 크게 강화된 저장 매체(예를 들어, HSM)를 사용해야 하는데, 그 기기의 가격이 상당히 고가이고 하드웨어의 특성상 고장이나 손상이 발생했을 때 이를 즉각적으로 보수하기 어려운 문제점이 있다.
이하에서는, 이러한 종래 키 관리 시스템의 문제점을 해결하고, 저렴한 비용으로 보안성 및 관리 효율성을 현저히 높일 수 있는 키 관리 시스템을 제안하고자 한다.
도 2는 본 발명의 일 실시예에 따른 키 관리 시스템의 구성 및 동작을 보여주는 블록도이다. 도 2를 참조하면, 키 관리 시스템(100)은 컨트롤러(110), 부트스트랩(120), 스토리지(130), 메모리(140) 및 컨테이너(150)를 포함한다.
설명의 구체성을 위해, 본 실시예에서 키 관리 시스템(100)은 블록체인 네트워크(20)를 구성하는 블록체인 노드인 것으로 예시되나, 본 발명의 범위는 이에 한정되지 않는다. 가령, 본 발명에 따른 키 관리 시스템(100)은 블록체인 시스템 외에도 분산형 키 관리 방법이 요구되는 곳이라면 어느 곳에나 적용될 수 있다.
이하, 각 구성 요소(110, 120, 130, 140, 150)의 기능 및 동작에 대해 도면을 참조하여 설명한다.
컨트롤러(110)는 키 관리 장치(100)의 전반적인 동작을 제어하는 장치로서, CPU(Central Processing Unit)일 수 있으나 이에 한정되지는 않는다. 컨트롤러(110)는 부트스트랩(120)을 생성하거나 삭제하고, 부트스트랩(120)이 특정 동작을 수행하도록 부트스트랩(120)을 제어할 수 있다. 예를 들어, 컨트롤러(110)는 클라이언트 장치(30)로부터의 노드 생성 요청에 응답하여 부트스트랩(120)을 생성하고, 키 관리 시스템(100)이 속한 블록체인 노드(예를 들어, 도 1의 11, 12, 또는 13)의 키 및 인증서를 획득하도록 부트스트랩(120)을 제어할 수 있다. 또한, 이후 후술하겠지만, 컨트롤러(110)는 획득한 키 및 인증서를 이용하여 블록체인 노드 생성을 완료한 후에는, 부트스트랩(120)을 삭제할 수 있다.
부트스트랩(120)은 키 및 인증서 획득을 위해 일시적으로 생성 및 구동되는 소프트웨어 모듈이다. 예를 들어, 부트스트랩(120)은 키 및 인증서 획득을 위한 일련의 프로세스들을 수행하도록 코딩된 애플리케이션(Application)일 수 있다.
부트스트랩(120)은 먼저 키 관리 장치(100)의 고유한 키를 생성한다. 그리고, 부트스트랩(120)은 생성한 키를 이용하여 인증서 발급자(40)에게 인증서를 요청하고, 인증서 발급자(40)가 발급한 인증서를 수신, 획득한다.
일 실시예로서, 부트스트랩(120)이 생성하는 키는 공개키(Public Key) 및 개인키(Private Key)를 포함하는 한 쌍의 비대칭 암호화 키일 수 있다. 이때, 부트스트랩(120)은 생성한 공개키와 함께 인증서 발급자(40)에게 인증서를 요청하고, 이때 자신이 개인키를 가지고 있음을 증명하기 위해 앞서 생성한 개인키로 서명한 문서도 함께 보낸다. 인증서 발급자(40)는 키 관리 장치(100)의 신분을 인증하고 서명한 문서를 확인한 후 상기 공개키, 키 관리 장치(100)에 대한 사용자 정보, 및 인증 정보를 포함한 문서에 서명하여 인증서를 생성하고 이를 부트스트랩(120)에게 발급한다. 이후, 부트스트랩(120)은 이후 신원 증명에 있어 공개키가 자신의 것임을 확인시킬 필요가 있을 경우, 발급받은 인증서를 활용하게 된다.
일 실시예로서, 부트스트랩(120)은 생성한 키를 암호화하여 보관할 수 있다. 이때, 암호화되는 키는 부트스트랩(120)이 생성한 한 쌍의 암호화 키 중 개인키 일 수 있다.
인증서 발급자(40)로부터 인증서를 획득하면, 부트스트랩(120)은 자신이 생성한 키 및 발급받은 인증서를 스토리지(130)에 저장한다.
스토리지(130)는 부트스트랩(120)으로부터 키 및 인증서를 수신하여 저장한다. 이때, 스토리지(130)가 저장하는 키는 보안을 위해 부트스트랩(120)에 의해 암호화된 키이다. 스토리지(130)는 키 및 인증서 저장을 완료한 후에는 이를 완료했다는 신호를 부트스트랩(120)에 리턴(Return) 한다.
일 실시예로서, 스토리지(130)는 부트스트랩(120)만 접근 가능하도록 접근 권한이 제한된 승인된 하드디스크(Authorized Hard Disk Drive)일 수 있다.
메모리(140) 역시 부트스트랩(120)으로부터 키 및 인증서를 수신받아 저장하는 구성요소이다. 부트스트랩(120)이 스토리지(130)로부터 완료 신호를 수신하면, 이어서 상기 키 및 인증서를 메모리(140)에 다시 저장하게 된다. 이때, 메모리(140)가 저장하는 키는 암호화되지 않은 평문(Plain Text) 형태의 키로, 부트스트랩(120)은 앞서 암호화했던 키를 다시 복호화하여 메모리(140)에 제공한다. 메모리(120)는 키 및 인증서를 비일시적으로 저장하는 저장 매체로서, 예를 들어 플래시 메모리(Flash Memory)일 수 있지만, 이에 한정되지는 않는다. 한편, 메모리(140)는 스토리지(130)의 경우와 마찬가지로, 키 및 인증서 저장을 완료한 후에는 이를 알리는 신호를 부트스트랩(120)에 리턴한다.
컨테이너(150, Container)는 애플리케이션을 구동할 수 있는 컴퓨팅 환경 또는 모듈로서, 메모리(140)에 저장된 키 및 인증서를 읽어들여 마운트 한 후, 이를 기반으로 블록체인 네트워크(20)의 노드를 구성한다. 일반적으로, 컨테이너(Container)라 함은 필요에 따라 적절한 컴퓨팅 자원을 할당받아 구동되는 컴퓨팅 요소로서, 애플리케이션을 구동할 수 있는 환경을 가상화 한 컴퓨팅 환경 또는 모듈을 의미한다. 컨테이너는 다른 컨테이너 또는 다른 구성요소와 격리된 컴퓨팅 환경을 구성할 수 있으며, LXC(Linux Container), Libcontainer, CGroup, Namespaces, 또는 selinux 등 다양한 가상화 기반 기술을 이용하여 온프레미스 환경을 구현할 수 있다.
도 2의 컨테이너(150)는 블록체인 노드를 생성하는 컴퓨팅 요소로서 앞서 설명한 가상화 기술에 따른 컨테이너로 구성하는 것이 바람직하나, 이에 한정되지는 않는다. 가령, 컨테이너(150)는 비록 컨테이너로 지칭되고는 있으나 일반적인 애플리케이션 구동 모듈로서, 상기 가상화 기술에 따른 컨테이너와는 무관한 구성요소일 수도 있다.
부트스트랩(120)은 메모리(140)로부터 상기 리턴 신호를 수신한 이후, 컨테이너(150)에 키 및 인증서를 마운트하라는 명령(CMD)을 내린다. 컨테이너(150)는 마운트 명령(CMD)에 응답하여, 메모리(140)에 저장된 키 및 인증서를 읽어들인 후 마운트한다. 그리고, 컨테이너(150)는 성공적으로 마운트를 완료하였다는 신호를 부트스트랩(120)으로 리턴한다. 이후, 컨테이너(150)는 블록체인 노드를 생성하고, 마운트 한 키 및 인증서를 이용하여 생성한 노드의 인증 작업을 수행한다.
한편, 부트스트랩(120)이 컨테이너로부터 상기 리턴 신호를 수신하면, 부트스트랩(120)은 일련의 노드 생성 작업(또는, 키 및 인증서 마운트 작업)이 성공적으로 완료되었음을 나타내는 리턴 신호를 컨트롤러(110)에 회신한다.
컨트롤러(110)는 부트스트랩(120)으로부터의 리턴 신호에 따라 부트스트랩(120)이 역할을 다 한 것으로 보고 부트스트랩(120)을 삭제한다.
이처럼 컨트롤러(110)가 부트스트랩(120)을 삭제하는 이유는 스토리지(130) 및 메모리(140)에 저장된 키 및 인증서를 안전하게 보호하기 위함이다. 이에 대해 도 3을 참조하여 설명한다.
도 3은 컨테이너(150)에 키 및 인증서를 마운트 한 후 부트스트랩(120)을 삭제한 상태의 키 관리 시스템(100)을 도시한다. 본 실시예에서, 메모리(140) 및 스토리지(130)는 부트스트랩(120)를 통해서만 액세스가 가능하도록 접근이 제한되는 것으로 가정한다. 가령, 스토리지(130)는 부트스트랩(120)을 통해서만 액세스 및 읽기/쓰기가 가능하고, 그 밖의 다른 구성요소를 통해서는 액세스가 불가능하다. 유사하게, 메모리(140) 또한 부트스트랩(120)을 통해서만 액세스 및 읽기/쓰기가 가능하고, 그 밖의 다른 구성요소를 통해서는 액세스가 불가능하다. 다만, 예외적으로 메모리(140)는 컨테이너(150)가 메모리(140)에 저장된 키 및 상기 인증서를 읽어들여 마운트하는 경우에는 제한적으로 액세스를 허용할 수 있다.
이러한 전제하에서, 도면을 참조하면, 부트스트랩(120)이 삭제되어 스토리지(130) 및 메모리(140)에 접근할 수 있는 경로가 사라지게 되므로, 외부 공격에 의해 키 관리 시스템(100)의 컨트롤러(110)나 기타 통신 인터페이스(160)가 해킹 당하더라도 스토리지(130) 및 메모리(140)에 저장된 키와 인증서는 안전하게 보관될 수 있다. 이와 같이, 부트스트랩(120)을 키 및 인증서에 액세스할 수 있는 유일한 경로로 설정하고, 키 및 인증서의 마운트가 완료된 후에 이를 삭제하면 해킹 공격 등으로부터 훨씬 안전해질 수 있는 것이다.
한편, 이처럼, 부트스트랩(120)을 삭제한 이후에, 키 관리 시스템(100)이 다운되는 등의 이유로 메모리(140) 및 컨테이너(150)에 로드된 키와 인증서가 삭제되거나 사용할 수 없게 되는 경우가 있을 수 있다.
이 경우, 컨트롤러(110)는 상기 키 및 인증서를 복원하기 위해 부트스트랩(120)을 다시 생성하고, 다시 생성된 부트스트랩(120)을 통해 스토리지(130)에 저장된 키와 인증서를 읽어들인 후 이를 다시 순차적으로 메모리(140)에 다시 저장하고, 컨테이너(150)에 다시 마운트하는 방법으로 손쉽게 키 및 인증서를 복원할 수 있다. 삭제된 키 및 인증서를 복원하는 방법에 대해서는 도 7 및 도 8에서 더욱 상세히 후술되므로 여기서는 그에 대한 더 이상의 설명은 생략한다.
이상에서 설명한 본 발명에 따르면, 개별 블록체인 노드(또는, 그에 부속된 키 관리 시스템)가 자신의 키 및 인증서를 분산 관리하기 때문에, 어느 한 노드가 다운되더라도 나머지 블록체인 노드들은 정상적으로 동작할 수 있어, 종래 키 관리 시스템이 갖는 단일 고장점 문제를 해결할 수 있게 된다.
또한, 개별 블록체인 노드가 키 및 인증서를 분산 관리하므로 종래 중앙집중적 키 관리 시스템이 갖던 관리 상의 비효율성이 개선되며, 특히, 삭제된 키 및 인증서를 복원하는 경우에, 스토리지 저장된 키 및 인증서를 불러와 다시 마운트 하는 것만으로 이를 손쉽게 수행할 수 있어 키 및 인증서 관리의 효율성이 크게 향상된다.
또한, 키 및 인증서 마운트가 완료된 후에는 부트스트랩을 삭제함으로써 외부의 해킹 등으로부터 저장된 키와 인증서를 안전하게 보호할 수 있어, 고가의 HSM을 사용하지 않아도 키 및 인증서를 안전하게 관리할 수 있게 된다.
도 4는 본 발명에 따른 분산형 키 관리 시스템(100)이 적용된 블록체인 네트워크 환경을 예시적으로 보여주는 도면이다. 도 4를 참조하면, 블록체인 네트워크(20)의 노드로서 복수의 노드들(21, 22, 23, 24, 25)가 도시된다.
본 발명에 따른 키 관리 시스템(100)이 적용되는 경우, 각 노드들(21, 22, 23, 24, 25)은 자신의 키 및 인증서를 스스로 저장 및 관리하며, 별도의 중앙화 된 키 관리 시스템이나 키를 수집하여 저장하는 보안 매체는 필요하지 않게 된다. 따라서, 단일 고장점 문제가 발생할 수 있는 근본적인 이유가 사라지므로, 특정 노드가 공격당하거나 다운되더라도 전체 블록체인 시스템의 동작은 지장을 받지 않으며, 안정적으로 블록체인 서비스를 제공할 수 있게 된다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 노드 생성 시의 분산형 키 관리 방법을 도시하는 순서도이다. 도 5에서는 앞서 설명한 키 관리 장치(100)가 블록체인 노드를 생성할 때의 최초로 키를 생성하고 인증서를 획득하여 이를 컨테이너에 마운트하는 일련의 단계들을 설명한다. 따라서, 이하의 단계들에서 주체가 명시되지 않는 경우 그 수행 주체는 상기 키 관리 장치(100)인 것으로 전제한다.
S110 단계에서, 키 관리 장치(100)는 부트스트랩(120)을 생성한다. 이때, 키 관리 장치(100)는 클라이언트 장치(30)의 노드 생성 요청에 응답하여, 상기 노드 생성 요청에 필요한 키 및 인증서를 획득하기 위해 부트스트랩(20)을 생성할 수 있다.
S120 단계에서, 키 관리 장치(100)는 부트스트랩(120)을 이용하여 키를 생성하고, 생성된 키에 대응되는 인증서를 인증서 발급자(40)로부터 발급받는다. 이때, 부트스트랩(120)은 생성한 키를 암호화하여 저장할 수 있다.
S130 단계에서, 키 관리 장치(100)는 암호화된 키 및 인증서를 스토리지(130)에 저장한다. 스토리지(130)는 키 및 인증서의 저장이 완료되면 그에 대한 신호를 부트스트랩(120)에 리턴한다.
S140 단계에서, 키 관리 장치(100)는 암호화된 키를 복호화 한 후, 복호화 된(즉, 암호화되지 않은) 키 및 인증서를 메모리(140)에 저장한다. 스토리지(130)는 키 및 인증서의 저장이 완료되면 그에 대한 신호를 부트스트랩(120)에 리턴한다.
S150 단계에서, 키 관리 장치(100)는 컨테이너(150)에게 마운트 명령을 내려, 컨테이너(150)가 메모리(140)에 저장된 키 및 인증서를 마운트 하도록 한다.
S160 단계에서, 키 관리 장치(100)는 상기 키 및 인증서의 마운트가 성공적으로 완료되면 스토리지(130) 및 메모리(140)를 안전하게 보호하기 위해 부트스트랩(120)을 삭제한다.
도 6은 도 5의 분산형 키 관리 방법을 각 구성요소 간 순차적 상호작용을 중심으로 부연 설명하는 흐름도이다. 이하 도면을 참조하여 설명한다.
먼저, 클라이언트 장치(30)는 컨트롤러(110)에게 노드 생성을 요청한다. 컨트롤러(110)는 노드 생성 요청에 응답하여 부트스트랩(120)을 생성한다.
부트스트랩(120)은 키를 생성하고, 생성된 키를 이용하여 인증서 발급자(40)에게 인증서 발급을 요청한다. 이때, 부트스트랩(120)는 생성된 키를 암호화하여 보관할 수 있다.
인증서 발급자(40)로부터 인증서가 발급되면, 부트스트랩(120)은 키 및 인증서를 스토리지(130)에 저장한다. 그리고, 스토리지(130)로부터 키 및 인증서가 성공적으로 저장되었다는 리턴 신호가 오기를 기다려, 앞서 암호화한 키를 다시 복호화 한다. 이는 키를 평문 형태로 메모리(140)에 제공하기 위함이다.
키가 복호화 되면 부트스트랩(120)은 메모리(140)이 키 및 인증서를 저장한다. 그리고, 메모리(140)로부터 키 및 인증서가 성공적으로 저장되었다는 리턴 신호가 오기를 기다려, 컨테이너(150)에게 키 및 인증서를 마운트하라는 마운트 명령을 전송한다.
컨테이너(150)는 부트스트랩(120)의 마운트 명령에 응답하여 메모리(140)에 저장된 키 및 인증서를 읽어들여 마운트한다. 그리고, 마운트가 완료되면 그에 대한 리턴 신호를 부트스트랩(120)에 전송한다.
부트스트랩(120)은 컨테이너(150)로부터의 리턴 신호를 수신하면, 부트스트랩(120)의 예정된 작업이 모두 완료되었다는 신호를 컨트롤러(110)에게 리턴한다. 이후, 컨트롤러(110)가 부트스트랩(120)의 리턴 신호를 확인하고, 부트스트랩(120)을 삭제하는 것으로 본 실시예는 종료한다.
도 7은 본 발명의 일 실시예에 따른, 블록체인 노드 복원 시의 분산형 키 관리 방법을 도시하는 순서도이다. 도 7에서는 메모리(140) 및 컨테이너(150)의 키와 인증서가 삭제된 경우 스토리지(130)로부터 이를 다시 불러와 복원하는 일련의 단계들을 설명한다. 도 5에서와 같이, 이하의 단계들에서 주체가 명시되지 않는 경우 그 수행 주체는 키 관리 장치(100)인 것으로 전제한다.
S210 단계에서, 키 관리 장치(100)는 삭제된 키 및 인증서를 복원하기 위해 부트스트랩(120)을 다시 생성한다. 그리고, 부트스트랩(120)에게 키 및 인증서를 복원하라는 명령을 전송한다.
S220 단계에서, 키 관리 장치(100)는 부트스트랩(120)을 통해 스토리지(130)에 저장된 키 및 인증서를 읽어들인다.
S230 단계에서, 키 관리 장치(100)는 읽어들인 키를 복호화하여 평문 형태로 만든 후 이를 다시 인증서와 함께 메모리(140)에 저장한다.
S240 단계에서, 키 관리 장치(100)는 컨테이너(150)에게 마운트 명령을 내려, 컨테이너(150)가 메모리(140)에 저장된 키 및 인증서를 마운트 하도록 한다.
S250 단계에서, 컨테이너(150) 키 및 인증서를 마운트하여, 복원 작업이 성공적으로 완료되면 키 관리 장치(100)는 부트스트랩(120)을 다시 삭제한다.
도 8은 도 7의 분산형 키 관리 방법을 각 구성요소 간 순차적 상호작용을 중심으로 부연 설명하는 흐름도이다. 이하 도면을 참조하여 설명한다.
먼저, 클라이언트 장치(30)는 컨트롤러(110)에게 노드 복원을 위한 노드 생성을 요청한다. 컨트롤러(110)는 노드 생성 요청에 응답하여 부트스트랩(120)을 다시 생성한다.
도 6의 실시예에서와 달리, 이미 키 관리 장치(100)의 키 및 인증서는 스토리지(130)에 저장되어 있는 상태이다. 따라서, 본 실시예에서는 키 생성 및 인증서 발급 절차가 불필요하며, 따라서 인증서 발급자(40)를 통해 인증서를 발급받는 단계를 스킵(Skip)한다.
부트스트랩(120)은 스토리지(130)에 액세스하여 스토리지(130)가 저장하고 있는 키 및 인증서를 요청한다. 스토리지(130)는 상기 요청에 응답하여 저장된 키 및 인증서를 부트스트랩(120)에 제공한다.
부트스트랩(120)은 스토리지(130)가 제공한 키를 복호화 하고, 복호화 된 키 및 인증서를 메모리(140)에 저장한다. 그리고, 메모리(140)로부터 키 및 인증서가 성공적으로 저장되었다는 리턴 신호가 오기를 기다려, 컨테이너(150)에 메모리(140)의 키 및 인증서를 마운트하라는 마운트 명령을 전송한다.
컨테이너(150)는 부트스트랩(120)의 마운트 명령에 응답하여 메모리(140)에 저장된 키 및 인증서를 읽어들여 마운트한다. 그리고, 마운트가 완료되면 그에 대한 리턴 신호를 부트스트랩(120)에 전송한다.
부트스트랩(120)은 컨테이너(150)로부터의 리턴 신호를 수신하면, 부트스트랩(120)의 예정된 작업이 모두 완료되었다는 신호를 컨트롤러(110)에게 리턴한다. 이후, 컨트롤러(110)가 부트스트랩(120)의 리턴 신호를 확인하고, 부트스트랩(120)을 삭제하는 것으로 본 실시예는 종료한다.
이하에서는, 도 9를 참조하여 본 발명의 다양한 실시예에서 설명된 방법들이 구현되는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다.
도 9는 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다. 도 9의 컴퓨팅 장치(500)는 예를 들어, 도 2의 키 관리 장치(100)가 구현된 하드웨어 장치일 수 있다.
도 9에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 9에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 9에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(Instructions)을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(591)은 본 발명에 실시예들에 따른 분산형 키 관리 시스템을 구동시키기 위해, 부트스트랩(Bootstrap)을 생성하는 동작, 상기 부트스트랩을 이용하여 키를 생성하고 상기 생성된 키에 대응하는 인증서를 획득하는 동작, 상기 키 및 상기 인증서를 메모리에 저장하는 동작, 상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 동작, 및 상기 키 및 상기 인증서를 마운트 한 이후에 상기 부트스트랩을 삭제하는 동작이 실행되도록 하는 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (14)

  1. 키(Key)를 생성하고 상기 생성된 키에 대응하는 인증서를 획득하는 부트스트랩(Bootstrap);
    상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 메모리;
    상기 부트스트랩의 마운트(Mount) 명령에 응답하여 상기 메모리로부터 상기 키 및 상기 인증서를 읽어들여 마운트하는 컨테이너(Container); 및
    상기 부트스트랩을 생성하고, 상기 컨테이너가 상기 키 및 상기 인증서를 마운트 한 이후에는 상기 부트스트랩을 삭제하는 컨트롤러를 포함하는,
    분산형 키 관리 시스템.
  2. 제1 항에 있어서,
    상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 스토리지를 더 포함하는,
    분산형 키 관리 시스템.
  3. 제2 항에 있어서,
    상기 컨테이너가 상기 메모리로부터 상기 키 및 상기 인증서를 읽어들이는 경우를 제외하면, 상기 메모리 및 상기 스토리지는 상기 부트스트랩을 통해서만 액세스 가능한,
    분산형 키 관리 시스템.
  4. 제2 항에 있어서,
    상기 부트스트랩은,
    상기 스토리지에는 상기 키를 암호화하여 제공하고,
    상기 메모리에는 상기 키를 암호화하지 않은 상태로 제공하는,
    분산형 키 관리 시스템.
  5. 제2 항에 있어서,
    상기 컨트롤러는,
    상기 메모리에 저장된 상기 키 또는 상기 인증서가 삭제된 경우, 상기 키 또는 상기 인증서의 복원을 위해 상기 부트스트랩을 다시 생성하는,
    분산형 키 관리 시스템.
  6. 제5 항에 있어서,
    상기 다시 생성된 부트스트랩은,
    상기 스토리지로부터 상기 키 또는 상기 인증서를 읽어들여 상기 메모리에 다시 저장하고,
    상기 컨테이너는,
    상기 다시 생성된 부트스트랩의 마운트 명령에 응답하여 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 읽어들여 마운트하는,
    분산형 키 관리 시스템.
  7. 제6 항에 있어서,
    상기 컨트롤러는,
    상기 컨테이너가 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 마운트 한 이후에는 상기 다시 생성된 부트스트랩을 삭제하는,
    분산형 키 관리 시스템.
  8. 제1 항에 있어서,
    상기 컨트롤러는,
    클라이언트 장치로부터의 노드 생성 요청에 응답하여 상기 부트스트랩을 생성하고,
    상기 컨테이너는,
    블록체인 네트워크의 노드를 구성하고,
    상기 마운트 한 상기 키 및 상기 인증서를 이용하여 상기 노드의 인증을 수행하는,
    분산형 키 관리 시스템.
  9. 제8 항에 있어서,
    상기 부트스트랩으로부터 상기 키 및 상기 인증서를 제공받아 저장하는 스토리지를 더 포함하고,
    상기 컨트롤러는,
    상기 부트스트랩을 삭제한 이후 클라이언트 장치로부터의 노드 복원 요청이 있으면 상기 부트스트랩을 다시 생성하고,
    상기 다시 생성된 부트스트랩은,
    상기 스토리지로부터 상기 키 또는 상기 인증서를 읽어들여 상기 메모리에 다시 저장하고,
    상기 컨테이너는,
    상기 다시 생성된 부트스트랩의 마운트 명령에 응답하여 상기 메모리에 다시 저장된 상기 키 또는 상기 인증서를 읽어들여 다시 마운트하고, 상기 다시 마운트 한 상기 키 또는 상기 인증서를 이용하여 상기 노드를 복원하는,
    분산형 키 관리 시스템.
  10. 제9 항에 있어서,
    상기 컨트롤러는,
    상기 컨테이너가 상기 노드를 복원한 이후에는 상기 다시 생성된 부트스트랩을 삭제하는,
    분산형 키 관리 시스템.
  11. 제1 항에 있어서,
    상기 부트스트랩은,
    한 쌍의 비대칭 암호화 키를 생성하고, 상기 한 쌍의 비대칭 암호화 키 중 공개키(Public Key)를 이용하여 인증서 발급자로부터 상기 인증서를 획득하고,
    상기 키는,
    상기 한 쌍의 비대칭 암호화 키 중 개인키(Private Key)인,
    분산형 키 관리 시스템.
  12. 컴퓨팅 장치에 의해 수행되는 분산형 키 관리 방법에 있어서,
    부트스트랩(Bootstrap)을 생성하는 단계;
    상기 부트스트랩을 이용하여 키를 생성하고, 상기 생성된 키에 대응하는 인증서를 획득하는 단계;
    상기 키 및 상기 인증서를 메모리에 저장하는 단계;
    상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계; 및
    상기 키 및 상기 인증서를 마운트 한 이후에, 상기 부트스트랩을 삭제하는 단계를 포함하는,
    분산형 키 관리 방법.
  13. 컴퓨팅 장치에 의해 수행되는 분산형 키 관리 방법에 있어서,
    부트스트랩(Bootstrap)을 생성하는 단계;
    상기 부트스트랩을 이용하여 스토리지에 저장된 암호화된 키 및 인증서를 읽는 단계;
    상기 암호화된 키 및 인증서를 복호화하여 메모리에 저장하는 단계;
    상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계; 및
    상기 키 및 상기 인증서를 마운트 한 이후에, 상기 부트스트랩을 삭제하는 단계를 포함하는,
    분산형 키 관리 방법.
  14. 분산형 키 관리 시스템의 구동을 위해,
    부트스트랩(Bootstrap)을 생성하는 단계;
    상기 부트스트랩을 이용하여 키를 생성하고, 상기 생성된 키에 대응하는 인증서를 획득하는 단계;
    상기 키 및 상기 인증서를 메모리에 저장하는 단계;
    상기 메모리에 저장된 상기 키 및 상기 인증서를 컨테이너에 마운트하는 단계; 및
    상기 키 및 상기 인증서를 마운트 한 이후에, 상기 부트스트랩을 삭제하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되는,
    컴퓨터 프로그램.
KR1020200058534A 2020-05-15 2020-05-15 분산형 키 관리 시스템 및 방법 KR20210141188A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200058534A KR20210141188A (ko) 2020-05-15 2020-05-15 분산형 키 관리 시스템 및 방법
US16/885,480 US11258616B2 (en) 2020-05-15 2020-05-28 Decentralized key management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200058534A KR20210141188A (ko) 2020-05-15 2020-05-15 분산형 키 관리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20210141188A true KR20210141188A (ko) 2021-11-23

Family

ID=78512093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200058534A KR20210141188A (ko) 2020-05-15 2020-05-15 분산형 키 관리 시스템 및 방법

Country Status (2)

Country Link
US (1) US11258616B2 (ko)
KR (1) KR20210141188A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102071402B1 (ko) 2016-11-01 2020-03-03 한국전자통신연구원 사물인터넷 환경 키 관리 서비스 제공 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150088787A (ko) * 2012-11-05 2015-08-03 엘지전자 주식회사 무선 통신 시스템에서 특정 리소스에 대한 정보 갱신을 위한 방법 및 장치
KR102145741B1 (ko) * 2013-01-18 2020-08-19 엘지전자 주식회사 무선 통신 시스템에서 접근 제어를 위한 방법 및 장치
CN105282122B (zh) * 2014-07-22 2019-07-12 中兴通讯股份有限公司 基于数字证书的信息安全实现方法及系统
US10437977B2 (en) * 2015-10-13 2019-10-08 Etas Embedded Systems Canada Inc. System and method for digital key sharing for access control
US10819701B2 (en) * 2018-03-14 2020-10-27 Microsoft Technology Licensing, Llc Autonomous secrets management for a managed service identity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102071402B1 (ko) 2016-11-01 2020-03-03 한국전자통신연구원 사물인터넷 환경 키 관리 서비스 제공 장치

Also Published As

Publication number Publication date
US20210359866A1 (en) 2021-11-18
US11258616B2 (en) 2022-02-22

Similar Documents

Publication Publication Date Title
CN113656806B (zh) 区块链一体机的可信启动方法及装置
JP7104248B2 (ja) 暗号化された資産暗号化鍵パーツのサブセットを使用して資産暗号化鍵のアセンブリを可能にする暗号化された資産暗号化鍵パーツ
CN111541727B (zh) 区块链一体机及其自动建链方法、装置
CN102945355B (zh) 基于扇区映射的快速数据加密策略遵从
EP3066610B1 (en) Data protection in a storage system using external secrets
CN108768633B (zh) 实现区块链中信息共享的方法及装置
CN111541553B (zh) 区块链一体机的可信启动方法及装置
CN111541724B (zh) 区块链一体机及其节点自动加入方法、装置
CN102855452B (zh) 基于加密组块的快速数据加密策略遵从
US20100153749A1 (en) Device-access control program, device-access control process, and information processing apparatus for controlling access to device
CN111541552B (zh) 区块链一体机及其节点自动加入方法、装置
EP3809629B1 (en) Authorization method and device for joint account, and authentication method and device for joint account
JP2011517205A (ja) ディスクドライブデータの暗号化
CN104380652A (zh) 用于nfc使能设备的多发行商安全元件分区架构
JP2016531508A (ja) データセキュアストレージ
KR101580514B1 (ko) 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체
KR20190106551A (ko) 블록체인 기반의 접근 제어 장치 및 그 동작 방법
CN113485785A (zh) 一种虚拟化可信平台模块实现方法、安全处理器及存储介质
KR102622665B1 (ko) 블록체인 기반의 데이터 관리 방법 및 장치
CN103530169A (zh) 虚拟机文件保护方法和用户终端
TWI789291B (zh) 用於認證在儲存裝置和主機裝置之間的資料傳輸之模組和方法
US11258616B2 (en) Decentralized key management system and method
EP3357188B1 (en) Code signing service
CN117157623A (zh) 结合容器化应用程序使用时保护秘密的系统和方法
CN113987475A (zh) 分布式资源管理系统及方法、凭证信息的管理系统、介质

Legal Events

Date Code Title Description
A201 Request for examination