KR20230075548A - 트러스티드 컴퓨팅 시스템 및 이의 증명 방법 - Google Patents

트러스티드 컴퓨팅 시스템 및 이의 증명 방법 Download PDF

Info

Publication number
KR20230075548A
KR20230075548A KR1020210161831A KR20210161831A KR20230075548A KR 20230075548 A KR20230075548 A KR 20230075548A KR 1020210161831 A KR1020210161831 A KR 1020210161831A KR 20210161831 A KR20210161831 A KR 20210161831A KR 20230075548 A KR20230075548 A KR 20230075548A
Authority
KR
South Korea
Prior art keywords
signature
verifier
master controller
devices
nonce
Prior art date
Application number
KR1020210161831A
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 KR1020210161831A priority Critical patent/KR20230075548A/ko
Priority to US17/859,263 priority patent/US20230163976A1/en
Priority to CN202211346362.7A priority patent/CN116155503A/zh
Publication of KR20230075548A publication Critical patent/KR20230075548A/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
    • 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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
    • 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/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • 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/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

트러스티드 컴퓨팅(TC: Trusted Computing) 시스템 및 이의 증명 방법이 제공된다. 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템은 검증자, 및 복수의 장치들과, 복수의 장치들을 컨트롤하는 마스터 컨트롤러를 포함하는 플랫폼을 포함하되, 검증자는 복수의 장치들 중 검증자에 의해 선택된 제1 장치에 대한 제1 ID와, 검증자에 의해 선택된 제2 장치에 대한 제2 ID, 그리고 넌스(Nonce)를 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 넌스를 제1 장치에 전송하고, 제1 장치는 넌스를 이용하여 제1 서명을 생성하고, 제2 장치는 제1 서명을 이용하여 제2 서명을 생성하며, 제2 서명을 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 제2 서명을 검증자로 전송하고, 검증자는 제2 서명을 통해, 제1 장치와 제2 장치에 대한 증명(attestation)을 수행한다.

Description

트러스티드 컴퓨팅 시스템 및 이의 증명 방법{Trusted computing device and attestation method thereof}
본 발명은 트러스티드 컴퓨팅(TC: Trusted Computing) 시스템 및 이의 증명 방법에 관한 것이다.
인터넷을 제공하는 컴퓨팅 환경에서는 점점 더 다양한 해킹 공격이 늘어가고 있으며 이를 방지하기 위한 운영체제나 소프트웨어의 끊임없는 보안 패치는 필수요소로 여겨지고 있다. 이에 따라 이러한 문제를 근본적으로 해결하려는 시도가 생겨나게 되었고, 그 결과 트러스티드 컴퓨팅(TC: Trusted Computing) 기술이 연구 및 개발되었다.
트러스티드 컴퓨팅 기술이란 컴퓨터가 당초 의도된 대로 동작을 할 수 있도록 신뢰성을 부과하는 기술로서, 트러스티드 플랫폼 모듈(TPM: Trusted Platform Module)과 같은 하드웨어 기반의 보안칩을 모든 컴퓨팅 파워가 있는 기기들에 공통으로 적용하도록 하고, 이를 위한 소프트웨어를 개방형 표준으로 제공하고자 하는 기술이다. 트러스티드 컴퓨팅 기술은 예를 들어, 컴퓨터 인증, 네트워크, 프링팅, 이동전화, 응용 프로그램 보안 등이 이용되는 플랫폼에 널릴 사용될 수 있다.
이때, 복수의 장치를 포함하는 플랫폼(예를 들어, 클라우드 플랫폼)에 대해, 보안성을 부여받은 검증자(verifier)가 접근할 때, 플랫폼 내의 복수의 장치들에 대한 보안성 증명(attestation)을 수행해야 하는데, 플랫폼 내의 복수의 장치들 모두에 대해 개별적인 보안성 증명을 수행하는 경우, 검증자의 증명 오버헤드가 증가할 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 트러스티드 컴퓨팅 환경에서의 검증자의 증명 동작에서 오버 헤드를 감소시키는 트러스티드 컴퓨팅 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 트러스티드 컴퓨팅 환경에서의 검증자의 증명 동작에서 오버 헤드를 감소시키는 트러스티드 컴퓨팅 시스템의 증명 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 시스템은, 검증자, 및 복수의 장치들과, 복수의 장치들을 컨트롤하는 마스터 컨트롤러를 포함하는 플랫폼을 포함하되, 검증자는 복수의 장치들 중 검증자에 의해 선택된 제1 장치에 대한 제1 ID와, 검증자에 의해 선택된 제2 장치에 대한 제2 ID, 그리고 넌스(Nonce)를 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 넌스를 제1 장치에 전송하고, 제1 장치는 넌스를 이용하여 제1 서명을 생성하고, 제2 장치는 제1 서명을 이용하여 제2 서명을 생성하며, 제2 서명을 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 제2 서명을 검증자로 전송하고, 검증자는 제2 서명을 통해, 제1 장치와 제2 장치에 대한 증명(attestation)을 수행한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 시스템의 증명 방법은, 검증자가 복수의 장치들 중 제1 장치에 대한 제1 ID와, 제2 장치에 대한 제2 ID, 그리고 넌스를 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 넌스와 제1 ID와 제2 ID를 제1 장치에 전송하고, 제1 장치는 넌스를 이용하여 제1 서명을 생성하고, 제2 장치는 제1 서명을 이용하여 제2 서명을 생성하며, 제2 서명을 마스터 컨트롤러로 전송하고, 마스터 컨트롤러는 제2 서명을 검증자로 전송하고, 검증자는 제2 서명을 통해, 제1 장치와 제2 장치에 대한 증명을 수행하는 것을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 시스템은, 신뢰성을 증명하는 검증자, 및 신뢰성이 증명되지 않은 복수의 장치들과, 복수의 장치들을 제어하는 마스터 컨트롤러를 포함하는 플랫폼을 포함하되, 검증자는, 복수의 장치들 중 적어도 두 개의 장치에 대한 검증 요청을 전송하고, 검증 요청의 대상이된 타깃 장치들은, 타깃 장치들 각각의 서명을 결합하여 하나의 집계된(aggregated) 서명을 생성하고, 검증자는, 집계된 서명을 이용하여 타깃 장치들에 대한 신뢰성을 증명한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다.
도 2는 검증자와 마스터 컨트롤러 사이의 동작을 설명하기 위한 레더 다이어그램이다.
도 3은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 흐름도이다.
도 4는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 플랫폼 내에서의 동작을 설명하기 위한 예시적인 블록도이다.
도 5는 집계된 서명을 생성하는 플랫폼 내에서의 동작을 설명하기 위한 예시적인 도면이다.
도 6은 도 5의 동작을 설명하기 위한 흐름도이다.
도 7은 검증자에 저장된 플랫폼 내의 장치들에 대한 정보를 설명하기 위한 예시적인 블록도이다.
도 8은 검증자의 증명 동작을 설명하기 위한 예시적인 도면이다.
도 9는 도 8의 동작을 설명하기 위한 흐름도이다.
도 10은 몇몇 실시예들에 따른 다른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다.
도 11은 검증자와 마스터 컨트롤러 사이의 동작을 설명하기 위한 레더 다이어그램이다.
도 12는 몇몇 실시예들에 따른 다른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 플랫폼 내에서의 동작을 설명하기 위한 예시적인 블록도이다.
도 13은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템이 적용되는 데이터 센터를 설명하기 위한 예시적인 블록도이다.
도 1은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다.
도 1을 참조하면, 트러스티드 컴퓨팅 시스템(10)은 검증자(100)와 플랫폼(200)을 포함한다.
검증자(100)는 플랫폼(200)을 사용하는 사용자로서, 플랫폼(200)에 서비스를 요청하는 사용자일 수 있다. 검증자(100)는 플랫폼(200)이 신뢰할 수 있는지, 신뢰성을 증명(attestation)하는 동작을 수행할 수 있다. 사용자는 예를 들어, 개인용 컴퓨터들, 셀 폰들, 핸드 헬드 메시징 디바이스들, 랩탑 컴퓨터들, 셋-탑 박스들, 개인용 정보 단말기들, 또는 전자 북 리더기들 등의 임의의 전자 디바이스를 포함할 수 있다.
플랫폼(200)은 마스터 컨트롤러(210)와 복수의 장치들(220-1 내지 220-n, n은 자연수)을 포함한다. 마스터 컨트롤러(210)는 플랫폼(200)의 전반적인 동작을 제어할 수 있다. 또한, 마스터 컨트롤러(210)는 플랫폼(200)에 포함된 장치들과 통신을 할 수 있다. 예를 들어, 마스터 컨트롤러(210)는 복수의 장치들(220-1 내지 220-n)로 명령을 전달할 수 있다. 마스터 컨트롤러(210)는 예를 들어, BMC(Baseboard Management Controller), TPM(Trusted Platform Module), 또는 보안 프로세서(Secure Processor)가 될 수 있다. 복수의 장치들(220-1 내지 220-n) 각각은 예를 들어, 중앙 처리 장치(CPU: Central Processing Unit), 그래픽 처리 장치(GPU: Graphic Processing Unit), 저장 장치(Storage Device), 또는 NIC(Network Interface Card)일 수 있다. 저장 장치는 예를 들어, 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 저장 장치는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 저장 장치는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용된 저장 장치일 수 있다.
검증자(100)가 플랫폼(200)의 복수의 장치들(220-1 내지 220-n) 모두에 대한 신뢰성을 증명하려 한다면, 검증자(100)의 증명 과정에서의 오버 헤드가 발생될 수 있다. 따라서, 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)은 검증자(100)가 복수의 장치들(220-1 내지 220-n) 중 엑세스 하려는 일부 장치들을 타깃 장치들로 정한 후, 타깃 장치들에 대해서만 신뢰성 증명을 수행할 수 있다. 검증자(100)는 타깃 장치들을 선택할 때, 타깃 장치들의 서명 순서를 지정할 수도 있다.
이때, 검증자(100)는 타깃 장치들에 대한 신뢰성 증명을 수행하기 위해, 타깃 장치들 각각의 서명이 필요하다. 서명은 타깃 장치들 각각이 가지고 있는 비밀키를 이용하여 생성될 수 있다. 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)은 타깃 장치들 각각의 서명을 모두 검증자(100)에 전송하지 않는다. 즉, 타깃 장치들이 검증자(100)에 의해 정해진 순서로 각자의 서명들을 결합 혹은 체인시켜 하나의 집계된 서명을 생성하고, 하나의 집계된 서명을 검증자(100)에 전송한다.
즉, 검증자(100)는 타깃 장치들 모두의 서명을 검증하는 것이 아니라, 하나의 집계된 서명만을 이용하여, 타깃 장치들 모두에 대한 신뢰성 증명을 수행하기 때문에, 트러스티드 컴퓨팅 시스템(10)의 증명 동작에서의 오버 헤드를 감소시킬 수 있다.
이하에서, 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)의 동작에 대해 자세히 살펴본다.
예를 들어, 검증자(100)는 마스터 컨트롤러(210)에 넌스(Nonce)(Non)값과, 신뢰성 증명을 필요로 하는 타깃 장치들의 ID들(IDs)을 전송한다. 이후, 타깃 장치들이 검증자(100)가 정한 순서로 각자의 서명들을 결합 혹은 체인시켜 하나의 집계된 서명을 생성하고, 하나의 집계된 서명(Sig(n))을 검증자(100)에 전송한다. 이후, 검증자(100)는 하나의 집계된 서명만을 이용하여, 타깃 장치들 모두에 대한 신뢰성 증명을 수행한다.
이를, 도 2의 레더 다이어그램을 통해 간략히 살펴본다.
도 2는 검증자와 마스터 컨트롤러 사이의 동작을 설명하기 위한 레더 다이어그램이다.
도 1 및 도 2를 참조하면, 검증자(100)는 마스터 컨트롤러(210)에 넌스(Nonce)(Non)값과, 신뢰성 증명을 필요로 하는 타깃 장치들의 ID들(IDs)을 전송한다(S10).
이후, 타깃 장치들이 검증자(100)가 정한 순서로 각자의 서명들을 결합 혹은 체인시켜 하나의 집계된 서명을 생성하고, 하나의 집계된 서명(Sig(n))을 검증자(100)에 전송한다(S20). 이후, 검증자(100)는 하나의 집계된 서명만을 이용하여, 타깃 장치들 모두에 대한 신뢰성 증명을 수행한다.
상술된 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)의 동작을 흐름도로 살펴본다.
도 3은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 흐름도이다.
도 1 및 도 3을 참조하면, 먼저, 검증자(100)는 마스터 컨트롤러(210)에 넌스(Nonce)(Non)값과, 신뢰성 증명을 필요로 하는 타깃 장치들의 ID들(IDs)을 전송한다(S100).
이후, 타깃 장치들이 검증자(100)가 정한 순서로 각자의 서명들을 결합 혹은 체인시킨다(S110).
이후, 타깃 장치들의 검증자(100)가 정한 순서의 마지막 장치가, 타깃 장치들이 검증자(100)가 정한 순서로 각자의 서명들을 결합 혹은 체인시켜 생성한 하나의 집계된 서명(Sig(n))을 마스터 컨트롤러(210)로 전송한다(S120).
이후, 마스터 컨트롤러(210)는 하나의 집계된 서명(Sig(n))을 검증자(100)에 전송한다(S130).
검증자(100)는 수신받은 하나의 집계된 서명(Sig(n))을 이용하여, 타깃 장치들에 대한 검증, 더 자세히는, 신뢰성 증명을 수행한다(S140).
이하의 도 4 내지 도 6을 통해, 타깃 장치들이 검증자(100)가 정한 순서로 각자의 서명들을 결합 혹은 체인시켜 생성한 하나의 집계된 서명(Sig(n))을 생성하는 동작을 자세히 살펴본다.
도 4는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 플랫폼 내에서의 동작을 설명하기 위한 예시적인 블록도이다. 도 5는 집계된 서명을 생성하는 플랫폼 내에서의 동작을 설명하기 위한 예시적인 도면이다. 도 6은 도 5의 동작을 설명하기 위한 흐름도이다.
도 4 내지 도 6은 검증자(100)가 타깃 장치들을 제2 장치(220-2), 제3 장치(220-3) 및 제n 장치(220-n)로 설정한 것으로 가정한다. 이에 대한 설명이, 검증자(100)가 타깃 장치들을 다른 복수의 장치들로 설정한 것에도 적용될 수 있음은 물론이다.
또한, 도 4 내지 도 6은 검증자(100)가 설정한 타깃 장치들(220-2, 220-3, 및 220-n)이 제2 장치(220-2), 제3 장치(220-3), 및 제n 장치(220-n)의 순서대로 서명을 전달하여 하나의 집계된 서명(Sig(n))을 생성하는 것으로 설명하였으나, 하나의 집계된 서명(Sig(n))을 생성하는 순서는 검증자(100)가 정한 순서에 따른 것으로, 본 도면들에 제한되지 않는다. 예를 들어, 검증자(100)가 제n 장치(220-n), 제3 장치(220-3), 및 제2 장치(220-2)의 순서로 타깃 장치들을 설정하였다면, 제n 장치(220-n), 제3 장치(220-3), 및 제2 장치(220-2)의 순서로 하나의 집계된 서명을 생성할 수도 있다.
또한, 도 4 내지 도 6은 공개키 암호화 알고리즘과 배타적 논리합(XOR: Exclusive OR) 연산을 이용하여, 하나의 집계된 서명을 생성하는 것을 예를 들어 설명하였으나, 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)은 다른 알고리즘을 통해 하나의 집계된 서명을 생성할 수도 있음은 물론이다.
예를 들어, 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템(10)은 RSA(Rivest Shamir Adleman), ECDSA(Elliptic Curve Digital Signature Algorithm), DSA(Digital Signature Algorithm), 또는 PQC(Post Quantum Cryptography) 바탕의 공개키 암호화 알고리즘을 이용하여, 하나의 집계된 서명을 생성할 수 있다.
도 4 내지 도 6을 참조하면, 검증자(100)로부터 넌스(Non)를 수신받은 마스터 컨트롤러(210)는 넌스(Non)를 제2 장치(220-2)에 전송한다. 제2 장치(220-2)는 마스터 컨트롤러(210)로부터 수신받은 넌스(Non)와 제2 장치(220-2)가 포함하고 있는 제2 상태값(M2)을 XOR 연산하여 제2 현재값(m2)을 생성한다(S200).
제2 상태값(M2)은 예를 들어, 제2 장치(220-2) 내의 펌웨어와 제2 장치(220-2)의 설정값에 대한 해쉬 값일 수 있다. 제2 상태값(M2)은 예를 들어, 아래의 수학식 1과 같은 값일 수 있다.
M2 = H(Firmware || Config) 수학식 1
이하에서, 제2 상태값(M2)에 대한 설명은 기타 다른 장치들에 대한 상태값들에 대한 설명에도 적용될 수 있음은 물론이다.
즉, 제2 장치(220-2)는 넌스(Non)와, 제2 장치(220-2)가 포함하고 있는 제2 상태값(M2)을 XOR 연산을 통해 결합 혹은 체인시켜 제1 체인(Chain #1)을 생성한다.
이후, 제2 장치(220-2)는 제2 장치(220-2) 내에 포함된 제2 비밀키(sk2)와 제2 현재값(m2)을 이용하여 서명을 수행하여, 제2 서명(Sig(2))을 생성한다(S210).
제2 장치(220-2)는 생성한 제2 서명(Sig(2))을 제3 장치(220-3)로 전달한다.
제2 장치(220-2)로부터 제2 서명(Sig(2))를 수신받은 제3 장치(220-3)는 제2 서명(Sig(2))과 제3 장치(220-3)가 포함하고 있는 제3 상태값(M3)을 XOR 연산하여 제3 현재값(m3)을 생성한다(S220).
제3 상태값(M3)은 예를 들어, 제3 장치(220-3) 내의 펌웨어와 펌웨어의 설정값에 대한 해쉬 값일 수 있다.
즉, 제3 장치(220-3)는 제2 서명(Sig(2))과, 제3 장치(220-3)가 포함하고 있는 제3 상태값(M3)을 XOR 연산을 통해 결합 혹은 체인시켜 제2 체인(Chain #2)을 생성한다.
이후, 제3 장치(220-3)는 제3 장치(220-3) 내에 포함된 제3 비밀키(sk3)와 제3 현재값(m3)을 이용하여 서명을 수행하여, 제3 서명(Sig(3))을 생성한다(S230).
제3 장치(220-3)는 생성한 제3 서명(Sig(3))을 제n 장치(220-n)로 전달한다.
제3 장치(220-3)로부터 제3 서명(Sig(3))를 수신받은 제n 장치(220-n)는 제3 서명(Sig(3))과 제n 장치(220-n)가 포함하고 있는 제n 상태값(Mn)을 XOR 연산하여 제n 현재값(mn)을 생성한다(S240).
제n 상태값(Mn)은 예를 들어, 제n 장치(220-n) 내의 펌웨어와 펌웨어의 설정값에 대한 해쉬 값일 수 있다.
즉, 제n 장치(220-n)는 제3 서명(Sig(3))과, 제n 장치(220-n)가 포함하고 있는 제n 상태값(Mn)을 XOR 연산을 통해 결합 혹은 체인시켜 제3 체인(Chain #3)을 생성한다.
이후, 제n 장치(220-n)는 제n 장치(220-n) 내에 포함된 제n 비밀키(skn)와 제n 현재값(mn)을 이용하여 서명을 수행하여, 제n 서명(Sig(n))을 생성한다(S250).
제n 장치(220-n)를 통해 생성된 제n 서명(Sig(n))은 제1 체인(Chain #1) 내지 제3 체인(Chain #3)을 통해 제2 서명(Sig(2)), 및 제3 서명(Sig(3))이 결합 혹은 체인되어 생성된 하나의 집계된 서명이 될 수 있다.
제n 장치(220-n)는 하나의 집계된 서명(Sig(n))을 마스터 컨트롤러(210)로 전송하고(S260), 마스터 컨트롤러(210)는 하나의 집계된 서명(Sig(n))을 검증자(100)에 전송한다.
이하에서, 도 7 내지 도 9를 통해, 검증자(100)가 수신받은 하나의 집계된 서명(Sig(n))을 통해, 타깃 장치들에 대한 검증, 더 자세히는, 신뢰성에 대한 증명을 수행하는 동작을 자세히 살펴본다.
도 7은 검증자에 저장된 플랫폼 내의 장치들에 대한 정보를 설명하기 위한 예시적인 블록도이다. 도 8은 검증자의 증명 동작을 설명하기 위한 예시적인 도면이다. 도 9는 도 8의 동작을 설명하기 위한 흐름도이다.
도 1 및 도 7 내지 도 9를 참조하면, 검증자(100)는 공개키 라이브러리(102), 상태값 라이브러리(104), 및 플랫폼(200)으로 전달한 넌스 (106)를 저장한다.
공개키 라이브러리(102)는 복수의 장치들(220-1 내지 220-n) 각각에 대한 공개키들(pk1 내지 pkn)을 저장할 수 있다. 상태값 라이브러리(104)는 복수의 장치들(220-1 내지 220-n) 각각에 대한 상태값들(M1 내지 Mn)을 저장할 수 있다. 넌스 (106)는 검증자(100)가 플랫폼(200)으로 타깃 장치들을 설정하며, 타깃 장치들에 대한 증명 요청 시 생성한 랜덤 값으로, 한번 생성된 넌스는 다시 사용되지 않는다.
검증자(100)는 타깃 장치들이 하나의 집계된 서명을 생성하는 순서의 역순으로 신뢰성에 대한 증명을 수행할 수 있다.
검증자(100)가 신뢰성에 대한 증명을 수행하는 동작은, 플랫폼(200)에서 타겟 장치들이 하나의 집계된 서명을 생성하는 순서 및 알고리즘에 따라 달라질 수 있음은 물론이다.
도 7 내지 도 9는 플랫폼(200)에서 도 4 내지 도 6에 따라 하나의 집계된 서명을 생성한 경우를 예를 들어 설명한다.
계속하여, 도 1 및 도 7 내지 도 9를 참조하면, 검증자(100)는 공개키 라이브러리(102)에 저장된 제n 공개키(pkn)와 제n 서명(Sig(n))을 이용한 제1 검증 동작(Ver1)을 통해, 제n 현재값(mn)을 생성한다(S300).
이후, 검증자(100)는 상태값 라이브러리(104)에 저장된 제n 상태값(Mn)과 제1 검증 동작(Ver1)을 통해 생성된 제n 현재값(mn)을 XOR 연산하여, 제3 서명(Sig(3))을 생성한다(S310).
검증자(100)는 공개키 라이브러리(102)에 저장된 제3 공개키(pk3)와 제3 서명(Sig(3))을 이용한 제2 검증 동작(Ver2)을 통해, 제2 현재값(m2)을 생성한다(S320).
이후, 검증자(100)는 상태값 라이브러리(104)에 저장된 제2 상태값(M2)과 제2 검증 동작(Ver2)을 통해 생성된 제2 현재값(m2)을 XOR 연산하여, 제2 서명(Sig(2))을 생성한다(S330).
검증자(100)는 공개키 라이브러리(102)에 저장된 제2 공개키(pk2)와 제2 서명(Sig(2))을 이용한 제3 검증 동작(Ver3)을 통해, 제1 현재값(m1)을 생성한다(S340).
이후, 검증자(100)는 상태값 라이브러리(104)에 저장된 제1 상태값(M1)과 제3 검증 동작(Ver3)을 통해 생성된 제1 현재값(m1)을 XOR 연산하여, 대조 넌스(N')를 생성한다(S350).
이후, 검증자(100)는 넌스 라이브러리(106)에 저장된 넌스(N)와 대조 넌스(N')를 비교하여(S360), 서로 동일한 경우(Y), 타깃 장치들에 대한 신뢰성 증명이 수행되었음을 판단하고, 타깃 장치들에 대한 엑세스를 수행한다. 만약, 그렇지 않은 경우(N), 검증자(100)는 타깃 장치들에 대해 신뢰할 수 없다고 판단하고 엑세스를 수행하지 않는다(S370). 이때, 타깃 장치들에 대해 신뢰할 수 없다고 검증자(100)가 판단하는 경우, 추가적으로 검증자(100)는 플랫폼(200) 내의 복수의 장치들(220-1 내지 220-n) 각각에 대해, 개별적으로 증명을 수행하여, 복수의 장치들(220-1 내지 220-n) 중 어떤 장치의 서명에 결함이 발생된 것인지 추가로 검증할 수도 있다.
이하에서는, 설명의 간략화를 위해, 상술된 설명과 중복된 설명은 생략하고 차이점을 위주로 설명한다.
도 10은 몇몇 실시예들에 따른 다른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다. 도 11은 검증자와 마스터 컨트롤러 사이의 동작을 설명하기 위한 레더 다이어그램이다. 도 12는 몇몇 실시예들에 따른 다른 트러스티드 컴퓨팅 시스템의 증명 방법을 설명하기 위한 플랫폼 내에서의 동작을 설명하기 위한 예시적인 블록도이다.
도 1 및 도 10 내지 도 12를 참조하면, 복수의 장치들(220-1 내지 220-n) 중 적어도 일부는, 가상 머신들(VM1 내지 VMn)에 자원을 공유하는 장치일 수 있다. 예를 들어, 제1 장치(220-1)가 복수의 가상 머신들(VM1 내지 VMn)에 자원을 공유하는 것으로 가정한다.
이때, 검증자(100)는, 복수의 가상 머신들(VM1 내지 VMn) 중 엑세스 하려는 일부 가상 머신들을 타깃 가상 머신들로 정한 후, 타깃 가상 머신들에 대해서만 신뢰성 증명을 수행할 수 있다.
검증자(100)는 마스터 컨트롤러(210)에 넌스(Nonce)(Non)값과, 신뢰성 증명을 필요로 하는 타깃 가상 머신들의 가상 머신 ID들(VM IDs)을 전송한다(S10m).
이후, 타깃 가상 머신들이 랜덤한 순서로 각자의 서명들을 결합 혹은 체인시켜 하나의 집계된 서명을 생성하고, 하나의 집계된 서명(Sig(nm))을 검증자(100)에 전송한다(S20m). 이후, 검증자(100)는 하나의 집계된 서명만을 이용하여, 타깃 가상 머신들 모두에 대한 신뢰성 증명을 수행한다.
예를 들어, 검증자(100)가 타깃 가상 머신들을 제2 가상 머신(VM2), 제3 가상 머신(VM3) 및 제n 가상 머신(VMn)로 설정한 것으로 가정한다. 이에 대한 설명이, 검증자(100)가 타깃 가상 머신들을 다른 복수의 가상 머신들로 설정한 것에도 적용될 수 있음은 물론이다.
또한, 도 10 내지 도 12는 검증자(100)가 설정한 타깃 가상 머신들(VM2, VM3, 및 VMn)이 제2 가상 머신(VM2), 제3 가상 머신(VM3), 및 제n 가상 머신(VMn)의 순서대로 서명을 전달하여 하나의 집계된 서명(Sig(nm))을 생성하는 것으로 설명하였으나, 하나의 집계된 서명(Sig(nm))을 생성하는 순서는 검증자(100)가 설정한 순서대로 진행되는 것으로, 본 도면들에 제한되지 않는다. 예를 들어, 제n 가상 머신(VMn), 제3 가상 머신(VM3), 및 제2 가상 머신(VM2)의 순서로 하나의 집계된 서명을 생성할 수도 있다.
제2 가상 머신(VM2)은 마스터 컨트롤러(210)로부터 수신받은 넌스(Non)를 이용하여 제2 서명(Sig(2m))을 생성한다. 제3 가상 머신(VM3)은 제2 서명(Sig(2m))을 자신의 상태값과 결합 혹인 체인시킨 제3 서명(Sig(3m))을 제n 가상 머신(VMn)으로 전송한다. 제n 가상 머신(VMn)은 제3 서명(Sig(3m))을 자신의 상태값과 결합 혹은 체인시켜 제n 서명(Sig(nm))을 마스터 컨트롤러(210)로 전송한다. 마스터 컨트롤러(210)는 제n 서명(Sig(nm))을 검증자(100)에 전송하고, 검증자(100)는 제n 서명(Sig(nm))을 이용하여, 타깃 가상 머신들(VM2, VM3, 및 VMn)에 대한 검증, 더 자세히는, 신뢰성 증명을 수행한다.
도 13은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템이 적용되는 데이터 센터를 설명하기 위한 예시적인 블록도이다.
도 13을 참조하면, 데이터 센터(1000)는 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 스토리지 센터라고 지칭될 수도 있다. 데이터 센터(1000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(1000)는 애플리케이션 서버들(1100 내지 1100n) 및 스토리지 서버들(1200 내지 1200m)을 포함할 수 있다. 애플리케이션 서버들(1100 내지 1100n)의 개수 및 스토리지 서버들(1200 내지 1200m)의 개수는 실시예에 따라 다양하게 선택될 수 있고, 애플리케이션 서버들(1100 내지 1100n)의 개수 및 스토리지 서버들(1200 내지 1200m)의 개수는 서로 다를 수 있다.
애플리케이션 서버(1100) 또는 스토리지 서버(1200)는 프로세서(1110, 3210) 및 메모리(1120, 3220) 중 적어도 하나를 포함할 수 있다. 스토리지 서버(1200)를 예시로 설명하면, 프로세서(1210)는 스토리지 서버(1200)의 전반적인 동작을 제어할 수 있고, 메모리(1220)에 액세스하여 메모리(1220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 메모리(1220)는 DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 및/또는 NVMDIMM(Non-Volatile DIMM)일 수 있다. 실시예에 따라, 스토리지 서버(1200)에 포함되는 프로세서(1210)의 개수 및 메모리(1220)의 개수는 다양하게 선택될 수 있다. 일 실시예에서, 프로세서(1210)와 메모리(1220)는 프로세서-메모리 페어를 제공할 수 있다. 일 실시예에서, 프로세서(1210)와 메모리(1220)의 개수는 서로 다를 수도 있다. 프로세서(1210)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 스토리지 서버(1200)에 대한 상기 설명은, 애플리케이션 서버(1100)에도 유사하게 적용될 수 있다. 실시예에 따라, 애플리케이션 서버(1100)는 스토리지 장치(1150)를 포함하지 않을 수도 있다. 스토리지 서버(1200)는 적어도 하나 이상의 스토리지 장치(1250)를 포함할 수 있다. 스토리지 서버(1200)에 포함되는 스토리지 장치(1250)의 개수는 실시예에 따라 다양하게 선택될 수 있다.
애플리케이션 서버들(1100 내지 1100n) 및 스토리지 서버들(1200 내지 1200m)은 네트워크(1300)를 통해 서로 통신할 수 있다. 네트워크(1300)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 상대적으로 고속의 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(1300)의 액세스 방식에 따라 스토리지 서버들(1200 내지 1200m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.
일 실시예에서, 네트워크(1300)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용하고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 다른 예를 들어, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 다른 실시예에서, 네트워크(1300)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들어, 네트워크(1300)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.
이하에서는, 애플리케이션 서버(1100) 및 스토리지 서버(1200)를 중심으로 설명하기로 한다. 애플리케이션 서버(1100)에 대한 설명은 다른 애플리케이션 서버(1100n)에도 적용될 수 있고, 스토리지 서버(1200)에 대한 설명은 다른 스토리지 서버(1200m)에도 적용될 수 있다.
애플리케이션 서버(1100)는 사용자 또는 클라이언트가 저장 요청한 데이터를 네트워크(1300)를 통해 스토리지 서버들(1200 내지 1200m) 중 하나에 저장할 수 있다. 또한, 애플리케이션 서버(1100)는 사용자 또는 클라이언트가 독출 요청한 데이터를 스토리지 서버들(1200 내지 1200m) 중 하나로부터 네트워크(1300)를 통해 획득할 수 있다. 예를 들어, 애플리케이션 서버(1100)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.
애플리케이션 서버(1100)는 네트워크(1300)를 통해 다른 애플리케이션 서버(1100n)에 포함된 메모리(1120n) 또는 스토리지 장치(1150n)에 액세스할 수 있고, 또는 네트워크(1300)를 통해 스토리지 서버들(1200-1200m)에 포함된 메모리들(1220-1220m) 또는 스토리지 장치(1250-1250m)에 액세스할 수 있다. 이로써, 애플리케이션 서버(1100)는 애플리케이션 서버들(1100-1100n) 및/또는 스토리지 서버들(1200-1200m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 애플리케이션 서버(1100)는 애플리케이션 서버들(1100-1100n) 및/또는 스토리지 서버들(1200-1200m) 사이에서 데이터를 이동 또는 카피(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(1200-1200m)의 스토리지 장치(1250-1250m)로부터 스토리지 서버들(1200-1200m)의 메모리들(1220-1220m)을 거쳐서, 또는 바로 애플리케이션 서버들(1100-1100n)의 메모리(1120-1120n)로 이동될 수 있다. 네트워크(1300)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 서버(1200)를 예시로 설명하면, 인터페이스(1254)는 프로세서(1210)와 컨트롤러(1251)의 물리적 연결 및 NIC(Network InterConnect)(1240)와 컨트롤러(1251)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(1254)는 스토리지 장치(1250)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(1254)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), 및/또는 CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
스토리지 서버(1200)는 스위치(1230) 및 NIC(1240)을 더 포함할 수 있다. 스위치(1230)는 프로세서(1210)의 제어에 따라 프로세서(1210)와 스토리지 장치(1250)를 선택적으로 연결시키거나, NIC(1240)와 스토리지 장치(1250)를 선택적으로 연결시킬 수 있다.
일 실시예에서 NIC(1240)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(1240)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(1300)에 연결될 수 있다. NIC(1240)는 내부 메모리, DSP(Digital Signal Processor), 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(1210) 및/또는 스위치(1230) 등과 연결될 수 있다. 호스트 버스 인터페이스는, 앞서 설명한 인터페이스(1254)의 예시들 중 하나로 구현될 수도 있다. 일 실시예에서, NIC(1240)는 프로세서(1210), 스위치(1230), 스토리지 장치(1250) 중 적어도 하나와 통합될 수도 있다.
스토리지 서버들(1200-1200m) 또는 애플리케이션 서버들(1100-1100n)에서 프로세서는 스토리지 장치(1150-1150n, 3250-1250m) 또는 메모리(1120-1120n, 3220-1220m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 또는 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 장치(1150-1150n, 3250-1250m)는 프로세서로부터 수신된 리드 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 NAND 플래시 메모리 장치(1252-1252m)로 전송할 수 있다. 이에 따라 NAND 플래시 메모리 장치(1252-1252m)로부터 데이터를 독출하는 경우, RE(Read Enable) 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. RE 신호를 이용하여 DQS(Data Strobe)가 생성될 수 있다. 커맨드와 어드레스 신호는 WE(Write Enable) 신호의 상승 엣지 또는 하강 엣지에 따라 페이지 버퍼에 래치될 수 있다.
컨트롤러(1251)는 스토리지 장치(1250)의 동작을 전반적으로 제어할 수 있다. 일 실시예에서, 컨트롤러(1251)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(1251)는 기입 커맨드에 응답하여 낸드 플래시(1252)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 낸드 플래시(1252)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 스토리지 서버(1200) 내의 프로세서(1210), 다른 스토리지 서버(1200m) 내의 프로세서(1210m) 또는 애플리케이션 서버(1100, 3100n) 내의 프로세서(1110, 3110n)로부터 제공될 수 있다. DRAM(1253)은 낸드 플래시(1252)에 기입될 데이터 또는 낸드 플래시(1252)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 또한, DRAM(1253)은 메타 데이터를 저장할 수 있다. 여기서, 메타 데이터는 사용자 데이터 또는 낸드 플래시(1252)를 관리하기 위해 컨트롤러(1251)에서 생성된 데이터이다. 스토리지 장치(1250)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 트러스티드 컴퓨팅 시스템 100: 검증자 200: 플랫폼 210: 마스터 컨트롤러

Claims (10)

  1. 검증자; 및
    복수의 장치들과, 상기 복수의 장치들을 컨트롤하는 마스터 컨트롤러를 포함하는 플랫폼을 포함하되,
    상기 검증자는 상기 복수의 장치들 중 상기 검증자에 의해 선택된 제1 장치에 대한 제1 ID와, 상기 검증자에 의해 선택된 제2 장치에 대한 제2 ID, 그리고 넌스(Nonce)를 상기 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 넌스를 상기 제1 장치에 전송하고,
    상기 제1 장치는 상기 넌스를 이용하여 제1 서명을 생성하고,
    상기 제2 장치는 상기 제1 서명을 이용하여 제2 서명을 생성하며, 상기 제2 서명을 상기 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 제2 서명을 상기 검증자로 전송하고,
    상기 검증자는 상기 제2 서명을 통해, 상기 제1 장치와 상기 제2 장치에 대한 증명(attestation)을 수행하는 트러스티드 컴퓨팅 시스템.
  2. 제 1항에 있어서,
    상기 제1 장치와 상기 제2 장치는,
    공개키 암호화 알고리즘을 이용하여, 상기 제1 서명과 상기 제2 서명을 집계(aggregating)하는 트러스티드 컴퓨팅 시스템.
  3. 제 2항에 있어서,
    상기 제1 장치와 상기 제2 장치가 RSA(Rivest Shamir Adleman)를 이용하여, 상기 제1 서명과 상기 제2 서명을 집계하는 경우,
    상기 제1 장치는,
    상기 넌스와 상기 제1 장치에 대한 제1 상태값을 XOR 연산하여 제1 현재값을 생성하고,
    상기 제1 현재값과 상기 제1 장치의 제1 비밀키를 통해 서명을 수행하여 제1 서명을 생성하는 트러스티드 컴퓨팅 시스템.
  4. 제 3항에 있어서,
    상기 제2 장치는,
    상기 제1 서명과 상기 제2 장치에 대한 제2 상태값을 XOR 연산하여 제2 현재값을 생성하고,
    상기 제2 현재값과 상기 제2 장치의 제2 비밀키를 통해 서명을 수행하여 제2 서명을 생성하는 트러스티드 컴퓨팅 시스템.
  5. 제 1항에 있어서,
    상기 검증자는,
    상기 제1 장치에 대한 제1 공개키와, 상기 제2 장치에 대한 제2 공개키를 저장하는 공개키 라이브러리와,
    상기 제1 장치에 대한 제1 상태값과, 상기 제2 장치에 대한 제2 상태값을 저장하는 상태값 라이브러리와,
    상기 넌스를 저장하는 넌스 라이브러리를 포함하는 트러스티드 컴퓨팅 시스템.
  6. 제 1항에 있어서,
    상기 복수의 장치들 중 적어도 일부의 장치는 복수의 가상 머신(VM: Virtual Machine)들을 포함하며,
    상기 검증자는 상기 복수의 가상 머신들 중 제1 가상 머신에 대한 제1 VM ID와, 제2 가상 머신에 대한 제2 VM ID, 그리고 넌스를 상기 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 넌스를 상기 제1 가상 머신에 전송하고,
    상기 제1 가상 머신은 상기 넌스를 이용하여 제1m 서명을 생성하고,
    상기 제2 가상 머신은 상기 제1m 서명을 이용하여 제2m 서명을 생성하며, 상기 제2 서명을 상기 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 제2m 서명을 상기 검증자로 전송하고,
    상기 검증자는 상기 제2m 서명을 통해, 상기 제1 가상 머신과 상기 제2 가상 머신에 대한 증명(attestation)을 수행하는 트러스티드 컴퓨팅 시스템.
  7. 검증자가 복수의 장치들 중 제1 장치에 대한 제1 ID와, 제2 장치에 대한 제2 ID, 그리고 넌스(Nonce)를 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 넌스와 상기 제1 ID와 상기 제2 ID를 상기 제1 장치에 전송하고,
    상기 제1 장치는 상기 넌스를 이용하여 제1 서명을 생성하고,
    상기 제2 장치는 상기 제1 서명을 이용하여 제2 서명을 생성하며, 상기 제2 서명을 상기 마스터 컨트롤러로 전송하고,
    상기 마스터 컨트롤러는 상기 제2 서명을 상기 검증자로 전송하고,
    상기 검증자는 상기 제2 서명을 통해, 상기 제1 장치와 상기 제2 장치에 대한 증명(attestation)을 수행하는 것을 포함하는 트러스티드 컴퓨팅 시스템의 증명 방법.
  8. 제 7항에 있어서,
    상기 제1 장치와 상기 제2 장치는,
    공개키 암호화 알고리즘을 이용하여, 상기 제1 서명과 상기 제2 서명을 집계(aggregating)하는 트러스티드 컴퓨팅 시스템의 증명 방법.
  9. 신뢰성을 증명하는 검증자; 및
    상기 신뢰성이 증명되지 않은 복수의 장치들과, 상기 복수의 장치들을 제어하는 마스터 컨트롤러를 포함하는 플랫폼을 포함하되,
    상기 검증자는, 상기 복수의 장치들 중 적어도 두 개의 장치에 대한 검증 요청을 전송하고,
    상기 검증 요청의 대상이된 타깃 장치들은, 상기 타깃 장치들 각각의 서명을 결합하여 하나의 집계된(aggregated) 서명을 생성하고,
    상기 검증자는, 상기 집계된 서명을 이용하여 상기 타깃 장치들에 대한 신뢰성을 증명하는 트러스티드 컴퓨팅 시스템.
  10. 제 9항에 있어서,
    상기 검증자는,
    상기 타깃 장치들의 일부에 대한 제1 공개키와, 상기 타깃 장치들의 다른 일부에 대한 제2 공개키를 저장하는 공개키 라이브러리와,
    상기 타깃 장치들의 일부에 대한 제1 상태값과, 상기 타깃 장치들의 다른 일부에 대한 제2 상태값을 저장하는 상태값 라이브러리를 포함하는 트러스티드 컴퓨팅 시스템.
KR1020210161831A 2021-11-23 2021-11-23 트러스티드 컴퓨팅 시스템 및 이의 증명 방법 KR20230075548A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210161831A KR20230075548A (ko) 2021-11-23 2021-11-23 트러스티드 컴퓨팅 시스템 및 이의 증명 방법
US17/859,263 US20230163976A1 (en) 2021-11-23 2022-07-07 Computing device in a trusted computing system and attestation method thereof
CN202211346362.7A CN116155503A (zh) 2021-11-23 2022-10-31 可信计算系统中的计算装置及其认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210161831A KR20230075548A (ko) 2021-11-23 2021-11-23 트러스티드 컴퓨팅 시스템 및 이의 증명 방법

Publications (1)

Publication Number Publication Date
KR20230075548A true KR20230075548A (ko) 2023-05-31

Family

ID=86353251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210161831A KR20230075548A (ko) 2021-11-23 2021-11-23 트러스티드 컴퓨팅 시스템 및 이의 증명 방법

Country Status (3)

Country Link
US (1) US20230163976A1 (ko)
KR (1) KR20230075548A (ko)
CN (1) CN116155503A (ko)

Also Published As

Publication number Publication date
CN116155503A (zh) 2023-05-23
US20230163976A1 (en) 2023-05-25

Similar Documents

Publication Publication Date Title
CN110999255B (zh) 检索区块链网络的访问数据的方法及装置
JP7416775B2 (ja) 周辺デバイス
US11171774B2 (en) System for synchronizing a cryptographic key state through a blockchain
US20210311643A1 (en) Memory encryption engine interface in compute express link (cxl) attached memory controllers
US11784827B2 (en) In-memory signing of messages with a personal identifier
US11928246B2 (en) Memory data security
US11783044B2 (en) Endpoint authentication based on boot-time binding of multiple components
WO2021057273A1 (zh) 在fpga上实现高效合约调用的方法及装置
JP2022527904A (ja) 無線更新の有効性確認
JP2022526936A (ja) ブロックチェーンにおけるブロックとしてのメモリの使用
JP2022526934A (ja) ブロックチェーンを基にしたメモリコマンドの正当性確認
EP4181005A1 (en) Storage device, storage system having the same and method of operating the same
US11863664B2 (en) Method of performing key exchange for security operation in storage device and method of performing authority transfer in storage device using the same
US20230163976A1 (en) Computing device in a trusted computing system and attestation method thereof
US20220231838A1 (en) Server System to Control Memory Devices over Computer Networks
US20220329437A1 (en) Flexible security enclave for protecting data at rest and in motion
CN116192395A (zh) 用于分散式数据存储的可信系统
US20230144135A1 (en) Trusted computing device and operating method thereof
US11914879B2 (en) Storage controller and storage system comprising the same
US11677560B2 (en) Utilization of a memory device as security token
KR20230067436A (ko) 트러스티드 컴퓨팅 장치 및 이의 동작 방법
JP2023101410A (ja) ストレージシステム及びストレージコントローラ並びにストレージ装置の動作方法