KR20230078706A - 포스트 양자 암호화를 사용하는 인증서 기반 보안 - Google Patents

포스트 양자 암호화를 사용하는 인증서 기반 보안 Download PDF

Info

Publication number
KR20230078706A
KR20230078706A KR1020237012927A KR20237012927A KR20230078706A KR 20230078706 A KR20230078706 A KR 20230078706A KR 1020237012927 A KR1020237012927 A KR 1020237012927A KR 20237012927 A KR20237012927 A KR 20237012927A KR 20230078706 A KR20230078706 A KR 20230078706A
Authority
KR
South Korea
Prior art keywords
certificate
message
server
client
private key
Prior art date
Application number
KR1020237012927A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20230078706A publication Critical patent/KR20230078706A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 chains, trees or paths; Hierarchical trust model
    • 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]

Abstract

서버 인증서 메시지를 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하고, 상기 제1 인증서 및 상기 제2 인증서는 서로 바인딩됨(the first certificate and second certificate bound to each other)-, 제1 개인 키를 사용하여 클라이언트-서버 통신과 관련된 제1 메시지에 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -, 제2 개인 키를 사용하여 상기 클라이언트-서버 통신과 관련된 제2 메시지에 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되고, 상기 제2 메시지는 상기 서명된 제1 메시지를 포함함 -, 그리고 서버 인증서 확인 메시지(a server certificate verify message)를 전송하는 단계 - 상기 서버 인증서 확인 메시지는 상기 서명된 제1 메시지와 상기 서명된 제2 메시지를 포함함 -에 의한 보안 통신들을 설정하는 단계가 제공된다.

Description

포스트 양자 암호화를 사용하는 인증서 기반 보안
[0001] 본 발명은 일반적으로 보안 네트워크 통신(secure network communication)을 설정하는 것에 관한 것이다. 본 발명은 특히 다수의 인증서들 및 암호화 알고리즘의 조합을 이용하는 통신 핸드셰이크들(communications handshakes)에 관한 것이다.
[0002] 대규모 양자 컴퓨팅 시스템들의 출현은 Shor의 알고리즘(Shor’s algorithm) 및 그러한 양자 디바이스들의 사용이 RSA(Rivest-Shamir-Adleman), ECC(타원 곡선 암호화) 또는 이와 유사한 기술들과 같은 전통적인 암호화 알고리즘을 손상시킬 가능성을 높인다. 또한, 기존의 암호화 알고리즘들을 손상시키는 그러한 수단이 현재는 이용가능 하지 않지만, 현재 암호화된 통신 및 데이터 저장 시스템의 보안은 일단 그러한 시스템이 이용 가능하게 되면 위험에 처하게 될 것이다. 일단 기존 암호화 방법이 더 이상 충분하지 않게 되었을 때, 필요한 것은 현재와 미래에 통신과 데이터를 보호할 보안 프로토콜이다. 레거시 통신 및 데이터 스토리지 프로토콜은 현재 프로토콜을 방해하지 않고 이러한 추가 보호를 제공하도록 향상되어야 한다.
[0003] 다음은 본 발명의 하나 또는 그 이상의 실시예들의 기본적인 이해를 제공하기 위한 요약을 제공한다. 이 요약은 중요하거나 결정적인 엘리멘트들을 식별하거나 특정 실시예들의 범위 또는 청구항들의 범위를 설명하기 위한 것이 아니다. 그것의 유일한 목적은 나중에 제공되는 보다 상세한 설명에 대한 개요로서 단순화된 형태로 개념들을 제공하는 것이다. 여기에 설명된 하나 또는 이상의 실시예들에서, 디바이스들, 시스템들, 컴퓨터 구현 방법들, 장치들 및/또는 컴퓨터 프로그램 제품들은 인증서들을 사용하여 보안 네트워크 통신 채널들의 설정을 가능하게 한다.
[0004] 본 발명의 실시예들은 보안 통신들을 설정하는 단계(establishing secure communications)와 관련된 방법들, 시스템들 및 컴퓨터 판독 가능 매체를 개시하며, 상기 보안 통신들을 설정하는 단계는 서버 인증서 메시지를 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하고, 상기 제1 인증서 및 상기 제2 인증서는 서로 바인딩됨(the first certificate and second certificate bound to each other)-, 제1 개인 키를 사용하여 클라이언트-서버 통신과 관련된 제1 메시지에 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -, 제2 개인 키를 사용하여 상기 클라이언트-서버 통신과 관련된 제2 메시지에 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되고, 상기 제2 메시지는 상기 서명된 제1 메시지를 포함함 -, 그리고 서버 인증서 확인 메시지(a server certificate verify message)를 전송하는 단계 - 상기 서버 인증서 확인 메시지는 상기 서명된 제1 메시지와 상기 서명된 제2 메시지를 포함함 -에 의해 수행된다.
[0005] 첨부된 도면들에서 본 발명의 일부 실시예에 대한 보다 상세한 설명을 통해, 본 발명의 상기 및 다른 목적들, 특징들 및 이점들이 보다 명백 해질 것이며, 여기서 동일한 참조는 일반적으로는 본 발명의 실시예들에서 동일한 컴포넌트를 지칭한다.
[0006] 도 1은 본 발명의 실시예에 따른 컴퓨팅 환경의 개략도를 제공한다.
[0007] 도 2는 본 발명의 일 실시예에 따른 작동 시퀀스를 나타내는 플로차트를 제공한다.
[0008] 도 3은 본 발명의 실시예에 따른 클라이언트-서버 핸드쉐이크 시퀀스를 개략적으로 도시한 도면이다.
[0009] 도 4는 본 발명의 실시예에 따른 클라우드 컴퓨팅 환경을 도시한다.
[0010] 도 5는 본 발명의 실시예에 따른 추상화 모델 계층을 도시한다.
[0011] 일부 실시 예들은, 본 발명의 실시 예들이 예시된, 첨부 도면들을 참조하여 보다 상세하게 설명될 것이다. 그러나 본 발명은 여러 가지 다양한 형태들로 구현될 수 있으므로 여기에서 설명하는 실시예들에 한정되지 않는다.
[0012] 일 실시예에서, 시스템의 하나 또는 그 이상의 컴포넌트들은 하드웨어 및/또는 소프트웨어를 채용하여 본질적으로 매우 기술적인 문제들(예를 들어, 통신 프로토콜 메시지들의 송수신, 주체 ID들의 검증, 디지털 인증서들의 검증, 디지털 서명의 검증 등)을 해결할 수 있다. 이들 해결책들은 추상적이지 않으며 예를 들어 안전한 클라이언트-서버 통신 링크들을 설정하는 것을 용이하게 하는 데 필요한 처리 능력들로 인해 인간의 일련의 정신적 행위로서(as a set of mental acts by a human) 수행될 수 없다. 또한 수행되는 프로세스들 중 일부는 통신 보안과 관련된 정의된 작업들을 수행하기 위해 특수 컴퓨터에 의해 수행될 수 있다. 예를 들어, 통신 보안 핸드셰이크 프로토콜들(communications security handshake protocols) 등과 관련된 작업들을 수행하기 위해 특수 컴퓨터가 채용될 수 있다.
[0013] 본 발명의 실시예들은 보안 통신들을 설정하는 단계(establishing secure communications)와 관련된 방법, 시스템 및 컴퓨터 판독 가능 매체를 개시하며, 상기 보안 통신들을 설정하는 단계는 클라이언트 디바이스로부터 클라이언트 헬로 메시지를 수신하는 단계, 서버 헬로 메시지를 전송하는 단계, 서버 인증서 메시지를 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하고, 상기 제1 인증서 및 상기 제2 인증서는 서로 바인딩됨(the first certificate and second certificate bound to each other)-, 제1 개인 키를 사용하여 클라이언트-서버 통신과 관련된 제1 메시지에 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -, 제2 개인 키를 사용하여 상기 클라이언트-서버 통신과 관련된 제2 메시지에 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되고, 상기 제2 메시지는 상기 서명된 제1 메시지를 포함함 -, 서버 인증서 확인 메시지(a server certificate verify message)를 전송하는 단계 - 상기 서버 인증서 확인 메시지는 상기 서명된 제1 메시지와 상기 서명된 제2 메시지를 포함함 -, 상기 서버 헬로 메시지에 응답하여 클라이언트 인증서 메시지를, 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 수신하는 단계 - 상기 클라이언트 인증서 확인 메시지는 상기 제1 암호화 알고리즘과 관련된 제3 인증서 및 상기 제2 암호화 알고리즘과 관련된 제4 인증서를 포함하고, 상기 제3 인증서 및 상기 제4 인증서는 서로 바인딩됨 -, 클라이언트 인증서 확인 메시지를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 수신하는 단계 - 상기 클라이언트 인증서 확인 메시지는, 상기 제3 인증서와 관련된, 제3 개인 키를 사용하여 서명된 클라이언트-서버 통신과 관련된 제3 메시지 및, 상기 제4 인증서와 관련된, 제4 개인 키를 사용하여 서명된 클라이언트-서버 통신과 관련된 제4 메시지를 포함하고, 상기 제4 메시지는 상기 제3 메시지를 포함함 -, 및 상기 클라이언트 디바이스로부터 클라이언트 완료 메시지(a client finished message)를 수신하는 단계, 및 상기 클라이언트 완료 메시지를 수신하는 것에 응답하여 서버 완료 메시지를 전송하는 단계에 의해서 수행된다.
[0014] 개시된 실시예들은 전통적인 암호화(Traditional Cryptographic: TC) 방법들에 기반한 인증서와 격자 또는 포스트 양자 암호화(Post Quantum Cryptographic: PQC) 방법들에 기반한 인증서 두 개를 연결하는 이점들을 제공하며, 이렇게 함으로서 PQC 방법들 및 TC 방법들 모두가 악의적인 행위자에 의해 깨어지지 않는 한 2개의 인증서들을 통해 확립된 보안 통신 링크들을 보장할 수 있다.
[0015] RSA 또는 ECC를 기반으로 하는 전통적인 암호화 방법들(TC)은 대규모 양자 컴퓨터의 사용에 의해 깨어질 취약성이 있다. RSA와 ECC는 함께 곱해져서 결과를 내는 큰 소수들(large prime numbers)의 사용에 기초한다. Shor의 알고리즘(Shor’s algorithm)을 사용하여, 대규모 양자 컴퓨터는, RSA 또는 ECC와 같은, 인수들의 사용(the use of factors)에 기초하여 암호화 알고리즘을 쉽게 무력화(defeat)할 수 있다.
[0016] 컴퓨팅 주체들(computing entities) 간의 인터넷 통신들은 상기 주체들 간의 초기 "핸드셰이크(handshake)"를 포함한다. 상기 주체들의 초기의, 암호화되지 않은 통신들은 주체들을 서로에게 소개하는 핸드셰이크 과정에서 발생한다. 핸드셰이크를 통해 주체들은 주체들 간의 후속 통신들의 속성들(the attributes of the ensuing communications)을 설정하는 데 필요한 암호화되지 않은 정보를 교환한다. 상기 속성들은, 공개 키를 포함하여 주체들이 서로의 신원을 확인하는 데 필요한 정보뿐만 아니라, 데이터를 암호화 및 해독하는 데 사용되는 암호화 프로토콜을 설정하는 데 필요한 정보의 교환을 포함한다.
[0017] 전송 수준 보안(a transport level security: TLS) 핸드셰이크와 같은, 일반적인 통신 핸드셰이크들은, x.509 인증서와 같은, 공개 키 인증서들에 의존하며, 이들은 RSA, ECC 또는 유사한 전통적인 인수-기반 암호화 공개 키 하부구조(a similar traditional factor-based encryption public key infrastructure)에 기초한 보안 디지털 서명에 의해 검증된다. 악의적인 행위자는 핸드셰이크 통신에 액세스할 수 있으며 당사자들 중 하나의 TC를 부수고 그 다음 위조된 개인 키(a falsified private key)를 사용하여 그 당사자를 가장할 수 있다(impersonate).
[0018] 격자-기반 암호화 알고리즘들은 격자 또는 어레이-기반 수학을 사용하여 생성된 공개-개인 키 쌍들(public-private key pairs)을 사용한다. 그러한 알고리즘들은 양자 컴퓨터의 사용을 통해 깨어질 가능성이 없는 것으로 생각된다. 그러한 알고리즘들은 포스트-양자 암호화(Post-Quantum Cryptographic: PQC) 알고리즘으로 간주된다.
[0019] 레거시 TLS 프로토콜들은 TC 사용에 기초하여 하므로 단순히 TC를 PQC로 교체하면 글로벌 인터넷 통신에 역 호환성 문제들(backwards compatibility issues)을 발생시킬 수 있다. 양자 컴퓨터의 사용을 통해 깨지기 쉽지 않으면서 이전 버전과 호환되는 통신 연결 프로토콜이 필요하다. 공개된 방법은 서로 암호적으로 결합된 2개의 인증서들, 즉 TC, 인수-기반 인증서 및 PQC, 격자-기반 인증서를 사용하여 이를 방지한다. 두 인증서들 각각은 주체들이 신뢰하는 인증 기관(CA)에 의해서 발행된다. 악의적인 행위자는 양자 컴퓨터로 격자-기반 암호화를 깨뜨릴 수 없다. PQC 인증서에 암호적으로 결합된 TC 인증서의 조합에 기초한 하이브리드 핸드셰이크 프로토콜은 포스트-양자 세계에서 네트워크된 주체들 간의 통신 연결들을 설정할 수 있다.
[0020] TLS 용어들에서, 서버의 인증서 및 인증서 확인 메시지들 각각은 두 세트의 인증서 체인들과 두 세트의 확인 데이터를, 각각, 포함한다. 상기 메시지들은 두 개의 메시지들로 구조화되고, 각각은 처리를 단순화하고 현재 TLS 메시지 처리 논리를 사용할 수 있도록 한다. 개시된 실시예들은 TC 검증 데이터가 검증될 수 있기 전에 PQC 검증 데이터가 검증될 것을 요구함으로써 보안 통신을 가능하게 한다. TC가 공격을 받을 수 있기 전에 PQC가 깨어져야 한다. 악의적인 행위자는 통신 링크를 성공적으로 공격하기 위해 PQC와 TC를 모두 깨뜨려야 한다.
[0021] TLS 핸드셰이크는 클라이언트 디바이스가 클라이언트 헬로 메시지를 서버에 전송하는 단계로 시작한다. 상기 핸드쉐이크는 서버가 서버 헬로 메시지를 전송함으로써 클라이언트 헬로 메시지에 응답하는 단계로 진행한다. 상기 헬로 메시지의 교환에는 사용될 암호화 프로토콜의 협상과 암호화된 데이터의 후속 교환들에 사용될 클라이언트 및 서버 생성 난수들의 교환(the exchange of client and server generated random numbers)이 포함된다. 예를 들어, 클라이언트 헬로 메시지는 클라이언트에 의해 사용되는 TLS 버전, 사용할 압축 방법들, 통신을 위해 클라이언트에 의해 지원되는 암호화 스위트 옵션들(cipher suite options), 및 암호화된 데이터 교환들에 사용될 임의 문자열(a random character string)을 포함한다. 클라이언트 헬로 메시지는 상기 헬로 메시지들에 뒤따르는 TLS 핸드셰이크 데이터를 암호화하기 위한 암호화 확장(an encryption extension)과 같은 하나 또는 그 이상의 확장들을 포함할 수 있다. 서버 헬로 메시지는 상기 제공된 옵션들에서 서버가 선택한 암호 스위트들(the servers’ choice of cipher suites)과 통신들을 암호화 하는데에 사용할 다른 난수를 포함할 수 있다.
[0022] 그런 다음, 서버는 클라이언트로 TLS 인증서 메시지를 전송한다. 상기 TLS 인증서 메시지는 상기 메시지에 임베드된 두 개의 인증서 체인들을 포함하며, 하나는 TC 기반 인증서이고 다른 하나는 PQC 기반 인증서이다. 상기 두 개의 인증서 체인들 각각은, 하나 또는 그 이상의 중간 인증서들을 포함하는, 서버의 최종 주체 인증서(an end-entity certificate of the server)로 시작하여 루트 인증서(a root certificate)로 끝나는, 일련의 인증서들을 포함할 수 있다. 루트 인증서는 주체들이 신뢰하는 인증 기관에 의해서 발행되고 서명된다. 일 실시예에서, 인증서 체인들 각각은 단일 인증서를 포함한다.
[0023] 서버 인증서 메시지를 수신하면, 클라이언트 디바이스는 두 개의 인증서 체인들을 디코딩하고 각 인증서 체인을 독립적으로 검증한다. 클라이언트는 두 인증서 체인들 각각의 각 인증서가 만료되었는지 또는 취소되었는지를, 인증서의 도메인 이름이 서버의 도메인과 일치하는지를, 각 체인의 각 인증서의 디지털 서명이 유효한지를, 그리고 각 체인의 루트 인증서가 클라이언트가 신뢰하는 CA에 의해서 발행되었는지를 확인한다.
[0024] 일 실시예에서, 클라이언트는 CA의 공개 키를 사용하여 서버의 최종 주체 인증서의 서명을 검증한다. 일 실시예에서, 클라이언트는 최종 주체 인증서의 서명을 검증하기 위해 중간 인증서로부터의 공개 키를 사용하고 루트 인증서 서명 및 중간 인증서 서명을 검증하기 위해 CA 루트 인증서의 공개 키를 사용한다.
[0025] TC 인증서 체인의 경우, 공개 키들과 디지털 서명들은 TC 공개-개인 키 쌍에 기초한다. PQC 인증서 체인의 경우, 서명들 및 공개 키들은 PQC 알고리즘을 사용하여 파생된 공개-개인 키 쌍에 기초한다.
[0026] PQC 알고리즘들은 격자-기반 암호화 방법을 포함하고, 이들은 CRYSTALS-DILITHIUM, FALCON, RAINBOW, CLASSIC McELIECE, CRYSTALS-KYBER, NTRU, SABER 및 기타 격자-기반 알고리즘들을 포함한다. (참고: "CRYSTALS-DILITHIUM", "FALCON", "RAINBOW", "CLASSIC McELIECE ", "CRYSTALS-KYBER", "NTRU" 및 "SABER" 라는 용어(들)은 세계의 다양한 관할권에서 상표권의 적용을 받을 수 있고, 해당 상표권이 존재할 수 있는 범위 내에서 상기 상표들에 의해 적절하게 표시된 제품들 또는 서비스들와 관련하여 여기에서는 참조로만 사용된다.)
[0027] 일 실시예에서, 서버는 클라이언트에 대한 인증서 확인 메시지(a certificate verify message)를 구성한다. 인증서 확인 메시지는 서버가 PQC 및 TC 인증서들과 각각 관련된 PQC 및 TC 개인 키들을 소유하고 있음을 증명하는 역할을 한다. 인증서 확인 메시지는 두 개의 메시지들을 포함한다. 제1 메시지는, 서버의 개인 PQC 키를 사용하여 서명된, 지금까지 클라이언트와 서버 간에 교환된 메시지들의 현재 사본(the current transcript)을 포함한다. 제2 메시지는 제1 메시지와 함께 서버에 의해 추가된 교환된 메시지들의 현재 사본을 포함하고, 추가된 사본은 서버의 TC 개인 키를 사용하여 서명되어, 전통적인 서버 인증서 확인 메시지를 생성한다. 서버는 제1 및 제2 인증서 확인 메시지들을 조합하여 그 조합을 단일 인증서 확인 메시지로 클라이언트에 전송한다.
[0028] 클라이언트는 조합된 인증서 확인 메시지들을 수신하고 두 메시지들을 분리한다. 클라이언트는 서버의 PQC 인증서를 검증하는 프로세스에서 현재 메시징 사본과 서버의 공개 PQC 키를 소유한다. 클라이언트는 현재 메시징 사본 및 서버의 PQC 공개 키를 사용하여 서버 인증서 확인 메시지의 PQC 인증서 확인 부분의 PQC 디지털 서명을 확인한다. 클라이언트는 조합된 서버 인증서 확인 메시지의 PQC 부분에 제공된 서명된 제1 메시지 내용들을 포함하는 메시지 사본을 사용하여 조합된 서버 인증서 메시지의 TC 부분의 TC 서명을 확인한다. 클라이언트는 서버의 TC 인증서를 검증하는 프로세스 동안 획득된, 추가된 메시징 사본 및 서버의 공개 TC 키를 사용한다.
[0029] 일 실시예에서, 상기 방법은 TC 및 PQC 인증서들을 추가로 바인딩한다(bind). 상기 방법은 동일 주제 이름(the same subject name), 발행자 이름(the issuer name) 및 주제 대체 이름(the subject alternative name)을 갖는 PQC 및 TC 인증서를 생성한다. 상기 방법은 일련 번호, 공개 키들 및 두 인증서들의 서명들을 제외하고 TC의 제약 조건들을 PQC의 제약 조건들과 동일하게 설정한다. 이 실시예에서, 상기 방법은 PQC 인증서 데이터의 해시(SHA1, SHA256, 또는 다른 해시 함수)와 동일한 TC의 확장 또는 일련 번호를 설정한다. 해시 함수의 출력으로 설정된 바인딩 값은 대규모 양자 컴퓨터 또는 전통적인 비 양자 컴퓨터를 사용하여 깨질 수 없다. 이 실시예에서, 클라이언트는 사용될 때 TC 일련 번호 또는 확장이 PQC 인증서 데이터의 해시를 포함하고 모든 다른 TC 및 PQC 인증서 데이터 속성이 일치하는지를 검증한다.
[0030] 일 실시예에서, 서버로부터 클라이언트로 전송된 인증서 요청 메시지에 의해 표시되는 바와 같이 상호 주체 검증(mutual entity verification)이 요구된다. 인증서 요청 메시지에 응답하여, 클라이언트는 클라이언트 TC 및 PQC 인증서를 각각 포함하는 인증서 메시지를 전송한다. 그런 다음, 클라이언트는 조합된 인증서 확인 메시지를 생성하고 전송한다. 이 것은 클라이언트의 PQC 개인 키로 현재 메시지 사본에 서명함으로써 제1 인증서 확인 메시지를 생성하는 단계, 그 다음 제1 인증서 확인 메시지를 현재 메시징 사본에 추가하는 단계 및 클라이언트의 TC 개인 키를 사용하여 추가된 사본에 서명하는 단계를 포함한다.
[0031] 일 실시예에서, 클라이언트 및 서버 헬로 메시지들의 교환은 클라이언트가 PQC 인증서 사용에 대한 지원을 제공하지 않기 때문에 PQC 인증서 사용을 초래하지 않는다. 이 실시예에서, 상기 방법은 메시지들의 TC 인증서 및 TC 인증서 확인 부분들만을 전달한다. 이 실시예에서, 상기 방법은 모든 네트워크 주체들이 PQC 기반 프로토콜의 사용으로 전환되지 않은 모든 시간 프레임 동안 역 호환성(backward compatibility)을 제공한다.
[0032] 도 1 은 개시된 발명들을 실행하는 것과 관련된 예시적인 네트워크 자원들의 개략도를 제공한다. 본 발명은 명령 스트림을 처리하는 개시된 엘리멘트들 중 어느 하나의 프로세서들에서 실시될 수 있다. 도면에 도시된 바와 같이, 네트워크화된 클라이언트 디바이스(110)는 서버 서브시스템(102)에 무선으로 연결된다. 클라이언트 디바이스(104)는 네트워크(114)를 통해 서버 서브시스템(102)에 무선으로 연결된다. 클라이언트 디바이스들(104 및 110)은 통신 보안 프로그램(미도시)과 그 프로그램을 실행하기에 충분한 컴퓨팅 자원(프로세서, 메모리, 네트워크 통신 하드웨어)를 함께 포함한다. 클라이언트 디바이스들(104, 110)과 서버 서브시스템(102) 사이의 통신 핸드셰이크들은 검증된 주체들 사이의 보안 통신뿐만 아니라 암호화된 데이터의 교환을 가능하게 하는 개시된 실시예의 사용을 포함할 수 있다. 도 1에 도시된 바와 같이, 서버 서브시스템(102)은 서버 컴퓨터(150)를 포함한다. 도 1은 본 발명의 실시예에 따른 네트워크 컴퓨터 시스템(1000) 내의 서버 컴퓨터(150)의 컴포넌트들의 블록도를 도시한다. 도 1은 하나의 구현에 대한 설명만을 제공하며 다른 실시예가 구현될 수 있는 환경에 대한 어떠한 제한도 의미하지 않음을 이해해야 한다. 묘사된 환경에 대한 많은 수들이 이루어질 수 있다.
[0033] 서버 컴퓨터(150)은 프로세서(들)(154), 메모리(158), 영구 스토리지(persistent storage)(170), 통신 유닛(152), 입력/출력(I/O) 인터페이스(들)(156) 및 통신 패브릭(communications fabric)(140)을 포함한다. 통신 패브릭(140)은 캐시(162), 메모리(158), 영구 스토리지(170), 통신 유닛(152) 및 입/출력(I/O) 인터페이스(들)(156) 간의 통신을 제공한다. 통신 패브릭(140)은 (마이크로프로세서, 통신 및 네트워크 프로세서 등과 같은) 프로세서들, 시스템 메모리, 주변 장치들 및 시스템 내의 기타 하드웨어 컴포넌트들 사이에서 데이터 및/또는 제어 정보를 전달하도록 설계된 모든 아키텍처로 구현될 수 있다. 예를 들어, 통신 패브릭(140)은 하나 또는 그 이상의 버스들로 구현될 수 있다.
[0034] 메모리(158) 및 영구 스토리지(170)는 컴퓨터 판독 가능한 저장 매체이다. 본 실시예에서, 메모리(158)는 랜덤 액세스 메모리(RAM)(160)를 포함한다. 일반적으로, 메모리(158)는 모든 적합한 휘발성 또는 비휘발성 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 캐시(162)는 메모리(158)로부터 최근에 액세스된 데이터 및 최근에 액세스된 데이터 근처의 데이터를 보유함으로써 프로세서(들)(154)의 성능을 향상시키는 고속 메모리이다.
[0035] 예를 들어, 통신 보안 프로그램(175)와 같은, 본 발명의 실시예를 실행하기 위해 사용되는 프로그램 명령들 및 데이터는 캐시(162)를 통해 서버 컴퓨터(152)의 각각의 프로세서(들)(154) 중 하나 또는 그 이상에 의한 실행을 위해 영구 스토리지(170)에 저장된다. 이 실시예에서, 영구 스토리지(170)는 자기 하드 디스크 드라이브를 포함한다. 대안적으로, 또는 자기 하드 디스크 드라이브에 추가하여, 영구 스토리지(170)는 솔리드 스테이트 하드 드라이브(solid state hard drive), 반도체 스토리지, 읽기 전용 메모리(ROM), 소거 및 프로그램 가능 읽기 전용 메모리(EPROM), 플래시 메모리, 또는 프로그램 명령들 또는 디지털 정보를 저장할 수 있는 다른 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다.
[0036] 영구 스토리지(170)에 의해서 사용되는 매체(media)도 또한 착탈식일 수 있다. 예를 들어, 영구 스토리지(170)로 착탈식 하드 드라이브(removable hard drive)가 사용될 수 있다. 다른 예로는 광학 및 자기 디스크, 썸 드라이브(thumb drives), 및 영구 스토리지(170)의 일부이기도 한 다른 컴퓨터 판독 가능한 저장 매체로 전송하기 위해 드라이브에 삽입되는 스마트 카드(smart cards)가 있다.
[0037] 통신 유닛(152)은, 이들 예시들에서, 클라이언트 컴퓨팅 디바이스들(104, 110)의 자원들을 포함하는, 다른 데이터 처리 시스템들 또는 디바이스들과의 통신을 제공한다. 이들 예시들에서, 통신 유닛(152)은 하나 또는 그 이상의 네트워크 인터페이스 카드들을 포함한다. 통신 유닛(152)은 물리적 및 무선 통신 링크들 중 하나 또는 둘 다의 사용을 통해 통신을 제공할 수 있다. 본 발명의 구현을 위해 사용되는 소프트웨어 분산 프로그램들, 및 기타 프로그램들 및 데이터는 통신 유닛(152)을 통해 서버 컴푸터(150)의 영구 스토리지(170)에 다운로드될 수 있다.
[0038] I/O 인터페이스(들)(156)는 서버 컴퓨터(150)에 연결될 수 있는 다른 디바이스들과의 데이터 입력 및 출력을 허용한다. 예를 들어, I/O 인터페이스(들)(156)는 키보드, 키패드, 터치 스크린 및/또는 기타 적합한 입력 디바이스와 같은 외부 디바이스(들)(190)에 대한 연결을 제공할 수 있다. 외부 디바이스(들)(190)는 또한 예를 들어 썸 드라이브(thumb drives), 휴대용 광학 또는 자기 디스크, 및 메모리 카드와 같은 휴대용 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 본 발명의 실시예들을 실행하기 위해 사용되는 소프트웨어 및 데이터는 그러한 휴대용 컴퓨터 판독 가능한 저장 매체에 저장될 수 있으며, I/O 인터페이스(들)(156)를 통해 영구 스토리지(170)에 로딩(loading) 될 수 있다. I/O 인터페이스(들)(156) 또한 디스플레이(180)에 연결된다.
[0039] 디스플레이(180)는 사용자에게 데이터를 표시하는 메커니즘을 제공하며, 예를 들어, 컴퓨터 모니터일 수 있다. 디스플레이(180)는 또한 태블릿 컴퓨터의 디스플레이와 같은 터치 스크린으로서 기능할 수 있다.
[0040] 도 2는 본 발명의 실시와 관련된 예시적인 동작들을 예시하는 플로차트(200)를 제공한다. 프로그램 시작 후, 블록(210)에서, 서버의 통신 보안 프로그램(175)은 지원되는 TLS 프로토콜들, 암호화 스위트 옵션들(cipher suite options) 및 클라이언트 생성 난수(client generated random number)에 관한 클라이언트 정보를 포함하는 클라이언트 헬로 메시지를 수신한다.
[0041] 블록(220)에서, 서버는 서버 생성 난수를 포함하고 제공되는 옵션들로부터 암호화 스위트의 서버 선택을 나타내는 서버 헬로우 메시지를 전송한다.
[0042] 블록(230)에서, 서버는 서버 인증서 메시지(a server certificate message)를 전송한다. 서버 인증서 메시지는 두 개의 인증서들 또는 인증서 체인들을 포함한다. 상기 인증서들 또는 인증서 체인들은 PQC 알고리즘으로부터의 제1 서버 개인 키(a first server private key)와 관련된 제1 디지털 서명을 사용하여 서명된 제1 인증서 또는 인증서 체인과, TC 암호화 알고리즘으로부터의 제2 서버 개인 키와 관련된 제2 디지털 서명을 사용하여 서명된 제2 인증서 또는 인증서 체인을 포함한다.
[0043] 블록(240)에서, 서버의 통신 보안 프로그램(175)은 제1 서버 PQC 개인 키를 사용하여 제1 메시지에 서명하고, 상기 메시지는 클라이언트-서버 메시징의 사본(the transcript of the client-server messaging)을 포함한다.
[0044] 블록(250)에서, 서버의 통신 보안 프로그램(175)은 제2 서버 TC 개인 키로 제2 메시지에 서명한다. 상기 제2 메시지는 상기 제1 메시지를 포함하기 위해 추가된 현재 클라이언트-서버 메시징 사본을 포함한다.
[0045] 블록(260)에서, 서버의 통신 보안 프로그램(175)은 제1 및 제2 메시지들을 단일 서버 인증서 확인 메시지(a single server certificate verify message)로 조합하고(combine) 조합된 메시지들을 클라이언트에 전송한다.
[0046] 블록(270)에서, 통신 보안 프로그램(175)은 클라이언트로부터 클라이언트 완료 메시지(a client finished message)를 수신한다. 클라이언트 완료 메시지는, 합의된 암호화 알고리즘(an agreed upon encryption algorithm)을 사용하여 암호화된, 모든 이전 클라이언트-서버 메시징의 암호화 해시(a cryptographic hash of all previous client-server messaging)를 포함한다.
[0047] 블록(280)에서, 통신 보안 프로그램(175)은 상기 핸드셰이크 프로토콜로부터의 모든 이전 클라이언트-서버 메시징 트래픽의 암호화 해시를 포함하는 서버 완료 메시지를 전송한다.
[0048] 상기 TLS 핸드셰이크 프로토콜은 데이터의 암호화/복호화 및 기타 목적들을 위한 암호화 키를 생성하는 데 필요한 정보 교환과 관련된 클라이언트와 서버 간의 추가 메시지들을 포함할 수 있음이 이해된다.
[0049] 도 3의 개략도(300)는, 본 발명의 실시예에 따른, 클라이언트(310)와 서버(320) 사이의 메시징 트래픽을 도시한다. 도면에 도시된 바와 같이, 클라이언트(310)는 클라이언트 헬로 메시지(315)를 서버(320)로 전송한다. 서버(320)는 서버 헬로 메시지(325), 서버 인증서 메시지(330) 및 서버 인증서 확인 메시지(340)를 전송함으로써 응답한다. 서버 인증서 메시지(330) 및 서버 인증서 확인 메시지(340) 각각은 두 개의 별도의 메시지들(two separate messages)을 포함한다. 서버 인증서 메시지(330)는 서버 PQC 인증서 메시지(332) 및 서버 TC 인증서 메시지(334)를 포함한다. 서버 인증서 확인 메시지(340)는 서버 PQC 개인 키로 서명되고 메시징 사본(the messaging transcript)을 포함하는 제1 메시지(342) 및 제2 메시지(344)를 포함하고, 한편 제2 메시지(344)는 제1 메시지로 추가되고 서버 TC 개인 키를 사용하여 서명된 메시징 사본을 포함한다.
[0050] 도 3은 클라이언트 인증서 메시지(360) 및 클라이언트 인증서 확인 메시지(370)를 포함하는 상호 검증(mutual verification)과 관련된 메시지를 포함한다. 유사하게, 서버에 대해서는, 클라이언트 인증서 메시지(360)가 클라이언트 PQC 인증서 메시지(362) 및 클라이언트 TC 인증서 메시지(364)의 2개의 메시지들을 포함한다. 클라이언트 인증서 확인 메시지(370)는 또한 2개의 메시지들을 포함하는데, 하나의 메시지(372)는 메시징 사본을 포함하고 클라이언트의 PQC 개인 키를 사용하여 서명되며, 다른 하나의 메시지(374)는 클라이언트 PQC 개인 키를 사용하여 서명된 메시지 - 이 메시지는 클라이언트의 TC 개인 키를 사용하여 서명된다 -를 포함하기 위해 추가되는 메시징 사본을 포함한다. 항목(380)은 일반적으로 클라이언트 완료 및 서버 완료 메시지들을 포함하는 클라이언트와 서버 사이의 통신 핸드셰이크와 관련된 추가 클라이언트-서버 메시징 트래픽을 예시한다.
[0051] 본 발명은 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 기술적 사상들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해하여야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0052] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[0053] 특성들은 다음과 같다:
[0054] 주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 용량들을 일방적으로 제공(provision)할 수 있다.
[0055] 광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
[0056] 자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하는, 멀티-테넌트 모델(a multi-tenant model)을 사용하는 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
[0057] 기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
[0058] 측정 가능한 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터 되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0059] 서비스 모델들(Service Models)은 다음과 같다:
[0060] 소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 하부구조 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 디바이스들에서 액세스 가능하다. 소비자는 네트워크, 서버들, 운영 체제들, 스토리지, 또는 개별 애플리케이션 능력들을 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특정 애플리케이션 구성 세팅들은 예외로서 가능하다.
[0061] 플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 하부구조에 배치하게 해주는 것이다. 소비자는 네트워크, 서버들, 운영 체제들, 또는 스토리지를 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
[0062] 하부구조 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 하부구조를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[0063] 배치 모델들(Deployment Models)은 다음과 같다:
[0064] 사설 클라우드(Private cloud): 클라우드 하부구조는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
[0065] 커뮤니티 클라우드(Community cloud): 클라우드 하부구조는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
[0066] 공공 클라우드(Public cloud): 클라우드 하부구조는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
[0067] 하이브리드 클라우드(Hybrid cloud): 클라우드 하부구조는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다
[0068] 클라우드 컴퓨팅 환경은 상태비보존(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 하부구조가 있다
[0069] 이제 도 4를 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 통신할 수 있는 것과 같이, 클라우드 소비자가 사용하는 로컬 컴퓨팅 디바이스가 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함한다. 노드들(10)은 서로 통신할 수 있다. 이들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 장치 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 하부구조, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 4에 도시된 컴퓨팅 장치들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(10)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[0070] 이제 도 5를 참조하면, 클라우드 컴퓨팅 환경(50) (도 4)에 의해 제공되는 일 세트의 기능별 추상화 층들이 도시된다. 도 5에 도시된 컴포넌트들, 층들, 및 기능들은 단지 예시의 목적이며 본 발명의 바람직한 실시 예들은 이것에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 층들과 그에 대응하는 기능들이 제공된다:
[0071] 하드웨어 및 소프트웨어 층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 그리고 네트워크 및 네트워킹 컴포넌트들(66)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
[0072] 가상화 층(70)은 추상화 층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들(71); 가상 스토리지(72); 가상 사설 네트워크를 포함하는, 가상 네트워크들(73); 가상 애플리케이션들 및 운영 체제들(74); 및 가상 클라이언트들(75).
[0073] 한 예에서, 관리 층(80)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(82)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(83)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)(84)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 계약서(SLA) 기획 및 충족(planning and fulfillment)(85)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0074] 워크로드 층(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음을 포함한: 맵핑 및 네비게이션(91); 소프트웨어 개발 및 라이프사이클 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션 처리(95); 및 통신 보안 프로그램(175).
[0075] 본 발명은 통합의 모든 가능한 세부 수준에서 시스템, 방법 및/또는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 프로그램 제품은 프로세서가 본 발명의 실시예를 수행하도록 하기 위한 컴퓨터 판독 가능한 프로그램 명령들을 포함하는 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다.
[0076] 컴퓨터 판독 가능한 스토리지 매체는 명령 실행 디바이스에 의해 사용하기 위한 명령을 보관 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 컴퓨터 판독 가능한 스토리지 매체는, 예를 들어, 전자 기억 장치, 자기 기억 장치, 광 기억 장치, 전자기 기억 장치, 반도체 기억 장치, 또는 전술한 임의의 적절한 조합일 수 있으나, 이에 한정되는 것은 아니다. 컴퓨터 판독 가능한 스토리지 매체의 구체적인 예는 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능한 프로그램 가능 읽기 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 콤팩트 디스크 읽기 전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱(memory stick), 플로피 디스크, 펀치 카드 또는 명령이 기록된 그루브 내의 상승된 구조(raised structures in a groove having instructions recorded thereon)와 같은 기계적으로 인코딩된 장치, 및 전술한 임의의 적절한 조합을 포함한다. 본 명세서에서 사용되는 컴퓨터 판독 가능한 스토리지 매체는, 전파 또는 자유롭게 전파되는 다른 전자기파, 도파관 또는 다른 전송 매체를 통해 전파되는 전자기파(예를 들어, 광섬유 케이블을 통과하는 광 펄스) 또는 전선을 통해 전송되는 전기 신호와 같은 일시적인 신호 그 자체로 해석되지 않는다.
[0077] 본 명세서에 설명된 컴퓨터 판독 가능한 프로그램 명령들은 컴퓨터 판독 가능한 스토리지 매체로부터 각각의 컴퓨팅/프로세싱 디바이스들로 다운로드 되거나, 네트워크, 예를 들어, 인터넷, 로컬 영역 네트워크, 광역 네트워크 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 스토리지 장치로 다운로드될 수 있다. 네트워크는 구리 전송 케이블, 광전송 섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버(edge servers)를 포함할 수 있다. 각 컴퓨팅/프로세싱 장치의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능한 프로그램 명령을 수신하고, 각각의 컴퓨팅/프로세싱 장치 내의 컴퓨터 판독 가능한 스토리지 매체에 저장하기 위하여 컴퓨터 판독 가능한 프로그램 명령을 전달한다.
[0078] 본 발명의 방법을 수행하기 위한 컴퓨터 판독 가능한 프로그램 명령은 어셈블러 명령, 명령-조합-아키텍처(instruction-set-architecture : ISA) 명령, 기계 명령, 기계 종속 명령(machine dependent instructions), 마이크로코드, 펌웨어 명령, 상태 설정 데이터, 집적 회로용 구성 데이터, 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 절차적 프로그래밍 언어를 포함하여 하나 또는 그 이상의 프로그래밍 언어의 조합으로 작성된 소스 코드 또는 객체 코드일 수 있다. 컴퓨터 판독 가능한 프로그램 명령들은 완전히 사용자의 컴퓨터에서, 부분적으로 사용자의 컴퓨터에서, 독립 실행형 소프트웨어 패키지로, 부분적으로 사용자의 컴퓨터와 부분적으로 원격 컴퓨터에서, 또는 완전히 원격 컴퓨터나 서버에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN(local area network) 또는 WAN(wide area network)을 포함한 모든 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있으며, 외부 컴퓨터(예를 들어, 인터넷 서비스 공급자를 이용한 인터넷)에 연결될 수 있다. 일부 실시예에서, 예를 들어, 프로그래머블 논리 회로, 필드 프로그래머블 게이트 배열(FPGA) 또는 프로그래머블 논리 배열(PLA)을 포함하는 전자 회로는 본 발명의 실시예를 수행하기 위해 전자 회로를 개인화할 목적으로 컴퓨터 판독 가능한 프로그램 명령들의 상태 정보를 이용함으로써 컴퓨터 판독 가능한 프로그램 명령들을 실행할 수 있다.
[0079] 본 발명의 실시예들에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 플로차트들 및/또는 블록도들을 참조하여 본 발명의 실시예들을 설명한다. 플로차트들 및/또는 블록도들의 각 블록, 및 플로차트 및/또는 블록도들의 블록 조합은 컴퓨터 판독 가능한 프로그램 명령에 의해 구현될 수 있음을 이해한다.
[0080] 이들 컴퓨터 판독 가능한 프로그램 명령들은 컴퓨터의 프로세서, 또는 기계를 생산하는 다른 프로그램 가능한 데이터 처리 장치에 제공될 수 있으며, 컴퓨터의 프로세서 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행되는 명령은 플로차트 및/또는 블록도의 블록 또는 블록들에 지정된 기능/동작을 구현하기 위한 수단을 생성한다. 이들 컴퓨터 판독 가능한 프로그램 명령들은 또한 컴퓨터, 프로그램 가능한 데이터 처리 장치 및/또는 다른 장치들이 특정한 방식으로 작동하도록 지시할 수 있는 컴퓨터 판독 가능한 스토리지 매체에 저장될 수 있으며, 명령이 저장된 컴퓨터 판독 가능한 스토리지 매체는 플로차트 및/또는 블록도의 블록 또는 블록들에 지정된 기능/동작의 실시예를 구현하는 명령들을 포함하는 제조 물품을 포함한다.
[0081] 컴퓨터 판독 가능한 프로그램 명령들은 또한 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치 또는 다른 장치에 막대 되어 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치상에서 수행되는 일련의 동작 단계들이 컴퓨터에서 구현된 프로세스들을 생성하도록 할 수 있으며, 이로써 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치에서 실행되는 명령은 플로차트 및/또는 블록도의 블록 또는 블록들에 지정된 기능들/동작들을 구현한다.
[0082] 도면들에서 플로차트 및 블록도들은 본 발명의 다양한 실시예들에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 구조, 기능 및 동작을 도시하고 있다. 이와 관련하여, 플로차트 또는 블록도의 각 블록은 모듈, 벡터 또는 명령의 일부를 나타낼 수 있으며, 이는 지정된 논리 함수를 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한다. 일부 대체 구현에서는 블록에 표시된 기능이 도면에 표시된 순서대로 발생할 수 있다. 예를 들어, 연속적으로 표시된 두 개의 블록은 실제로 한 단계로 수행될 수 있으며, 동시에, 실질적으로 동시에, 부분적으로 또는 전체적으로 시간적으로 중첩되는 방식으로 실행되거나, 때때로 관련된 기능에 따라 역순으로 블록들이 실행될 수 있다. 또한, 블록도 및/또는 플로차트의 각 블록, 및 블록도 및/또는 플로차트의 블록 조합은 특정 기능을 수행하거나 특수 목적 하드웨어와 컴퓨터 명령의 조합을 수행하거나 작동하는 특수 목적 하드웨어 기반 시스템에 의해 구현될 수 있다는 점에 유의해야 한다.
[0083] 명세서에서 "하나의 실시예", "일 실시예", "예시적 실시예" 등의 참조들은 설명된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있지만 모든 실시예가 반드시 특정 특징, 구조 또는 특성을 포함할 필요는 없음을 나타낸다. 더욱이, 그러한 문구들은 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 특정한 특징, 구조 또는 특성이 일 실시예와 관련하여 설명될 때, 다른 실시예들과 관련하여 그러한 특징, 구조 또는 특성에 영향을 미치는 것은 명시적으로 설명하지 않더라도 당업자의 지식 내에 있는 것으로 갖주된다.
[0084] 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 명세서에서 사용된 단수형은 문맥상 명백하게 다르게 나타내지 않는 한 복수형도 포함하는 것으로 의도된다. "포함하다" 및/또는 "포함하는"이라는 용어는 본 명세서에서 사용될 때 명시된 특징, 정수, 단계, 동작, 엘리멘트 및/또는 컴포넌트의 존재를 명시하지만 하나 또는 그 이상의 다른 기능, 정수, 단계, 작업, 엘리멘트, 컴포넌트 및/또는 이들의 그룹의 추가 또는 존재를 배제하지는 않는다는 것이 더 이해될 것이다.
[0085] 본 발명의 다양한 실시예에 대한 설명은 예시의 목적을 위해 제시된 것이지만, 개시된 실시예에 한정되는 것은 아니다. 설명된 실시예의 범위 및 정신을 벗어나지 않고 다수의 변형 및 변경이 당업자에게 명백할 것이다. 본 명세서에 사용된 용어는 실시예의 원리, 시장에서 발견되는 기술에 대한 실용적 적용 또는 기술적 개선을 가장 잘 설명하거나, 또는 본 명세서에 개시된 실시예를 당업자가 이해할 수 있도록 하기 위해 선택되었다.

Claims (23)

  1. 보안 네트워크 통신들(secure network communications)을 설정하기 위한 컴퓨터 구현 방법에 있어서, 상기 방법은:
    클라이언트 헬로우 메시지에 응답하여, 서버 인증서 메시지를, 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하며, 상기 제1 인증서 및 제2 인증서는 서로 바인딩됨 -;
    제1 개인 키를 사용하여 클라이언트-서버 통신들과 관련된 제1 메시지에, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -;
    제2 개인 키를 사용하여 상기 클라이언트-서버 통신들과 관련된 제2 메시지에, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되며, 상기 제2 메시지는 상기 제1 메시지를 포함함 -; 그리고
    상기 클라이언트 헬로 메시지를 수신하는 것에 응답하여, 서버 인증서 확인 메시지를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 전송하는 단계를 포함하고, 상기 서버 인증서 확인 메시지는 상기 제1 메시지 및 상기 제2 메시지를 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 제1 암호화 알고리즘은 격자-기반 암호화 알고리즘을 포함하는
    컴퓨터 구현 방법.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서, 상기 제1 메시지는 클라이언트-서버 메시징의 사본(a transcript of client-server messaging)을 포함하는
    컴퓨터 구현 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1 인증서 및 상기 제2 인증서는 동일 주제 이름(an identical subject name)을 갖는
    컴퓨터 구현 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제2 인증서의 속성은 상기 제1 인증서의 해시 값(a hashed value)을 포함하는
    컴퓨터 구현 방법.
  6. 제1항 내지 제 5 항 중 어느 한 항에 있어서, 상기 방법은:
    상기 클라이언트 헬로 메시지에 응답하여, 서버 헬로 메시지를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 전송하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 방법은:
    상기 서버 헬로우 메시지에 응답하여, 클라이언트 인증서 메시지를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 수신하는 단계 - 상기 클라이언트 인증서 메시지는 상기 제1 암호화 알고리즘과 관련된 제3 인증서 및 상기 제2 암호화 알고리즘과 관련된 제4 인증서를 포함하고, 상기 제3 인증서와 상기 제4 인증서는 서로 바인딩됨 -; 그리고
    클라이언트 인증서 확인 메시지를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 수신하는 단계를 포함하고, 상기 클라이언트 인증서 확인 메시지는 제3 개인 키를 사용하여 서명된 클라이언트-서버 통신들과 관련된 제3 메시지 - 상기 제3 개인 키는 제3 인증서와 관련됨 -, 및 제4 개인 키를 사용하여 서명된 상기 클라이언트-서버 통신들과 관련된 제4 메시지 - 상기 제4 개인 키는 상기 제4 인증서와 관련됨 -를 포함하며, 상기 제4 메시지는 상기 제3 메시지를 포함하는
    컴퓨터 구현 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 방법은 상기 제1 암호화 알고리즘을 사용하여 암호화된 데이터를, 상기 하나 또는 그 이상의 서버 컴퓨터 프로세서들에 의해, 전송하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  9. 보안 네트워크 통신들을 설정하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들 및 상기 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들에 집합적으로 저장된 프로그램 명령들을 포함하고, 상기 저장된 프로그램 명령들은
    클라이언트 헬로우 메시지에 응답하여, 서버 인증서 메시지를 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하며, 상기 제1 인증서 및 제2 인증서는 서로 바인딩됨 -;
    제1 개인 키를 사용하여 클라이언트-서버 통신들과 관련된 제1 메시지에 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -;
    제2 개인 키를 사용하여 상기 클라이언트-서버 통신들과 관련된 제2 메시지에 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되며, 상기 제2 메시지는 상기 제1 메시지를 포함함 -; 그리고
    상기 클라이언트 헬로 메시지를 수신하는 것에 응답하여, 서버 인증서 확인 메시지를 전송하는 단계를 수행하는 프로그램들을 포함하고, 상기 서버 인증서 확인 메시지는 상기 제1 메시지 및 상기 제2 메시지를 포함하는
    컴퓨터 프로그램 제품.
  10. 제9항에 있어서, 상기 제1 암호화 알고리즘은 격자-기반 암호화 알고리즘을 포함하는
    컴퓨터 프로그램 제품.
  11. 제9항 내지 제10항 중 어느 한 항에 있어서, 상기 제1 메시지는 클라이언트-서버 메시징의 사본(a transcript of client-server messaging)을 포함하는
    컴퓨터 프로그램 제품.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 제1 인증서 및 상기 제2 인증서는 동일 주제 이름(an identical subject name)을 갖는
    컴퓨터 프로그램 제품.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서, 상기 제2 인증서의 속성은 상기 제1 인증서의 해시 값(a hashed value)을 포함하는
    컴퓨터 프로그램 제품.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 클라이언트 헬로 메시지에 응답하여, 서버 헬로 메시지를 전송하는 단계를 수행하는 프로그램 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  15. 제14항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 서버 헬로우 메시지에 응답하여, 클라이언트 인증서 메시지를 수신하는 단계 - 상기 클라이언트 인증서 메시지는 상기 제1 암호화 알고리즘과 관련된 제3 인증서 및 상기 제2 암호화 알고리즘과 관련된 제4 인증서를 포함하고, 상기 제3 인증서와 상기 제4 인증서는 서로 바인딩됨 -; 그리고
    클라이언트 인증서 확인 메시지를 수신하는 단계를 수행하는 프로그램 명령들을 포함하고, 상기 클라이언트 인증서 확인 메시지는 제3 개인 키를 사용하여 서명된 클라이언트-서버 통신들과 관련된 제3 메시지 - 상기 제3 개인 키는 제3 인증서와 관련됨 -, 및 제4 개인 키를 사용하여 서명된 상기 클라이언트-서버 통신들과 관련된 제4 메시지 - 상기 제4 개인 키는 상기 제4 인증서와 관련됨 -를 포함하며, 상기 제4 메시지는 상기 제3 메시지를 포함하는
    컴퓨터 프로그램 제품.
  16. 제15항에 있어서, 상기 저장된 프로그램 명령들은 상기 제1 암호화 알고리즘을 사용하여 암호화된 데이터를 전송하는 단계를 수행하는 프로그램 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  17. 보안 네트워크 통신들을 설정하기 위한 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은:
    하나 또는 그 이상의 컴퓨터 프로세서들;
    하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들; 그리고
    상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의한 실행을 위해 상기 하나 또는 그 이상의 컴퓨터 판독가능 스토리지 디바이스들 상에 저장된 프로그램 명령들을 포함하고, 상기 저장된 프로그램 명령들은:
    클라이언트 헬로우 메시지에 응답하여, 서버 인증서 메시지를 전송하는 단계 - 상기 인증서 메시지는 제1 암호화 알고리즘과 관련된 제1 인증서 및 제2 암호화 알고리즘과 관련된 제2 인증서를 포함하며, 상기 제1 인증서 및 제2 인증서는 서로 바인딩됨 -;
    제1 개인 키를 사용하여 클라이언트-서버 통신들과 관련된 제1 메시지에 서명하는 단계 - 상기 제1 개인 키는 상기 제1 인증서와 관련됨 -;
    제2 개인 키를 사용하여 상기 클라이언트-서버 통신들과 관련된 제2 메시지에 서명하는 단계 - 상기 제2 개인 키는 상기 제2 인증서와 관련되며, 상기 제2 메시지는 상기 제1 메시지를 포함함 -; 그리고
    상기 클라이언트 헬로 메시지를 수신하는 것에 응답하여, 서버 인증서 확인 메시지를 전송하는 단계를 수행하는 프로그램들을 포함하고, 상기 서버 인증서 확인 메시지는 상기 제1 메시지 및 상기 제2 메시지를 포함하는
    컴퓨터 시스템.
  18. 제17항에 있어서, 상기 제1 암호화 알고리즘은 격자-기반 암호화 알고리즘을 포함하는
    컴퓨터 시스템.
  19. 제17항 내지 제18 항 중 어느 한 항에 있어서, 상기 제1 메시지는 클라이언트-서버 메시징의 사본(a transcript of client-server messaging)을 포함하는
    컴퓨터 시스템.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서, 상기 제1 인증서 및 상기 제2 인증서는 동일 주제 이름(an identical subject name)을 갖는
    컴퓨터 시스템.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서, 상기 제2 인증서의 속성은 상기 제1 인증서의 해시 값(a hashed value)을 포함하는
    컴퓨터 시스템.
  22. 제17항 내지 제 21항 중 어느 한 항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 클라이언트 헬로 메시지에 응답하여, 서버 헬로 메시지를 전송하는 단계를 수행하는 프로그램 명령들을 더 포함하는
    컴퓨터 시스템.
  23. 제22항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 서버 헬로우 메시지에 응답하여, 클라이언트 인증서 메시지를 수신하는 단계 - 상기 클라이언트 인증서 메시지는 상기 제1 암호화 알고리즘과 관련된 제3 인증서 및 상기 제2 암호화 알고리즘과 관련된 제4 인증서를 포함하고, 상기 제3 인증서와 상기 제4 인증서는 서로 바인딩됨 -; 그리고
    클라이언트 인증서 확인 메시지를 수신하는 단계를 수행하는 프로그램 명령들을 포함하고, 상기 클라이언트 인증서 확인 메시지는 제3 개인 키를 사용하여 서명된 클라이언트-서버 통신들과 관련된 제3 메시지 - 상기 제3 개인 키는 제3 인증서와 관련됨 -, 및 제4 개인 키를 사용하여 서명된 상기 클라이언트-서버 통신들과 관련된 제4 메시지 - 상기 제4 개인 키는 상기 제4 인증서와 관련됨 -를 포함하며, 상기 제4 메시지는 상기 제3 메시지를 포함하는
    컴퓨터 시스템.
KR1020237012927A 2020-11-02 2021-10-28 포스트 양자 암호화를 사용하는 인증서 기반 보안 KR20230078706A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/086,510 US11716206B2 (en) 2020-11-02 2020-11-02 Certificate based security using post quantum cryptography
US17/086,510 2020-11-02
PCT/EP2021/080014 WO2022090405A1 (en) 2020-11-02 2021-10-28 Certificate based security using post quantum cryptography

Publications (1)

Publication Number Publication Date
KR20230078706A true KR20230078706A (ko) 2023-06-02

Family

ID=78516819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237012927A KR20230078706A (ko) 2020-11-02 2021-10-28 포스트 양자 암호화를 사용하는 인증서 기반 보안

Country Status (10)

Country Link
US (1) US11716206B2 (ko)
EP (1) EP4238272A1 (ko)
JP (1) JP2023547630A (ko)
KR (1) KR20230078706A (ko)
CN (1) CN116491098A (ko)
AU (1) AU2021370924A1 (ko)
CA (1) CA3192541A1 (ko)
IL (1) IL301267A (ko)
MX (1) MX2023004925A (ko)
WO (1) WO2022090405A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11716206B2 (en) 2020-11-02 2023-08-01 International Business Machines Corporation Certificate based security using post quantum cryptography
US11757659B2 (en) 2020-12-01 2023-09-12 International Business Machines Corporation Post-quantum certificate binding
US11909893B2 (en) * 2021-06-25 2024-02-20 Entrust Corporation Composite encryption across cryptographic algorithms
CN114826593B (zh) * 2022-06-28 2022-09-16 济南量子技术研究院 量子安全的数据传输方法及数字证书认证系统
CN115412241B (zh) * 2022-07-25 2024-02-06 华中科技大学 实现后量子密码算法Kyber和Saber的融合密码安全处理器
CN115150184B (zh) * 2022-07-25 2023-07-21 中国互联网络信息中心 一种元数据在fabric区块链证书中应用的方法及其系统
WO2024080091A1 (ja) * 2022-10-14 2024-04-18 パナソニックIpマネジメント株式会社 通信方法、第1機器、第2機器、及び、プログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2068264A3 (en) * 2007-11-27 2010-12-29 FeliCa Networks, Inc. Service providing system, service providing server and information terminal device
US20120011566A1 (en) * 2010-07-07 2012-01-12 The Industry & Academic Cooperation In Chungnam National University(Iac) System and method for sensor network authentication based on xor chain
US20120173874A1 (en) * 2011-01-04 2012-07-05 Qualcomm Incorporated Method And Apparatus For Protecting Against A Rogue Certificate
EP2850557A4 (en) 2012-05-18 2016-01-06 Sri Internat Inc SYSTEM AND METHOD FOR AUTHENTICATING A MANUFACTURED PRODUCT USING A MOBILE DEVICE
US9565180B2 (en) * 2012-09-28 2017-02-07 Symantec Corporation Exchange of digital certificates in a client-proxy-server network configuration
US10298404B1 (en) * 2014-12-12 2019-05-21 Amazon Technologies, Inc. Certificate echoing for session security
CN104639534B (zh) * 2014-12-30 2019-02-12 北京奇虎科技有限公司 网站安全信息的加载方法和浏览器装置
US10063591B1 (en) * 2015-02-14 2018-08-28 A10 Networks, Inc. Implementing and optimizing secure socket layer intercept
US10454689B1 (en) * 2015-08-27 2019-10-22 Amazon Technologies, Inc. Digital certificate management
US9660978B1 (en) 2016-08-08 2017-05-23 ISARA Corporation Using a digital certificate with multiple cryptosystems
US9667619B1 (en) * 2016-10-14 2017-05-30 Akamai Technologies, Inc. Systems and methods for utilizing client side authentication to select services available at a given port number
US10469453B2 (en) * 2017-02-10 2019-11-05 Juniper Networks, Inc. Granular offloading of a proxied secure session
US10511591B2 (en) 2017-05-08 2019-12-17 Amazon Technologies, Inc. Generation of shared secrets using pairwise implicit certificates
US10630655B2 (en) 2017-05-18 2020-04-21 Robert Bosch Gmbh Post-quantum secure private stream aggregation
EP3432509B1 (en) 2017-07-21 2021-06-09 ID Quantique S.A. Quantum enhanced application security
US10742420B1 (en) 2018-03-09 2020-08-11 Wells Fargo Bank, N.A. Quantum-resistant double signature system
DE102018122278A1 (de) * 2018-09-12 2020-03-12 Infineon Technologies Ag Ausführen einer kryptographischen Operation
US10425401B1 (en) 2018-10-31 2019-09-24 ISARA Corporation Extensions for using a digital certificate with multiple cryptosystems
WO2020123959A1 (en) 2018-12-14 2020-06-18 Iot And M2M Technologies, Llc Secure ids certificate verification for a primary platform
US11533598B2 (en) * 2018-12-18 2022-12-20 Fisher Controls International, Llc Methods and apparatus to establish secure low energy wireless communications in a process control system
US11431498B2 (en) 2019-02-12 2022-08-30 Nxm Labs, Inc. Quantum-augmentable hybrid encryption system and method
US11751049B2 (en) * 2019-05-01 2023-09-05 John A. Nix Distributed EAP-TLS authentication for wireless networks with concealed user identities
US11456877B2 (en) 2019-06-28 2022-09-27 Intel Corporation Unified accelerator for classical and post-quantum digital signature schemes in computing environments
US11582045B2 (en) * 2020-06-02 2023-02-14 John A. Nix Combined digital signature algorithms for security against quantum computers
US11558204B2 (en) * 2020-08-17 2023-01-17 International Business Machines Corporation Attesting control over network devices
US20220075877A1 (en) * 2020-09-09 2022-03-10 Self Financial, Inc. Interface and system for updating isolated repositories
US11716206B2 (en) 2020-11-02 2023-08-01 International Business Machines Corporation Certificate based security using post quantum cryptography
US11757659B2 (en) 2020-12-01 2023-09-12 International Business Machines Corporation Post-quantum certificate binding

Also Published As

Publication number Publication date
AU2021370924A1 (en) 2023-05-25
CA3192541A1 (en) 2022-05-05
MX2023004925A (es) 2023-05-17
WO2022090405A1 (en) 2022-05-05
EP4238272A1 (en) 2023-09-06
US20220141039A1 (en) 2022-05-05
IL301267A (en) 2023-05-01
US11716206B2 (en) 2023-08-01
JP2023547630A (ja) 2023-11-13
CN116491098A (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
US10764291B2 (en) Controlling access between nodes by a key server
US11563588B2 (en) Securing a path at a selected node
US10833860B2 (en) Shared key processing by a host to secure links
US11716206B2 (en) Certificate based security using post quantum cryptography
US20200076585A1 (en) Storage device key management for encrypted host data
US10833856B2 (en) Automatic re-authentication of links using a key server
US11025413B2 (en) Securing a storage network using key server authentication
US11522681B2 (en) Securing a path at a node
US11038671B2 (en) Shared key processing by a storage device to secure links
EP4176563A1 (en) Tls integration of post quantum cryptographic algorithms
US11632246B2 (en) Hybrid key derivation to secure data
US20200296089A1 (en) Validating containers on a microservice framework
US9755832B2 (en) Password-authenticated public key encryption and decryption
US11689375B2 (en) Data in transit protection with exclusive control of keys and certificates across heterogeneous distributed computing environments
US20210281608A1 (en) Separation of handshake and record protocol
US10972455B2 (en) Secure authentication in TLS sessions
US11032708B2 (en) Securing public WLAN hotspot network access
US20220311616A1 (en) Connection resilient multi-factor authentication

Legal Events

Date Code Title Description
A201 Request for examination