+

KR20230067436A - Trusted computing device and operating method thereof - Google Patents

Trusted computing device and operating method thereof Download PDF

Info

Publication number
KR20230067436A
KR20230067436A KR1020220004434A KR20220004434A KR20230067436A KR 20230067436 A KR20230067436 A KR 20230067436A KR 1020220004434 A KR1020220004434 A KR 1020220004434A KR 20220004434 A KR20220004434 A KR 20220004434A KR 20230067436 A KR20230067436 A KR 20230067436A
Authority
KR
South Korea
Prior art keywords
authentication value
integrity
authentication
tag
storage
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020220004434A
Other languages
Korean (ko)
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 US17/846,349 priority Critical patent/US12074983B2/en
Priority to CN202211176311.4A priority patent/CN116108427A/en
Publication of KR20230067436A publication Critical patent/KR20230067436A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

트러스티드 컴퓨팅 장치 및 이의 동작 방법이 제공된다. 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치는 펌웨어에 의해 구동되는 장치, 및 펌웨어로부터 인증값을 생성하여, 인증값에 대한 무결성을 제1 주기로 검사하는 마스터 컨트롤러를 포함하되, 마스터 컨트롤러는, 인증값을 생성하는 인증값 생성기와, 인증값을 저장하는 인증값 저장소와, 인증값 저장소에 저장된 인증값에 대해, 외부로부터의 억세스를 차단시키는 보안 코어와, 인증값 저장소에 저장된 인증값에 대한 무결성을 검사하는 무결성 검사기를 포함한다.A trusted computing device and its operating method are provided. A trusted computing device according to some embodiments includes a device driven by firmware, and a master controller that generates an authentication value from the firmware and checks integrity of the authentication value in a first cycle, wherein the master controller includes the authentication value An authentication value generator that generates an authentication value, an authentication value storage that stores authentication values, a secure core that blocks external access to authentication values stored in the authentication value storage, and integrity of authentication values stored in the authentication value storage Contains an integrity checker that checks.

Description

트러스티드 컴퓨팅 장치 및 이의 동작 방법{Trusted computing device and operating method thereof}Trusted computing device and operating method thereof

본 발명은 트러스티드 컴퓨팅 장치 및 이의 동작 방법에 관한 것이다.The present invention relates to a trusted computing device and an operating method thereof.

인터넷을 제공하는 컴퓨팅 환경에서는 점점 더 다양한 해킹 공격이 늘어가고 있으며 이를 방지하기 위한 운영체제나 소프트웨어의 끊임없는 보안 패치는 필수요소로 여겨지고 있다. 이에 따라 이러한 문제를 근본적으로 해결하려는 시도가 생겨나게 되었고, 그 결과 트러스티드 컴퓨팅(TC: Trusted Computing) 기술이 연구 및 개발되었다.Various hacking attacks are increasing in a computing environment that provides the Internet, and constant security patching of an operating system or software to prevent them is considered an essential element. Accordingly, attempts have been made to fundamentally solve these problems, and as a result, Trusted Computing (TC) technology has been researched and developed.

트러스티드 컴퓨팅 기술이란 컴퓨터가 당초 의도된 대로 동작을 할 수 있도록 신뢰성을 부과하는 기술로서, 트러스티드 플랫폼 모듈(TPM: Trusted Platform Module)과 같은 하드웨어 기반의 보안칩을 모든 컴퓨팅 파워가 있는 기기들에 공통으로 적용하도록 하고, 이를 위한 소프트웨어를 개방형 표준으로 제공하고자 하는 기술이다. 트러스티드 컴퓨팅 기술은 예를 들어, 컴퓨터 인증, 네트워크, 프린팅, 이동전화, 응용 프로그램 보안 등이 이용되는 플랫폼에 널리 사용될 수 있다.Trusted computing technology is a technology that imposes reliability so that a computer can operate as originally intended. A hardware-based security chip such as a Trusted Platform Module (TPM) is installed in devices with all computing power. It is a technology to be applied in common and to provide software for this as an open standard. Trusted computing technology can be widely used in platforms where, for example, computer authentication, network, printing, mobile phone, application security, and the like are used.

이때, 복수의 장치들(예를 들어, 복수의 펌웨어들)를 포함하는 플랫폼(예를 들어, 스토리지 장치)에 대해, 보안성을 부여받은 검증자(verifier)(예를 들어, 호스트)가 접근할 때, 플랫폼 내의 복수의 장치들에 대한 보안성 증명(attestation)을 수행한다.At this time, a verifier (eg, a host) granted security accesses a platform (eg, a storage device) including a plurality of devices (eg, a plurality of firmwares). When doing so, it performs security attestation on multiple devices within the platform.

이때, 검증자의 보안성 증명 요청에 대한 응답으로, 플랫폼은 플랫폼 내 복수의 장치들 각각에 대한 인증값들을 전송할 수 있는데, 플랫폼으로부터 검증자에게 전송되는 인증값들에 대한 무결성(integrity)이 요구된다.At this time, in response to the verifier's security certification request, the platform may transmit authentication values for each of a plurality of devices in the platform, and integrity of the authentication values transmitted from the platform to the verifier is required. .

본 발명이 해결하고자 하는 기술적 과제는 보안성 증명(attestation)에 이용되는 인증값에 대한 무결성(integrity)을 보장하는 트러스티드 컴퓨팅 장치를 제공하는 것이다.A technical problem to be solved by the present invention is to provide a trusted computing device that guarantees the integrity of an authentication value used for security attestation.

본 발명이 해결하고자 하는 다른 기술적 과제는 보안성 증명(attestation)에 이용되는 인증값에 대한 무결성(integrity)을 보장하는 트러스티드 컴퓨팅 장치의 동작 방법을 제공하는 것이다.Another technical problem to be solved by the present invention is to provide a method of operating a trusted computing device that guarantees the integrity of an authentication value used for security attestation.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 장치는, 펌웨어에 의해 구동되는 장치, 및 펌웨어로부터 인증값을 생성하여, 인증값에 대한 무결성을 제1 주기로 검사하는 마스터 컨트롤러를 포함하되, 마스터 컨트롤러는, 인증값을 생성하는 인증값 생성기와, 인증값을 저장하는 인증값 저장소와, 인증값 저장소에 저장된 인증값에 대해, 외부로부터의 억세스를 차단시키는 보안 코어와, 인증값 저장소에 저장된 인증값에 대한 무결성을 검사하는 무결성 검사기를 포함한다.A trusted computing device according to some embodiments of the present invention for achieving the above technical problem is a device driven by firmware, and a master controller that generates an authentication value from the firmware and checks the integrity of the authentication value in a first cycle. The master controller includes an authentication value generator for generating an authentication value, an authentication value storage for storing the authentication value, a security core for blocking external access to the authentication value stored in the authentication value storage, and authentication It includes an integrity checker that checks the integrity of the authentication value stored in the value store.

상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 장치는, 제1 펌웨어에 의해 구동되는 제1 장치와 제2 펌웨어에 의해 구동되는 제2 장치, 및 제1 펌웨어로부터 제1 인증값을 생성하여, 제1 인증값에 대한 무결성을 제1 주기로 검사하고, 제2 펌웨어로부터 제2 인증값을 생성하여, 제2 인증값에 대한 무결성을 제2 주기로 검사하는 마스터 컨트롤러를 포함하되, 마스터 컨트롤러는, 제1 인증값과 제2 인증값을 생성하는 인증값 생성기와, 제1 인증값과 제2 인증값을 저장하는 인증값 저장소와, 인증값 저장소에 저장된 제1 인증값과 제2 인증값에 대해, 외부로부터의 억세스를 차단시키는 보안 코어와, 인증값 저장소에 저장된 제1 인증값과 제2 인증값에 대한 무결성을 검사하는 무결성 검사기를 포함한다.A trusted computing device according to some embodiments of the present invention for achieving the above technical problem is a first device driven by a first firmware and a second device driven by a second firmware, and a first device from the first firmware. A master controller that generates an authentication value, checks the integrity of the first authentication value in a first cycle, generates a second authentication value from a second firmware, and checks the integrity of the second authentication value in a second cycle; , The master controller includes an authentication value generator for generating a first authentication value and a second authentication value, an authentication value storage for storing the first authentication value and a second authentication value, and a first authentication value stored in the authentication value storage and a second authentication value. It includes a security core that blocks access from the outside for two authentication values, and an integrity checker that checks the integrity of the first and second authentication values stored in the authentication value storage.

상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 트러스티드 컴퓨팅 장치는, 장치를 구동하는 펌웨어에 대한 인증값의 무결성을 검사하는 마스터 컨트롤러를 포함하는 트러스티드 컴퓨팅 장치로서, 마스터 컨트롤러는 인증값의 무결성을 제1 주기마다 검사하되, 마스터 컨트롤러는, 인증값 생성기를 통해, 인증값을 생성하고, 인증값 저장소를 통해, 인증값을 저장하고, 보안 코어를 통해, 인증값 저장소에 저장된 인증값에 대해, 외부로부터의 억세스를 차단시키고, 무결성 검사기를 통해, 인증값 저장소에 저장된 인증값에 대한 무결성을 검사하는 것을 포함한다.A trusted computing device according to some embodiments of the present invention for achieving the above technical problem is a trusted computing device including a master controller that checks the integrity of an authentication value for firmware driving the device, wherein the master controller is authenticated. The integrity of the value is checked every first cycle, but the master controller generates an authentication value through an authentication value generator, stores the authentication value through an authentication value storage, and stores the authentication value in the authentication value storage through a secure core. For values, access from outside is blocked, and the integrity of the authentication value stored in the authentication value storage is checked through an integrity checker.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Details of other embodiments are included in the detailed description and drawings.

도 1은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다.
도 2는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러를 도시한 블록도이다.
도 3은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러의 동작 방법을 설명하기 위한 흐름도이다.
도 4 및 도 5는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러의 동작을 설명하기 위한 블록도이다.
도 6은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 무결성 검사기를 설명하기 위한 블록도이다.
도 7은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 무결성 검사기의 동작을 설명하기 위한 흐름도이다.
도 8은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 공격 감지기를 설명하기 위한 블록도이다.
도 9는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 시스템을 도시한 예시적인 도면이다.
도 10는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 스토리지 시스템을 도시한 예시적인 도면이다.
도 11은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 데이터 센터를 도시한 예시적인 도면이다.
1 is a block diagram illustrating a trusted computing system in accordance with some embodiments.
2 is a block diagram illustrating a master controller of a trusted computing device in accordance with some embodiments.
3 is a flowchart illustrating an operating method of a master controller of a trusted computing device according to some embodiments.
4 and 5 are block diagrams illustrating operations of a master controller of a trusted computing device according to some embodiments.
6 is a block diagram illustrating an integrity checker in a master controller of a trusted computing device according to some embodiments.
7 is a flowchart illustrating an operation of an integrity checker in a master controller of a trusted computing device according to some embodiments.
8 is a block diagram illustrating an attack detector in a master controller of a trusted computing device according to some embodiments.
9 is an exemplary diagram illustrating a system to which a trusted computing device according to some embodiments is applied.
10 is an exemplary diagram illustrating a storage system to which a trusted computing device according to some embodiments is applied.
11 is an exemplary diagram illustrating a data center to which a trusted computing device according to some embodiments is applied.

도 1은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 시스템을 도시한 블록도이다.1 is a block diagram illustrating a trusted computing system in accordance with some embodiments.

도 1을 참조하면, 트러스티드 컴퓨팅 시스템(1)은 검증자(10)와 플랫폼(20)을 포함한다.Referring to FIG. 1 , the trusted computing system 1 includes a verifier 10 and a platform 20 .

검증자(10)는 플랫폼(20)을 사용하는 사용자로서, 플랫폼(20)에 서비스를 요청하는 사용자일 수 있다. 검증자(10)는 플랫폼(20)이 신뢰할 수 있는지, 신뢰성을 증명(attestation)하는 동작을 수행할 수 있다. 사용자는 예를 들어, 개인용 컴퓨터들, 셀 폰들, 핸드 헬드 메시징 디바이스들, 랩탑 컴퓨터들, 셋-탑 박스들, 개인용 정보 단말기들, 또는 전자 북 리더기들 등의 임의의 전자 디바이스를 사용하는 주체를 포함할 수 있다.The verifier 10 is a user using the platform 20 and may be a user requesting a service from the platform 20 . The verifier 10 may perform an operation for attesting whether the platform 20 is trustworthy or not. A user is a subject who uses any electronic device, such as, for example, personal computers, cell phones, handheld messaging devices, laptop computers, set-top boxes, personal digital assistants, or electronic book readers. can include

플랫폼(20)은 마스터 컨트롤러(200)와 복수의 장치들(202-1 내지 202-n, n은 자연수)을 포함한다. 마스터 컨트롤러(200)는 플랫폼(20)의 전반적인 동작을 제어할 수 있다. 또한, 마스터 컨트롤러(200)는 플랫폼(20)에 포함된 장치들과 통신을 할 수 있다. The platform 20 includes a master controller 200 and a plurality of devices 202-1 to 202-n, where n is a natural number. The master controller 200 may control the overall operation of the platform 20 . Also, the master controller 200 may communicate with devices included in the platform 20 .

예를 들어, 마스터 컨트롤러(200)는 복수의 장치들(202-1 내지 202-n)로 명령을 전달할 수 있다. 마스터 컨트롤러(200)는 예를 들어, BMC(Baseboard Management Controller), TPM(Trusted Platform Module), 또는 보안 프로세서(Secure Processor)가 될 수 있다. For example, the master controller 200 may transmit a command to a plurality of devices 202-1 to 202-n. The master controller 200 may be, for example, a Baseboard Management Controller (BMC), a Trusted Platform Module (TPM), or a Secure Processor.

복수의 장치들(202-1 내지 202-n) 각각은 예를 들어, 중앙 처리 장치(CPU: Central Processing Unit), 그래픽 처리 장치(GPU: Graphic Processing Unit), 저장 장치(Storage Device), 또는 NIC(Network Interface Card)일 수 있다. Each of the plurality of devices 202-1 to 202-n may include, for example, a central processing unit (CPU), a graphic processing unit (GPU), a storage device, or a 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) 및 다른 다양한 종류의 메모리가 적용된 저장 장치일 수 있다.The storage device may include, for example, a 2D NAND memory array or a 3D (or vertical) NAND (VNAND) memory array. As another example, the storage device may include other various types of non-volatile memories. For example, storage devices include magnetic RAM (MRAM), spin-transfer torque MRAM (spin-transfer torque MRAM), conductive bridging RAM (CBRAM), ferroelectric RAM (FeRAM), phase RAM (PRAM), and resistive memory (resistive RAM). And it may be a storage device to which various other types of memories are applied.

복수의 장치들(202-1 내지 202-n) 각각은 펌웨어(204-1 내지 204-n)에 의해 구동될 수 있다. 본 도면에서는 모든 복수의 장치들(202-1 내지 202-n) 각각이 펌웨어(204-1 내지 204-n)를 포함하는 것으로 도시하였으나, 본 발명은 이에 제한되지 않는다.Each of the plurality of devices 202-1 to 202-n may be driven by firmware 204-1 to 204-n. In this drawing, all of the plurality of devices 202-1 to 202-n are illustrated as including firmware 204-1 to 204-n, but the present invention is not limited thereto.

즉, 복수의 장치들(202-1 내지 202-n) 중 일부만 펌웨어를 포함할 수도 있다.That is, only some of the plurality of devices 202-1 to 202-n may include firmware.

예를 들어, 제1 장치(202-1)가 중앙 처리 장치인 경우, 제1 장치 내부에는 펌웨어가 존재하지 않고, 제2 장치(202-2)가 ROM(Read Only Memory)이라고 가정하면, 제1 장치(202-1)는 제2 장치(202-2)에 프로그램된 펌웨어(혹은, 코드, 또는 함수)(204-2)를 실행할 수 있다.For example, assuming that the first device 202-1 is a central processing unit, firmware is not present in the first device, and the second device 202-2 is a ROM (Read Only Memory), The first device 202-1 may execute the firmware (or code or function) 204-2 programmed in the second device 202-2.

검증자(10)가 플랫폼(20)이 신뢰할 수 있는지, 신뢰성을 증명(attestation)하는 동작을 수행하기 위해, 플랫폼(20)에 증명 요청(Attestation request)을 송신하면, 플랫폼(20)은 복수의 장치들(202-1 내지 202-n)에 대한 신뢰성을 증명하는 증명 응답(Attestation response)을 검증자(10)로 보낸다.When the verifier 10 transmits an attestation request to the platform 20 to perform an operation of attesting whether the platform 20 is trustworthy, the platform 20 performs a plurality of An attestation response proving reliability of the devices 202-1 to 202-n is sent to the verifier 10.

이때, 플랫폼(20)은 복수의 펌웨어들(204-1 내지 204-n)에 대한 인증값들을 함께 전송한다. 즉, 플랫폼(20)으로부터 검증자(10)로 전송되는 인증값들에 대한 무결성이 유지되어야, 검증자(10)는 증명 응답(Attestation response)을 신뢰할 수 있다.At this time, the platform 20 transmits authentication values for the plurality of firmwares 204-1 to 204-n together. That is, the integrity of authentication values transmitted from the platform 20 to the verifier 10 must be maintained so that the verifier 10 can trust the attestation response.

이하에서, 몇몇 실시예들에 따른 플랫폼(20, 이하에서는 트러스티드 컴퓨팅 장치로 통칭한다.)이 검증자(10)로 전송되는 인증값들에 대한 무결성을 유지하는 구성과 동작에 대해 자세히 살펴본다.Hereinafter, the configuration and operation of maintaining the integrity of the authentication values transmitted to the verifier 10 by the platform 20 (hereinafter collectively referred to as a trusted computing device) according to some embodiments will be described in detail. .

도 2는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러를 도시한 블록도이다.2 is a block diagram illustrating a master controller of a trusted computing device in accordance with some embodiments.

도 1 및 도 2를 참조하면, 마스터 컨트롤러(200)는 보안 코어(210), 인증값 생성기(220), 인증값 저장소(230), 무결성 검사기(240), 및 공격 감지기(250)를 포함한다.1 and 2, the master controller 200 includes a secure core 210, an authentication value generator 220, an authentication value storage 230, an integrity checker 240, and an attack detector 250. .

보안 코어(210)는 복수의 펌웨어들(204-1 내지 204-n) 혹은 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들(이하에서는, 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들로 통칭한다.)을 수신받는다.The secure core 210 includes a plurality of firmwares 204-1 to 204-n or codes for the plurality of firmwares 204-1 to 204-n (hereinafter, the plurality of firmwares 204-1 to 204-n). 204-n) is received.

이후, 인증값 생성기(220)는 보안 코어(210)로부터 수신받은 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들을 이용하여 복수의 인증값들을 생성한다. 예를 들어, 인증값 생성기(220)는 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들에 해시 함수를 적용하여, 복수의 인증값들을 생성할 수 있다.Thereafter, the authentication value generator 220 generates a plurality of authentication values using the codes for the plurality of firmwares 204-1 to 204-n received from the secure core 210. For example, the authentication value generator 220 may generate a plurality of authentication values by applying a hash function to codes for the plurality of firmwares 204-1 to 204-n.

인증값 생성기(220)를 통해 생성된 복수의 인증값들은 인증값 저장소(230)에 저장될 수 있다. 인증값 저장소(230)는 복수의 레지스터들을 포함하여, 각각의 레지스터에 복수의 인증값들 각각을 저장할 수 있다. 본 발명은, 이에 제한되지 않고, 하나의 레지스터에 복수의 인증값들이 저장될 수도 있다.A plurality of authentication values generated through the authentication value generator 220 may be stored in the authentication value storage 230 . The authentication value storage 230 may include a plurality of registers and store each of a plurality of authentication values in each register. The present invention is not limited thereto, and a plurality of authentication values may be stored in one register.

보안 코어(210)는 복수의 인증값들이 인증값 저장소(230)에 저장되면, 복수의 인증값들을 잠금시킨다. 예를 들어, 보안 코어(210)는 인증값 저장소(230)에 저장된 복수의 인증값들을 하드웨어 적으로 잠금시킬 수 있다. When the plurality of authentication values are stored in the authentication value storage 230, the secure core 210 locks the plurality of authentication values. For example, the security core 210 may lock a plurality of authentication values stored in the authentication value storage 230 in terms of hardware.

더 자세히는, 보안 코어(210)는 인증값 저장소(230)에 저장된 복수의 인증값들에 대한 외부로부터의 억세스를 차단시켜, 복수의 인증값들에 대한 변조를 차단할 수 있다. 외부로부터의 억세스는 예를 들어, 마스터 컨트롤러(200) 내의 다른 코어의 억세스 혹은, 검증자(10)의 억세스 등이 될 수 있다.In more detail, the secure core 210 blocks external access to the plurality of authentication values stored in the authentication value storage 230, thereby blocking tampering with the plurality of authentication values. Access from the outside may be, for example, access of another core in the master controller 200 or access of the verifier 10 .

이후, 무결성 검사기(240)는 주기적으로 인증값 저장소(230)에 저장된 복수의 인증값들에 대한 무결성을 검사한다. 무결성 검사기(240)가 복수의 인증값들에 대한 무결성을 검사하는 주기는 실시간이 될 수도 있다. 이에 제한되지 않고, 무결성 검사기(240)가 복수의 인증값들에 대한 무결성을 검사하는 주기는 검증자(10)가 플랫폼(20)에 증명 요청(Attestation request)을 송신하는 주기일 수도 있다. Thereafter, the integrity checker 240 periodically checks the integrity of the plurality of authentication values stored in the authentication value storage 230 . A cycle in which the integrity checker 240 checks the integrity of a plurality of authentication values may be real time. The period in which the integrity checker 240 checks the integrity of the plurality of authentication values may be a period in which the verifier 10 transmits an attestation request to the platform 20 without being limited thereto.

무결성 검사기(240)가 복수의 인증값들 각각에 대한 무결성을 검사하는 주기는 서로 다를 수도 있다. 예를 들어, 무결성 검사기(240)가 제1 인증값에 대해서는 제1 주기로 무결성을 검사하고, 제2 인증값에 대해서는 제2 주기로 무결성을 검사할 수 있다. 혹은, 무결성 검사기(240)가 복수의 인증값들 각각에 대한 무결성을 검사하는 주기는 서로 동일할 수도 있다. 예를 들어, 무결성 검사기(240)가 제1 인증값에 대해서는 제1 주기로 무결성을 검사하고, 제2 인증값에 대해서는 제2 주기로 무결성을 검사할 때, 제1 주기와 제2 주기가 서로 동일할 수도 있다. Periods at which the integrity checker 240 checks the integrity of each of the plurality of authentication values may be different. For example, the integrity checker 240 may inspect the integrity of the first authentication value in a first cycle, and the second authentication value in a second cycle. Alternatively, cycles in which the integrity checker 240 checks the integrity of each of the plurality of authentication values may be the same. For example, when the integrity checker 240 checks the integrity of the first authentication value in a first cycle and the second authentication value in a second cycle, the first cycle and the second cycle may be the same. may be

무결성 검사기(240)가 복수의 인증값들 각각에 대한 무결성을 검사하는 주기는 보안 코어(210)만이 제어할 수 있다.Only the secure core 210 can control a cycle in which the integrity checker 240 checks the integrity of each of the plurality of authentication values.

무결성 검사기(240)가 복수의 인증값들에 대한 무결성을 검사한 결과, 무결성이 유지되고 있다고 판단되면, 계속하여 무결성을 검사한다.As a result of the integrity checker 240 examining the integrity of the plurality of authentication values, if it is determined that the integrity is maintained, the integrity check continues.

만약, 무결성 검사기(240)가 복수의 인증값들에 대한 무결성을 검사한 결과, 무결성이 유지되지 않다고 판단하면, 무결성 검사기(240)는 공격 감지기(250)에 인증값의 무결성이 유지되지 않았음을 알리는 신호를 전송한다.If, as a result of the integrity checker 240 examining the integrity of the plurality of authentication values, if it is determined that the integrity is not maintained, the integrity checker 240 informs the attack detector 250 that the integrity of the authentication value is not maintained. transmits a signal indicating

무결성이 유지되지 않았음을 알리는 신호를 수신받은 공격 감지기(250)는 무결성이 유지되지 않은 인증값을 리셋시킨다. 예를 들어, 공격 감지기(250)는 무결성이 유지되지 않은 인증값이 0x2456781285라면, 00000000으로 리셋시킨다. 또한, 공격 감지기(250)는 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알린다.Upon receiving the signal indicating that integrity is not maintained, the attack detector 250 resets the authentication value for which integrity is not maintained. For example, if the authentication value for which integrity is not maintained is 0x2456781285, the attack detector 250 resets it to 00000000. In addition, the attack detector 250 informs the security core 210 that the integrity of the authentication value is not maintained.

공격 감지기(250)가 무결성이 유지되지 않은 인증값을 리셋시키는 동작과 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알리는 동작은 병렬적으로 수행될 수도 있으며, 순서를 가지고 수행될 수도 있다.The operation of the attack detector 250 resetting the authentication value whose integrity is not maintained and the operation of notifying the security core 210 that the integrity of the authentication value is not maintained may be performed in parallel or sequentially. It could be.

도 3은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러의 동작 방법을 설명하기 위한 흐름도이다. 도 4 및 도 5는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러의 동작을 설명하기 위한 블록도이다.3 is a flowchart illustrating an operating method of a master controller of a trusted computing device according to some embodiments. 4 and 5 are block diagrams illustrating operations of a master controller of a trusted computing device according to some embodiments.

도 1 내지 도 5를 참조하면, 보안 코어(210)는 복수의 펌웨어들(204-1 내지 204-n) 혹은 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들을 수신받는다(S100).1 to 5, the secure core 210 receives a plurality of firmwares 204-1 to 204-n or codes for the plurality of firmwares 204-1 to 204-n (S100 ).

이후, 인증값 생성기(220)는 보안 코어(210)로부터 수신받은 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들(Code 1 내지 Code n)을 이용하여 복수의 인증값들(Authentication value 1 내지 Authentication value n)을 생성한다(S200). 예를 들어, 인증값 생성기(220)는 복수의 펌웨어들(204-1 내지 204-n)에 대한 코드들(Code 1 내지 Code n)에 해시 함수를 적용하여, 복수의 인증값들(Authentication value 1 내지 Authentication value n)을 생성할 수 있다.Thereafter, the authentication value generator 220 uses the codes (Code 1 to Code n) for the plurality of firmwares 204-1 to 204-n received from the secure core 210 to generate a plurality of authentication values ( Authentication value 1 to Authentication value n) are generated (S200). For example, the authentication value generator 220 applies a hash function to codes (Code 1 to Code n) of the plurality of firmwares 204-1 to 204-n to obtain a plurality of authentication values (Authentication value). 1 to Authentication value n) can be created.

인증값 생성기(220)를 통해 생성된 복수의 인증값들(Authentication value 1 내지 Authentication value n)은 인증값 저장소(230)에 저장될 수 있다(S300). 인증값 저장소(230)는 복수의 레지스터들(232-1 내지 232-n)을 포함하여, 각각의 레지스터에 복수의 인증값들 각각을 저장할 수 있다. 예를 들어, 제1 인증값(Authentication value 1)은 제1 레지스터(232-1)에 저장되고, 제2 인증값(Authentication value 2)은 제2 레지스터(232-2)에 저장되며, 제n 인증값(Authentication value n)은 제n 레지스터(232-n)에 저장될 수 있다.A plurality of authentication values (Authentication value 1 to Authentication value n) generated through the authentication value generator 220 may be stored in the authentication value storage 230 (S300). The authentication value storage 230 may include a plurality of registers 232-1 to 232-n, and store each of a plurality of authentication values in each register. For example, the first authentication value (Authentication value 1) is stored in the first register 232-1, the second authentication value (Authentication value 2) is stored in the second register 232-2, and the n-th Authentication value n may be stored in the n-th register 232-n.

본 발명은, 이에 제한되지 않고, 하나의 레지스터(232-1)에 복수의 인증값들(Authentication value 1 내지 Authentication value n)이 저장될 수도 있다. 예를 들어, 도 5와 같이, 복수의 인증값들(Authentication value 1 내지 Authentication value n)이 하나의 레지스터(232-1)에 저장될 수도 있다. 하나의 레지스터에 저장되는 인증값들의 개수는 본 도면에 제한되지 않는다.The present invention is not limited thereto, and a plurality of authentication values (Authentication value 1 to Authentication value n) may be stored in one register 232-1. For example, as shown in FIG. 5 , a plurality of authentication values (Authentication value 1 to Authentication value n) may be stored in one register 232-1. The number of authentication values stored in one register is not limited in this figure.

보안 코어(210)는 복수의 인증값들(Authentication value 1 내지 Authentication value n)이 인증값 저장소(230)에 저장되면, 복수의 인증값들(Authentication value 1 내지 Authentication value n)을 잠금(Lock)시킨다. 예를 들어, 보안 코어(210)는 인증값 저장소(230)에 저장된 복수의 인증값들을 하드웨어 적으로 잠금시킬 수 있다.When the plurality of authentication values (Authentication value 1 to Authentication value n) are stored in the authentication value storage 230, the secure core 210 locks the plurality of authentication values (Authentication value 1 to Authentication value n). let it For example, the security core 210 may lock a plurality of authentication values stored in the authentication value storage 230 in terms of hardware.

더 자세히는, 보안 코어(210)는 인증값 저장소(230)에 저장된 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 외부로부터의 억세스를 차단시켜, 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 변조를 차단할 수 있다. 외부로부터의 억세스는 예를 들어, 마스터 컨트롤러(200) 내의 다른 코어의 억세스 혹은, 검증자(10)의 억세스 등이 될 수 있다.In more detail, the security core 210 blocks access from the outside to the plurality of authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230, and the plurality of authentication values (Authentication value n). Modification of 1 to Authentication value n) can be blocked. Access from the outside may be, for example, access of another core in the master controller 200 or access of the verifier 10 .

이후, 무결성 검사기(240)는 주기적으로 인증값 저장소(230)에 저장된 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사한다(S500). 무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기는 실시간이 될 수도 있다. 이에 제한되지 않고, 무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기는 검증자(10)가 플랫폼(20)에 증명 요청(Attestation request)을 송신하는 주기일 수도 있다. Thereafter, the integrity checker 240 periodically checks the integrity of a plurality of authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 (S500). A cycle in which the integrity checker 240 checks the integrity of the plurality of authentication values (Authentication value 1 to Authentication value n) may be real time. The integrity checker 240 checks the integrity of the plurality of authentication values (Authentication value 1 to Authentication value n) without being limited thereto, and the verifier 10 requests the platform 20 to verify the integrity. It may be a period of transmitting .

무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n) 각각에 대한 무결성을 검사하는 주기는 서로 다를 수도 있다. 예를 들어, 무결성 검사기(240)가 제1 인증값(Authentication value 1)에 대해서는 제1 주기로 무결성을 검사하고, 제2 인증값(Authentication value 2)에 대해서는 제2 주기로 무결성을 검사할 수 있다. 혹은, 무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n) 각각에 대한 무결성을 검사하는 주기는 서로 동일할 수도 있다. 예를 들어, 무결성 검사기(240)가 제1 인증값(Authentication value 1)에 대해서는 제1 주기로 무결성을 검사하고, 제2 인증값(Authentication value 2)에 대해서는 제2 주기로 무결성을 검사할 때, 제1 주기와 제2 주기가 서로 동일할 수도 있다.Periods at which the integrity checker 240 checks the integrity of each of the plurality of authentication values (Authentication value 1 to Authentication value n) may be different. For example, the integrity checker 240 may check the integrity of the first authentication value (Authentication value 1) in a first cycle, and the second authentication value (Authentication value 2) in a second cycle. Alternatively, the integrity checker 240 checks the integrity of each of the plurality of authentication values (Authentication value 1 to Authentication value n) may be the same. For example, when the integrity checker 240 checks the integrity of the first authentication value (Authentication value 1) in a first cycle and the second authentication value (Authentication value 2) in a second cycle, The first period and the second period may be identical to each other.

무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n) 각각에 대한 무결성을 검사하는 주기는 보안 코어(210)만이 제어할 수 있다.Only the secure core 210 can control a cycle in which the integrity checker 240 checks the integrity of each of the plurality of authentication values (Authentication value 1 to Authentication value n).

무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사한 결과(S600), 무결성이 유지되고 있다고 판단(Y)되면, 계속하여 무결성을 검사한다(S500).As a result of the integrity checker 240 examining the integrity of the plurality of authentication values (Authentication value 1 to Authentication value n) (S600), if it is determined that the integrity is maintained (Y), the integrity check continues (S500). ).

만약, 무결성 검사기(240)가 복수의 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사한 결과, 무결성이 유지되지 않다고 판단(N)하면, 무결성 검사기(240)는 공격 감지기(250)에 인증값의 무결성이 유지되지 않았음을 알리는 신호를 전송한다.If, as a result of the integrity checker 240 examining the integrity of a plurality of authentication values (Authentication value 1 to Authentication value n), if it is determined that the integrity is not maintained (N), the integrity checker 240 is an attack detector ( 250) transmits a signal informing that the integrity of the authentication value is not maintained.

무결성이 유지되지 않았음을 알리는 신호를 수신받은 공격 감지기(250)는 무결성이 유지되지 않은 인증값을 리셋시킨다. 예를 들어, 공격 감지기(250)는 무결성이 유지되지 않은 인증값이 0x2456781285라면, 00000000으로 리셋시킨다. 또한, 공격 감지기(250)는 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알린다(S700).Upon receiving the signal indicating that integrity is not maintained, the attack detector 250 resets the authentication value for which integrity is not maintained. For example, if the authentication value for which integrity is not maintained is 0x2456781285, the attack detector 250 resets it to 00000000. In addition, the attack detector 250 informs the security core 210 that the integrity of the authentication value is not maintained (S700).

공격 감지기(250)가 무결성이 유지되지 않은 인증값을 리셋시키는 동작과 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알리는 동작은 병렬적으로 수행될 수도 있으며, 순서를 가지고 수행될 수도 있다.The operation of the attack detector 250 resetting the authentication value whose integrity is not maintained and the operation of notifying the security core 210 that the integrity of the authentication value is not maintained may be performed in parallel or sequentially. It could be.

도 6은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 무결성 검사기를 설명하기 위한 블록도이다. 6 is a block diagram illustrating an integrity checker in a master controller of a trusted computing device according to some embodiments.

도 2, 도 4 및 도 6을 참조하면, 무결성 검사기(240)는 버진 태그 생성기(242)와 비교 태그 생성기(244)를 포함한다.Referring to FIGS. 2 , 4 and 6 , the integrity checker 240 includes a virgin tag generator 242 and a comparison tag generator 244 .

버진 태그 생성기(242)는 인증값 생성기(220)가 인증값들(Authentication value 1 내지 Authentication value n)을 생성하고, 생성된 인증값들(Authentication value 1 내지 Authentication value n)이 인증값 저장소(230)에 저장되면 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n) 각각에 대한 버진 태그(Virgin TAG)를 생성한다. 예를 들어, 버진 태그 생성기(242)는 제1 인증값(Authentication value 1)에 대한 제1 버진 태그(Virgin TAG 1), 및 제2 인증값(Authentication value 2)에 대한 제2 버진 태그(Virgin TAG 2)를 생성할 수 있다.In the virgin tag generator 242, the authentication value generator 220 generates authentication values (Authentication value 1 to Authentication value n), and the generated authentication values (Authentication value 1 to Authentication value n) are stored in the authentication value storage 230. ), a virgin tag for each of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 is created. For example, the virgin tag generator 242 generates a first virgin tag (Virgin TAG 1) for a first authentication value (Authentication value 1) and a second virgin tag (Virgin TAG 1) for a second authentication value (Authentication value 2). TAG 2) can be created.

버진 태그 생성기(242)는 HMAC, 해시 함수, CRC(Cyclic Redundancy Checking), 또는 패리티 비트를 통해 버진 태그(Virgin TAG)를 생성할 수 있다.The virgin tag generator 242 may generate a virgin tag through HMAC, hash function, cyclic redundancy checking (CRC), or parity bit.

또한, 비교 태그 생성기(244)는 무결성 검사기(240)가 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기마다, 인증값들(Authentication value 1 내지 Authentication value n)에 대한 실시간 태그(Real time TAG)를 생성한다. 예를 들어, 비교 태그 생성기(244)는 제1 인증값(Authentication value 1)에 대한 제1 실시간 태그(Real time TAG 1), 및 제2 인증값(Authentication value 2)에 대한 제2 실시간 태그(Real time TAG 2)를 생성할 수 있다.In addition, the comparison tag generator 244 checks the integrity of the authentication values (Authentication value 1 to Authentication value n) every cycle in which the integrity checker 240 checks the integrity of the authentication values (Authentication value 1 to Authentication value n). Create real time tag. For example, the comparison tag generator 244 includes a first real time tag (Real time TAG 1) for a first authentication value (Authentication value 1) and a second real time tag (Real time TAG 1) for a second authentication value (Authentication value 2). Real time TAG 2) can be created.

비교 태그 생성기(244)는 HMAC, 해시 함수, CRC(Cyclic Redundancy Checking), 또는 패리티 비트를 통해 실시간 태그(Real time TAG)를 생성할 수 있다.The comparison tag generator 244 may generate a real time tag through HMAC, hash function, Cyclic Redundancy Checking (CRC), or parity bit.

이때, 버진 태그 생성기(242)가 생성하는 버진 태그(Virgin TAG)와, 비교 태그 생성기(244)가 생성하는 실시간 태그(Real time TAG)는 동일한 방식으로 생성되어야 한다. 예를 들어, 버진 태그 생성기(242)가 버진 태그(Virgin TAG)를 CRC를 통해 생성한다면, 비교 태그 생성기(244) 역시, 실시간 태그(Real time TAG)를 CRC를 통해 생성해야 한다.At this time, a virgin tag generated by the virgin tag generator 242 and a real time tag generated by the comparison tag generator 244 must be generated in the same manner. For example, if the virgin tag generator 242 generates a virgin tag through CRC, the comparison tag generator 244 also needs to generate a real time tag through CRC.

이후, 비교기(246)를 통해, 무결성 검사기(240)가 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기마다, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)를 비교한다. 예를 들어, 비교기(246)는 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)를 비교한다. 또한, 예를 들어, 비교기(246)는 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)를 비교한다.Thereafter, through the comparator 246, the integrity checker 240 checks the integrity of authentication values (Authentication value 1 to Authentication value n) every cycle, real time tag (Real time TAG) and virgin tag (Virgin TAG) Compare For example, the comparator 246 compares a first real time tag (Real time TAG 1) and a first virgin tag (Virgin TAG 1). Also, for example, the comparator 246 compares the second real time tag (Real time TAG 2) with the second virgin tag (Virgin TAG 2).

이때, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)가 동일하다고 판단되면, 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성이 유지되고 있는 것으로 판단한다. 예를 들어, 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)가 동일하다고 판단되면, 제1 인증값(Authentication value 1)의 무결성이 유지되고 있는 것으로 판단한다. 또한, 예를 들어, 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)가 동일하다고 판단되면, 제2 인증값(Authentication value 2)의 무결성이 유지되고 있는 것으로 판단한다.At this time, if it is determined that the real time tag and the virgin tag are identical, the integrity of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 is maintained. judge For example, if it is determined that the first real time tag (Real time TAG 1) and the first virgin tag (Virgin TAG 1) are the same, it is determined that the integrity of the first authentication value (Authentication value 1) is maintained. Also, for example, if it is determined that the second real time tag (Real time TAG 2) and the second virgin tag (Virgin TAG 2) are the same, it is determined that the integrity of the second authentication value (Authentication value 2) is maintained. .

그리고, 계속하여 실시간 태그(Real time TAG)를 생성한다.Then, a real time tag is continuously generated.

만약, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)가 동일하지 않다고 판단되면, 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성이 유지되지 않음으로 판단할 수 있다. 예를 들어, 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)가 동일하지 않다고 판단되면, 제1 인증값(Authentication value 1)의 무결성이 유지되지 않은 것으로 판단한다. 또한, 예를 들어, 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)가 동일하지 않다고 판단되면, 제2 인증값(Authentication value 2)의 무결성이 유지되지 않은 것으로 판단한다.If it is determined that the real time tag and the virgin tag are not identical, the integrity of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 is not maintained. can be judged by For example, if it is determined that the first real time tag (Real time TAG 1) and the first virgin tag (Virgin TAG 1) are not identical, it is determined that the integrity of the first authentication value (Authentication value 1) is not maintained. Also, for example, if it is determined that the second real time tag (Real time TAG 2) and the second virgin tag (Virgin TAG 2) are not identical, it is determined that the integrity of the second authentication value (Authentication value 2) is not maintained. do.

이때, 무결성 검사기(240)는 공격 감지기(250)에 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n) 전부 혹은 일부가 무결성이 유지되지 않음을 알리는 신호를 보낸다. 이후, 무결성이 유지되지 않았음을 알리는 신호를 수신받은 공격 감지기(250)는 무결성이 유지되지 않은 인증값을 리셋시킨다. 예를 들어, 공격 감지기(250)는 무결성이 유지되지 않은 인증값이 0x2456781285라면, 00000000으로 리셋시킨다. 또한, 공격 감지기(250)는 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알린다.At this time, the integrity checker 240 sends a signal to the attack detector 250 informing that all or some of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 do not maintain integrity. Thereafter, the attack detector 250 receiving the signal indicating that integrity is not maintained resets the authentication value for which integrity is not maintained. For example, if the authentication value for which integrity is not maintained is 0x2456781285, the attack detector 250 resets it to 00000000. In addition, the attack detector 250 informs the security core 210 that the integrity of the authentication value is not maintained.

도 7은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 무결성 검사기의 동작을 설명하기 위한 흐름도이다.7 is a flowchart illustrating an operation of an integrity checker in a master controller of a trusted computing device according to some embodiments.

도 2, 도 4, 도 6, 및 도 7을 참조하면, 버진 태그 생성기(242)는 인증값 생성기(220)가 인증값들(Authentication value 1 내지 Authentication value n)을 생성하고, 생성된 인증값들(Authentication value 1 내지 Authentication value n)이 인증값 저장소(230)에 저장되면 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n) 각각에 대한 버진 태그(Virgin TAG)를 생성한다(S502). 예를 들어, 버진 태그 생성기(242)는 제1 인증값(Authentication value 1)에 대한 제1 버진 태그(Virgin TAG 1), 및 제2 인증값(Authentication value 2)에 대한 제2 버진 태그(Virgin TAG 2)를 생성할 수 있다.Referring to FIGS. 2, 4, 6, and 7 , the virgin tag generator 242 generates authentication values (Authentication value 1 to Authentication value n) by the authentication value generator 220, and the generated authentication values. When authentication value 1 through authentication value n are stored in the authentication value storage 230, a virgin tag for each of the authentication values stored in the authentication value storage 230 (Authentication value 1 through authentication value n) is stored. Create (S502). For example, the virgin tag generator 242 generates a first virgin tag (Virgin TAG 1) for a first authentication value (Authentication value 1) and a second virgin tag (Virgin TAG 1) for a second authentication value (Authentication value 2). TAG 2) can be created.

버진 태그 생성기(242)는 HMAC, 해시 함수, CRC(Cyclic Redundancy Checking), 또는 패리티 비트를 통해 버진 태그(Virgin TAG)를 생성할 수 있다.The virgin tag generator 242 may generate a virgin tag through HMAC, hash function, cyclic redundancy checking (CRC), or parity bit.

또한, 비교 태그 생성기(244)는 무결성 검사기(240)가 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기마다, 인증값들(Authentication value 1 내지 Authentication value n)에 대한 실시간 태그(Real time TAG)를 생성한다(S504). 예를 들어, 비교 태그 생성기(244)는 제1 인증값(Authentication value 1)에 대한 제1 실시간 태그(Real time TAG 1), 및 제2 인증값(Authentication value 2)에 대한 제2 실시간 태그(Real time TAG 2)를 생성할 수 있다.In addition, the comparison tag generator 244 checks the integrity of the authentication values (Authentication value 1 to Authentication value n) every cycle in which the integrity checker 240 checks the integrity of the authentication values (Authentication value 1 to Authentication value n). A real time tag is created (S504). For example, the comparison tag generator 244 includes a first real time tag (Real time TAG 1) for a first authentication value (Authentication value 1) and a second real time tag (Real time TAG 1) for a second authentication value (Authentication value 2). Real time TAG 2) can be created.

비교 태그 생성기(244)는 HMAC, 해시 함수, CRC(Cyclic Redundancy Checking), 또는 패리티 비트를 통해 실시간 태그(Real time TAG)를 생성할 수 있다.The comparison tag generator 244 may generate a real time tag through HMAC, hash function, Cyclic Redundancy Checking (CRC), or parity bit.

이때, 버진 태그 생성기(242)가 생성하는 버진 태그(Virgin TAG)와, 비교 태그 생성기(244)가 생성하는 실시간 태그(Real time TAG)는 동일한 방식으로 생성되어야 한다. 예를 들어, 버진 태그 생성기(242)가 버진 태그(Virgin TAG)를 CRC를 통해 생성한다면, 비교 태그 생성기(244) 역시, 실시간 태그(Real time TAG)를 CRC를 통해 생성해야 한다.At this time, a virgin tag generated by the virgin tag generator 242 and a real time tag generated by the comparison tag generator 244 must be generated in the same manner. For example, if the virgin tag generator 242 generates a virgin tag through CRC, the comparison tag generator 244 also needs to generate a real time tag through CRC.

이후, 비교기(246)를 통해, 무결성 검사기(240)가 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성을 검사하는 주기마다, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)를 비교한다(S506). 예를 들어, 비교기(246)는 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)를 비교한다. 또한, 예를 들어, 비교기(246)는 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)를 비교한다.Thereafter, through the comparator 246, the integrity checker 240 checks the integrity of authentication values (Authentication value 1 to Authentication value n) every cycle, real time tag (Real time TAG) and virgin tag (Virgin TAG) Compare (S506). For example, the comparator 246 compares a first real time tag (Real time TAG 1) and a first virgin tag (Virgin TAG 1). Also, for example, the comparator 246 compares the second real time tag (Real time TAG 2) with the second virgin tag (Virgin TAG 2).

이때, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)를 비교한 결과를 확인한다(S602). 만약, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)가 동일하다고 판단(Y)되면, 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성이 유지되고 있는 것으로 판단한다. 예를 들어, 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)가 동일하다고 판단되면, 제1 인증값(Authentication value 1)의 무결성이 유지되고 있는 것으로 판단한다. 또한, 예를 들어, 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)가 동일하다고 판단되면, 제2 인증값(Authentication value 2)의 무결성이 유지되고 있는 것으로 판단한다.At this time, a result of comparing the real time tag and the virgin tag is checked (S602). If it is determined that the real time tag and the virgin tag are identical (Y), the integrity of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 is maintained. judge what is going on For example, if it is determined that the first real time tag (Real time TAG 1) and the first virgin tag (Virgin TAG 1) are the same, it is determined that the integrity of the first authentication value (Authentication value 1) is maintained. Also, for example, if it is determined that the second real time tag (Real time TAG 2) and the second virgin tag (Virgin TAG 2) are the same, it is determined that the integrity of the second authentication value (Authentication value 2) is maintained. .

그리고, 계속하여 실시간 태그(Real time TAG)를 생성한다(S504).Then, a real time tag is continuously generated (S504).

실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)를 비교한 결과를 확인한 결과(S602), 만약, 실시간 태그(Real time TAG)와 버진 태그(Virgin TAG)가 동일하지 않다고 판단(N)되면, 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n)에 대한 무결성이 유지되지 않음으로 판단할 수 있다(S604). 예를 들어, 제1 실시간 태그(Real time TAG 1)와 제1 버진 태그(Virgin TAG 1)가 동일하지 않다고 판단되면, 제1 인증값(Authentication value 1)의 무결성이 유지되지 않은 것으로 판단한다. 또한, 예를 들어, 제2 실시간 태그(Real time TAG 2)와 제2 버진 태그(Virgin TAG 2)가 동일하지 않다고 판단되면, 제2 인증값(Authentication value 2)의 무결성이 유지되지 않은 것으로 판단한다.As a result of checking the result of comparing the real time TAG and the virgin tag (S602), if it is determined that the real time TAG and the virgin tag are not identical (N), , It may be determined that the integrity of authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 is not maintained (S604). For example, if it is determined that the first real time tag (Real time TAG 1) and the first virgin tag (Virgin TAG 1) are not identical, it is determined that the integrity of the first authentication value (Authentication value 1) is not maintained. Also, for example, if it is determined that the second real time tag (Real time TAG 2) and the second virgin tag (Virgin TAG 2) are not identical, it is determined that the integrity of the second authentication value (Authentication value 2) is not maintained. do.

이때, 무결성 검사기(240)는 공격 감지기(250)에 인증값 저장소(230)에 저장된 인증값들(Authentication value 1 내지 Authentication value n) 전부 혹은 일부가 무결성이 유지되지 않음을 알리는 신호를 보낸다. 이후, 무결성이 유지되지 않았음을 알리는 신호를 수신받은 공격 감지기(250)는 무결성이 유지되지 않은 인증값을 리셋시킨다. 예를 들어, 공격 감지기(250)는 무결성이 유지되지 않은 인증값이 0x2456781285라면, 00000000으로 리셋시킨다. 또한, 공격 감지기(250)는 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알린다.At this time, the integrity checker 240 sends a signal to the attack detector 250 informing that all or some of the authentication values (Authentication value 1 to Authentication value n) stored in the authentication value storage 230 do not maintain integrity. Thereafter, the attack detector 250 receiving the signal indicating that integrity is not maintained resets the authentication value for which integrity is not maintained. For example, if the authentication value for which integrity is not maintained is 0x2456781285, the attack detector 250 resets it to 00000000. In addition, the attack detector 250 informs the security core 210 that the integrity of the authentication value is not maintained.

도 8은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치의 마스터 컨트롤러 내 공격 감지기를 설명하기 위한 블록도이다.8 is a block diagram illustrating an attack detector in a master controller of a trusted computing device according to some embodiments.

도 8을 참조하면, 공격 감지기(250)는 리셋 모듈(252)과 알림 모듈(254)을 포함한다.Referring to FIG. 8 , the attack detector 250 includes a reset module 252 and a notification module 254 .

무결성 검사기(240)로부터 무결성이 유지되지 않았음을 알리는 신호를 수신받은 공격 감지기(250)의 리셋 모듈(252)은 무결성이 유지되지 않은 인증값을 리셋시킨다. 예를 들어, 리셋 모듈(252)은 무결성이 유지되지 않은 인증값이 0x2456781285라면, 00000000으로 리셋시킨다. The reset module 252 of the attack detector 250 receiving the signal indicating that integrity is not maintained from the integrity checker 240 resets the authentication value for which integrity is not maintained. For example, if the authentication value for which integrity is not maintained is 0x2456781285, the reset module 252 resets it to 00000000.

또한, 알림 모듈(254)은 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알린다.In addition, the notification module 254 notifies the secure core 210 that the integrity of the authentication value is not maintained.

무결성이 유지되지 않은 인증값을 리셋시키는 리셋 모듈(252)의 동작과 보안 코어(210)에 인증값에 대한 무결성이 유지되지 않았음을 알리는 알림 모듈(254)의 동작은 병렬적으로 수행될 수도 있으며, 순서를 가지고 수행될 수도 있다.The operation of the reset module 252 resetting the authentication value whose integrity is not maintained and the operation of the notification module 254 notifying the security core 210 that the integrity of the authentication value is not maintained may be performed in parallel. and may be performed sequentially.

도 9는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 시스템을 도시한 예시적인 도면이다.9 is an exemplary diagram illustrating a system to which a trusted computing device according to some embodiments is applied.

도 9는 본 발명의 일 실시예에 따른 트러스티드 컴퓨팅 장치가 적용된 시스템(1000)을 도시한 도면이다. 도 9의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 9의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.9 is a diagram illustrating a system 1000 to which a trusted computing device according to an embodiment of the present invention is applied. The system 1000 of FIG. 9 is basically a mobile phone such as a mobile phone, a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an internet of things (IOT) device. (mobile) system. However, the system 1000 of FIG. 9 is not necessarily limited to a mobile system, and can be used for vehicles such as a personal computer, a laptop computer, a server, a media player, or a navigation system. It may be an automotive device or the like.

도 9를 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.Referring to FIG. 9 , the system 1000 may include a main processor 1100, memories 1200a and 1200b, and storage devices 1300a and 1300b, and additionally includes an image capturing device. 1410, user input device 1420, sensor 1430, communication device 1440, display 1450, speaker 1460, power supplying device 1470 and connections It may include one or more of the connecting interfaces 1480 .

메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The main processor 1100 may control the overall operation of the system 1000, and more specifically, the operation of other components constituting the system 1000. The main processor 1100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(1130)를 더 포함할 수 있다. 이와 같은 가속기(1130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The main processor 1100 may include one or more CPU cores 1110 and may further include a controller 1120 for controlling the memories 1200a and 1200b and/or the storage devices 1300a and 1300b. Depending on embodiments, the main processor 1100 may further include an accelerator 1130 that is a dedicated circuit for high-speed data operations such as artificial intelligence (AI) data operations. Such an accelerator 1130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), and may be physically independent from other components of the main processor 1100. It may be implemented as a separate chip.

메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM, MRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 1200a and 1200b may be used as main memory devices of the system 1000 and may include volatile memories such as SRAM and/or DRAM, but may include non-volatile memories such as flash memory, PRAM, MRAM, and/or RRAM. may also include The memories 1200a and 1200b may also be implemented in the same package as the main processor 1100 .

스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The storage devices 1300a and 1300b may function as non-volatile storage devices that store data regardless of whether or not power is supplied, and may have a relatively large storage capacity compared to the memories 1200a and 1200b. The storage devices 1300a and 1300b may include storage controllers 1310a and 1310b and non-volatile memories (NVMs) 1320a and 1320b that store data under the control of the storage controllers 1310a and 1310b. can Non-volatile memory (1320a, 1320b) may include a flash memory of a 2-dimensional (2D) structure or a 3-dimensional (3D) V-NAND (Vertical NAND) structure, but other types of PRAM and / or RRAM, etc. It may also include non-volatile memory.

스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.The storage devices 1300a and 1300b may be included in the system 1000 while being physically separated from the main processor 1100 or may be implemented in the same package as the main processor 1100 . In addition, the storage devices 1300a and 1300b have a form such as a solid state device (SSD) or a memory card, so that other components of the system 1000 can be accessed through an interface such as a connection interface 1480 to be described later. It may also be coupled to be detachable with the . The storage devices 1300a and 1300b may be devices to which standard rules such as UFS (Universal Flash Storage), eMMC (embedded multi-media card), or NVMe (non-volatile memory express) are applied, but are not necessarily limited thereto. It's not.

스토리지 장치(1300a, 1300b)는 도시되진 않았으나, 도 1 내지 도 8을 통해 설명된 마스터 컨트롤러(200)를 포함할 수 있다.Although not shown, the storage devices 1300a and 1300b may include the master controller 200 described with reference to FIGS. 1 to 8 .

촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing device 1410 may capture a still image or a video, and may be a camera, a camcorder, and/or a webcam.

사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The user input device 1420 may receive various types of data input from a user of the system 1000, and may use a touch pad, a keypad, a keyboard, a mouse, and/or It may be a microphone or the like.

센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The sensor 1430 can detect various types of physical quantities that can be acquired from the outside of the system 1000 and convert the detected physical quantities into electrical signals. The sensor 1430 may be a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The communication device 1440 may transmit and receive signals with other devices outside the system 1000 according to various communication protocols. Such a communication device 1440 may be implemented by including an antenna, a transceiver, and/or a modem (MODEM).

디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The display 1450 and the speaker 1460 may function as output devices that output visual information and auditory information to the user of the system 1000, respectively.

전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리(도시 안함) 및/또는외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.The power supply device 1470 may appropriately convert power supplied from a battery (not shown) and/or an external power source built into the system 1000 and supply the power to each component of the system 1000 .

연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 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, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.The connection interface 1480 may provide a connection between the system 1000 and an external device connected to the system 1000 and capable of exchanging data with the system 1000. The connection interface 1480 is an Advanced Technology (ATA) Attachment), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI express (PCIe), NVMe, IEEE 1394, It can be implemented in various interface methods such as USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC, UFS, eUFS (embedded universal flash storage), CF (compact flash) card interface, etc. there is.

도 10는 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 스토리지 시스템을 도시한 예시적인 도면이다.10 is an exemplary diagram illustrating a storage system to which a trusted computing device according to some embodiments is applied.

도 10은 본 발명의 예시적인 실시예에 따른 트러스티드 컴퓨팅 장치가 적용된 호스트-스토리지 시스템(2000)을 나타내는 블록도이다.10 is a block diagram illustrating a host-storage system 2000 to which a trusted computing device according to an exemplary embodiment of the present invention is applied.

호스트-스토리지 시스템(2000)은 호스트(2100) 및 스토리지 장치(2200)를 포함할 수 있다. 호스트(2100)는 도 1 내지 도 8을 통해 상술된 검증자(10)일 수 있다. 또한, 스토리지 장치(2200)는 도 1 내지 도 8을 통해 상술된 트러스티드 컴퓨팅 장치(20)일 수 있다.The host-storage system 2000 may include a host 2100 and a storage device 2200 . The host 2100 may be the verifier 10 described above with reference to FIGS. 1 to 8 . Also, the storage device 2200 may be the trusted computing device 20 described above with reference to FIGS. 1 to 8 .

또한, 스토리지 장치(2200)는 스토리지 컨트롤러(2210) 및 비휘발성 메모리 (NVM)(2220)를 포함할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 호스트(2100)는 호스트 컨트롤러(2110) 및 호스트 메모리(2120)를 포함할 수 있다. 호스트 메모리(2120)는 스토리지 장치(2200)로 전송될 데이터, 혹은 스토리지 장치(2200)로부터 전송된 데이터를 임시로 저장하기 위한 버퍼 메모리로서 기능할 수 있다.Also, the storage device 2200 may include a storage controller 2210 and a nonvolatile memory (NVM) 2220 . Also, according to an exemplary embodiment of the present invention, the host 2100 may include a host controller 2110 and a host memory 2120 . The host memory 2120 may function as a buffer memory for temporarily storing data to be transmitted to the storage device 2200 or data transmitted from the storage device 2200 .

스토리지 장치(2200)는 호스트(2100)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 장치(2200)는 SSD(Solid State Drive), 임베디드(embedded) 메모리 및 착탈 가능한 외장(external) 메모리 중 적어도 하나를 포함할 수 있다. 스토리지 장치(2200)가 SSD인 경우, 스토리지 장치(2200)는 NVMe(non-volatile memory express) 표준을 따르는 장치일 수 있다. 스토리지 장치(2200)가 임베디드 메모리 혹은 외장(external) 메모리인 경우, 스토리지 장치(2200)는 UFS(universal flash storage) 혹은 eMMC(embedded multi-media card) 표준을 따르는 장치일 수 있다. 호스트(2100)와 스토리지 장치(2200)는 각각 채용된 표준 프로토콜에 따른 패킷을 생성하고 이를 전송할 수 있다.The storage device 2200 may include storage media for storing data according to a request from the host 2100 . As an example, the storage device 2200 may include at least one of a solid state drive (SSD), an embedded memory, and a removable external memory. When the storage device 2200 is an SSD, the storage device 2200 may be a device conforming to the non-volatile memory express (NVMe) standard. When the storage device 2200 is an embedded memory or an external memory, the storage device 2200 may be a device conforming to a universal flash storage (UFS) standard or an embedded multi-media card (eMMC) standard. The host 2100 and the storage device 2200 may each generate and transmit a packet according to an adopted standard protocol.

스토리지 장치(2200)의 비휘발성 메모리(2220)가 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 스토리지 장치(2200)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 장치(2200)는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용될 수 있다.When the nonvolatile memory 2220 of the storage device 2200 includes a flash memory, the flash memory may include a 2D NAND memory array or a 3D (or vertical) NAND (VNAND) memory array. As another example, the storage device 2200 may include other various types of non-volatile memories. For example, the storage device 2200 may include a magnetic RAM (MRAM), a spin-transfer torque MRAM (Spin-Transfer Torgue MRAM), a conductive bridging RAM (CBRAM), a ferroelectric RAM (FeRAM), a phase RAM (PRAM), and a resistive memory ( Resistive RAM) and other various types of memory may be applied.

일 실시예에 따라, 호스트 컨트롤러(2110)와 호스트 메모리(2120)는 별도의 반도체 칩으로 구현될 수 있다. 또는, 일부 실시예들에서, 호스트 컨트롤러(2110)와 호스트 메모리(2120)는 동일한 반도체 칩에 집적될 수 있다. 일 예로서, 호스트 컨트롤러(2110)는 애플리케이션 프로세서(Application Processor)에 구비되는 다수의 모듈들 중 어느 하나일 수 있으며, 상기 애플리케이션 프로세서는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 또한, 호스트 메모리(2120)는 상기 애플리케이션 프로세서 내에 구비되는 임베디드 메모리이거나, 또는 상기 애플리케이션 프로세서의 외부에 배치되는 비휘발성 메모리 또는 메모리 모듈일 수 있다.According to an embodiment, the host controller 2110 and the host memory 2120 may be implemented as separate semiconductor chips. Alternatively, in some embodiments, the host controller 2110 and the host memory 2120 may be integrated on the same semiconductor chip. As an example, the host controller 2110 may be any one of a plurality of modules included in an application processor, and the application processor may be implemented as a system on chip (SoC). In addition, the host memory 2120 may be an embedded memory included in the application processor, or may be a non-volatile memory or a memory module disposed outside the application processor.

호스트 컨트롤러(2110)는 호스트 메모리(2120)의 버퍼 영역의 데이터(예컨대, 기록 데이터)를 비휘발성 메모리(2220)에 저장하거나, 비휘발성 메모리(2220)의 데이터(예컨대, 독출 데이터)를 버퍼 영역에 저장하는 동작을 관리할 수 있다.The host controller 2110 stores data (eg, write data) of the buffer area of the host memory 2120 in the non-volatile memory 2220 or data (eg, read data) of the non-volatile memory 2220 in the buffer area. You can manage the operation of saving to .

스토리지 컨트롤러(2210)는 호스트 인터페이스(2211), 메모리 인터페이스(2212) 및 CPU(central processing unit)(2213)를 포함할 수 있다. 또한, 스토리지 컨트롤러(2210)는 플래시 변환 레이어(Flash Translation Layer; FTL)(2214), 마스터 컨트롤러(2215), 버퍼 메모리(2216), ECC(error correction code)(2217) 엔진 및 암복호화(Encryption/Decryption) 엔진(2218)을 더 포함할 수 있다. 스토리지 컨트롤러(2210)는 플래시 변환 레이어(FTL)(2214)가 로딩되는 워킹 메모리(미도시)를 더 포함할 수 있으며, CPU(2213)가 플래시 변환 레이어를 실행하는 것에 의해 비휘발성 메모리(2220)에 대한 데이터 기록 및 독출 동작이 제어될 수 있다.The storage controller 2210 may include a host interface 2211 , a memory interface 2212 , and a central processing unit (CPU) 2213 . In addition, the storage controller 2210 includes a flash translation layer (FTL) 2214, a master controller 2215, a buffer memory 2216, an error correction code (ECC) 2217 engine, and encryption/decryption (Encryption/Decryption). Decryption) engine 2218 may be further included. The storage controller 2210 may further include a working memory (not shown) into which the flash translation layer (FTL) 2214 is loaded, and the non-volatile memory 2220 is stored by the CPU 2213 executing the flash translation layer. Data write and read operations for may be controlled.

호스트 인터페이스(2211)는 호스트(2100)와 패킷(packet)을 송수신할 수 있다. 호스트(2100)로부터 호스트 인터페이스(2211)로 전송되는 패킷은 커맨드(command) 혹은 비휘발성 메모리(2220)에 기록될 데이터 등을 포함할 수 있으며, 호스트 인터페이스(2211)로부터 호스트(2100)로 전송되는 패킷은 커맨드에 대한 응답(response) 혹은 비휘발성 메모리(2220)로부터 독출된 데이터 등을 포함할 수 있다. 메모리 인터페이스(2212)는 비휘발성 메모리(2220)에 기록될 데이터를 비휘발성 메모리(2220)로 송신하거나, 비휘발성 메모리(2220)로부터 독출된 데이터를 수신할 수 있다. 이러한 메모리 인터페이스(2212)는 토글(Toggle) 혹은 온파이(Open NAND Flash Interface; ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.The host interface 2211 may transmit and receive packets to and from the host 2100 . A packet transmitted from the host 2100 to the host interface 2211 may include a command or data to be written to the non-volatile memory 2220, and is transmitted from the host interface 2211 to the host 2100. The packet may include a response to a command or data read from the non-volatile memory 2220 . The memory interface 2212 may transmit data to be written in the nonvolatile memory 2220 to the nonvolatile memory 2220 or may receive data read from the nonvolatile memory 2220 . The memory interface 2212 may be implemented to comply with standard protocols such as Toggle or Open NAND Flash Interface (ONFI).

플래시 변환 계층(2214)은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 어드레스 매핑 동작은 호스트(2100)로부터 수신한 논리 어드레스(logical address)를, 비휘발성 메모리(2220) 내에 데이터를 실제로 저장하는 데 사용되는 물리 어드레스(physical address)로 바꾸는 동작이다. 웨어-레벨링은 비휘발성 메모리(2220) 내의 블록(block)들이 균일하게 사용되도록 하여 특정 블록의 과도한 열화를 방지하기 위한 기술로, 예시적으로 물리 블록(physical block)들의 소거 카운트들을 밸런싱하는 펌웨어 기술을 통해 구현될 수 있다. 가비지 콜렉션은, 블록의 유효 데이터를 새 블록에 복사한 후 기존 블록을 소거(erase)하는 방식을 통해 비휘발성 메모리(2220) 내에서 사용 가능한 용량을 확보하기 위한 기술이다.The flash translation layer 2214 may perform various functions such as address mapping, wear-leveling, and garbage collection. The address mapping operation is an operation of changing a logical address received from the host 2100 into a physical address used to actually store data in the nonvolatile memory 2220 . Wear-leveling is a technology for preventing excessive deterioration of a specific block by uniformly using blocks in the non-volatile memory 2220, exemplarily a firmware technology for balancing erase counts of physical blocks can be implemented through Garbage collection is a technique for securing usable capacity in the non-volatile memory 2220 by copying valid data of a block to a new block and then erasing the old block.

마스터 컨트롤러(2215)는 도 1 내지 도 8을 통해 상술된 마스터 컨트롤러(200)일 수 있다.The master controller 2215 may be the master controller 200 described above with reference to FIGS. 1 to 8 .

버퍼 메모리(2216)는 스토리지 컨트롤러(2210) 내에 구비되는 구성일 수 있으나, 스토리지 컨트롤러(2210)의 외부에 배치되어도 무방하다.The buffer memory 2216 may be included in the storage controller 2210, but may be disposed outside the storage controller 2210.

ECC 엔진(2217)은 비휘발성 메모리(2220)로부터 독출되는 독출 데이터에 대한 오류 검출 및 정정 기능을 수행할 수 있다. 보다 구체적으로, ECC 엔진(2217)은 비휘발성 메모리(2220)에 기입될 기입 데이터에 대하여 패리티 비트(parity bit)들을 생성할 수 있으며, 이와 같이 생성된 패리티 비트들은 기입 데이터와 함께 비휘발성 메모리(2220) 내에 저장될 수 있다. 비휘발성 메모리(2220)로부터의 데이터 독출 시, ECC 엔진(2217)은 독출 데이터와 함께 비휘발성 메모리(2220)로부터 독출되는 패리티 비트들을 이용하여 독출 데이터의 에러를 정정하고, 에러가 정정된 독출 데이터를 출력할 수 있다.The ECC engine 2217 may perform error detection and correction functions for read data read from the nonvolatile memory 2220 . More specifically, the ECC engine 2217 may generate parity bits for write data to be written in the non-volatile memory 2220, and the parity bits generated in this way are used together with the write data in the non-volatile memory ( 2220) can be stored in. When data is read from the non-volatile memory 2220, the ECC engine 2217 corrects an error in the read data by using parity bits read from the non-volatile memory 2220 together with the read data, and the error-corrected read data can output

암복호화 엔진(2218)은, 스토리지 컨트롤러(2210)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나의 동작을 수행할 수 있다.The encryption/decryption engine 2218 may perform at least one of an encryption operation and a decryption operation on data input to the storage controller 2210 .

예를 들어, 암복호화 엔진(2218)은, 대칭 키 알고리즘(symmetric-key algorithm)를 이용하여 암호화 동작 및/또는 복호화 동작을 수행할 수 있다. 이때, 암복호화 엔진(2218)은 예를 들어, AES(Advanced Encryption Standard) 알고리즘 또는 DES(Data Encryption Standard) 알고리즘을 이용하여, 암호화 및/또는 복호화 동작을 수행할 수 있다.For example, the encryption/decryption engine 2218 may perform an encryption operation and/or a decryption operation using a symmetric-key algorithm. In this case, the encryption/decryption engine 2218 may perform an encryption and/or decryption operation using, for example, an Advanced Encryption Standard (AES) algorithm or a Data Encryption Standard (DES) algorithm.

또한, 예를 들어, 암복호화 엔진(2218)은 공개키 암호화 알고리즘을 이용하여 암호화 동작 및/또는 복호화 동작을 수행할 수 있다. 이때, 암호화 엔진(2218)은 예를 들어, 암호화 동작 시 공개키를 이용하여 암호화를 수행하고, 복호화 동작 시 비밀키를 이용하여 복호화를 수행할 수 있다. 예를 들어, 암복호화 엔진(2218)은 RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptography), 또는 DH(Diffie-Hellman)  암호화 알고리즘을 이용할 수 있다.Also, for example, the encryption/decryption engine 2218 may perform an encryption operation and/or a decryption operation using a public key encryption algorithm. In this case, the encryption engine 2218 may perform encryption using a public key during an encryption operation, and decryption using a private key during a decryption operation, for example. For example, the encryption/decryption engine 2218 may use Rivest Shamir Adleman (RSA), Elliptic Curve Cryptography (ECC), or Diffie-Hellman (DH) encryption algorithms.

이에 제한되지 않고, 암복호화 엔진(218)은 HE(Homomorphic Encryption), PQC(Post-Quantum Cryptography), 또는 FE(Functional Encryption) 등과 같은 양자 암호 기술을 이용하여, 암호화 동작 및/또는 복호화 동작을 수행할 수 있다.Without being limited thereto, the encryption/decryption engine 218 performs an encryption operation and/or a decryption operation using a quantum cryptography technology such as Homomorphic Encryption (HE), Post-Quantum Cryptography (PQC), or Functional Encryption (FE). can do.

도 11은 몇몇 실시예들에 따른 트러스티드 컴퓨팅 장치가 적용된 데이터 센터를 도시한 예시적인 도면이다.11 is an exemplary diagram illustrating a data center to which a trusted computing device according to some embodiments is applied.

도 11을 참조하면, 데이터 센터(3000)는 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 스토리지 센터라고 지칭될 수도 있다. 데이터 센터(3000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(3000)는 애플리케이션 서버들(3100_1 내지 3100_n) 및 스토리지 서버들(3200_1 내지 3200_m)을 포함할 수 있다. 애플리케이션 서버들(3100_1 내지 3100_n)의 개수 및 스토리지 서버들(3200_1 내지 3200_m)의 개수는 실시예에 따라 다양하게 선택될 수 있고, 애플리케이션 서버들(3100_1 내지 3100_n)의 개수 및 스토리지 서버들(3200_1 내지 3200_m)의 개수는 서로 다를 수 있다.Referring to FIG. 11 , a data center 3000 is a facility that stores various types of data and provides services, and may also be referred to as a data storage center. The data center 3000 may be a system for operating a search engine and database, and may be a computing system used by companies such as banks or government agencies. The data center 3000 may include application servers 3100_1 to 3100_n and storage servers 3200_1 to 3200_m. The number of application servers 3100_1 to 3100_n and the number of storage servers 3200_1 to 3200_m may be variously selected according to embodiments, and the number of application servers 3100_1 to 3100_n and storage servers 3200_1 to 3200_m 3200_m) may be different from each other.

애플리케이션 서버(3100) 또는 스토리지 서버(3200)는 프로세서(3110, 3210) 및 메모리(3120, 3220) 중 적어도 하나를 포함할 수 있다. 스토리지 서버(3200)를 예시로 설명하면, 프로세서(3210)는 스토리지 서버(3200)의 전반적인 동작을 제어할 수 있고, 메모리(3220)에 액세스하여 메모리(3220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 메모리(3220)는 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)일 수 있다. 실시예에 따라, 스토리지 서버(3200)에 포함되는 프로세서(3210)의 개수 및 메모리(3220)의 개수는 다양하게 선택될 수 있다. 일 실시예에서, 프로세서(3210)와 메모리(3220)는 프로세서-메모리 페어를 제공할 수 있다. 일 실시예에서, 프로세서(3210)와 메모리(3220)의 개수는 서로 다를 수도 있다. 프로세서(3210)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 스토리지 서버(3200)에 대한 상기 설명은, 애플리케이션 서버(3100)에도 유사하게 적용될 수 있다. 실시예에 따라, 애플리케이션 서버(3100)는 스토리지 장치(3150)를 포함하지 않을 수도 있다. 스토리지 서버(3200)는 적어도 하나 이상의 스토리지 장치(3250)를 포함할 수 있다. 스토리지 서버(3200)에 포함되는 스토리지 장치(3250)의 개수는 실시예에 따라 다양하게 선택될 수 있다.The application server 3100 or the storage server 3200 may include at least one of processors 3110 and 3210 and memories 3120 and 3220 . Taking the storage server 3200 as an example, the processor 3210 may control the overall operation of the storage server 3200, access the memory 3220, and send instructions and/or data loaded into the memory 3220. can run Memory 3220 includes DDR double data rate synchronous DRAM (SDRAM), high bandwidth memory (HBM), hybrid memory cube (HMC), dual in-line memory module (DIMM), Optane DIMM, and/or non-volatile DIMM (NVMDIMM). ) can be. According to embodiments, the number of processors 3210 and memories 3220 included in the storage server 3200 may be variously selected. In one embodiment, processor 3210 and memory 3220 may provide a processor-memory pair. In one embodiment, the number of processors 3210 and memories 3220 may be different from each other. Processor 3210 may include a single core processor or a multi-core processor. The above description of the storage server 3200 may be similarly applied to the application server 3100 . According to embodiments, the application server 3100 may not include the storage device 3150. The storage server 3200 may include one or more storage devices 3250 . The number of storage devices 3250 included in the storage server 3200 may be variously selected according to embodiments.

애플리케이션 서버들(3100_1 내지 3100_n) 및 스토리지 서버들(3200_1 내지 3200_m)은 네트워크(3300)를 통해 서로 통신할 수 있다. 네트워크(3300)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 상대적으로 고속의 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(3300)의 액세스 방식에 따라 스토리지 서버들(3200_1 내지 3200_m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.The application servers 3100_1 to 3100_n and the storage servers 3200_1 to 3200_m may communicate with each other through the network 3300 . The network 3300 may be implemented using Fiber Channel (FC) or Ethernet. At this time, FC is a medium used for relatively high-speed data transmission, and an optical switch providing high performance/high availability may be used. According to the access method of the network 3300, the storage servers 3200_1 to 3200_m may be provided as file storage, block storage, or object storage.

일 실시예에서, 네트워크(3300)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용하고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 다른 예를 들어, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 다른 실시예에서, 네트워크(3300)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들어, 네트워크(3300)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.In one embodiment, network 3300 may be a storage-only network, such as a Storage Area Network (SAN). For example, the SAN may be an FC-SAN that uses an FC network and is implemented according to FC Protocol (FCP). As another example, the SAN may be an IP-SAN using a TCP/IP network and implemented according to the iSCSI (SCSI over TCP/IP or Internet SCSI) protocol. In another embodiment, network 3300 may be a generic network such as a TCP/IP network. For example, the network 3300 may be implemented according to protocols such as FC over Ethernet (FCoE), Network Attached Storage (NAS), and NVMe over Fabrics (NVMe-oF).

이하에서는, 애플리케이션 서버(3100_1) 및 스토리지 서버(3200_1)를 중심으로 설명하기로 한다. 애플리케이션 서버(3100_1)에 대한 설명은 다른 애플리케이션 서버(3100_n)에도 적용될 수 있고, 스토리지 서버(3200_1)에 대한 설명은 다른 스토리지 서버(3200_m)에도 적용될 수 있다.Hereinafter, the application server 3100_1 and the storage server 3200_1 will be mainly described. The description of the application server 3100_1 may be applied to other application servers 3100_n, and the description of the storage server 3200_1 may also be applied to other storage servers 3200_m.

애플리케이션 서버(3100_1)는 사용자 또는 클라이언트가 저장 요청한 데이터를 네트워크(3300)를 통해 스토리지 서버들(3200_1 내지 3200_m) 중 하나에 저장할 수 있다. 또한, 애플리케이션 서버(3100_1)는 사용자 또는 클라이언트가 독출 요청한 데이터를 스토리지 서버들(3200_1 내지 3200_m) 중 하나로부터 네트워크(3300)를 통해 획득할 수 있다. 예를 들어, 애플리케이션 서버(3100_1)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.The application server 3100_1 may store data requested by a user or client to be stored in one of the storage servers 3200_1 to 3200_m through the network 3300 . Also, the application server 3100_1 may acquire data requested by a user or client to read from one of the storage servers 3200_1 to 3200_m through the network 3300 . For example, the application server 3100_1 may be implemented as a web server or a database management system (DBMS).

애플리케이션 서버(3100_1)는 네트워크(3300)를 통해 다른 애플리케이션 서버(3100_n)에 포함된 메모리(3120_n) 또는 스토리지 장치(3150_n)에 액세스할 수 있고, 또는 네트워크(3300)를 통해 스토리지 서버들(3200_1-3200_m)에 포함된 메모리들(3220_1-3220_m) 또는 스토리지 장치(3250_1-3250_m)에 액세스할 수 있다. 이로써, 애플리케이션 서버(3100_1)는 애플리케이션 서버들(3100_1-3100_n) 및/또는 스토리지 서버들(3200_1-3200_m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 애플리케이션 서버(3100_1)는 애플리케이션 서버들(3100_1-3100_n) 및/또는 스토리지 서버들(3200_1-3200_m) 사이에서 데이터를 이동 또는 카피(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(3200_1-3200_m)의 스토리지 장치(3250_1-3250_m)로부터 스토리지 서버들(3200_1-3200_m)의 메모리들(3220_1-3220_m)을 거쳐서, 또는 바로 애플리케이션 서버들(3100_1-3100_n)의 메모리(3120-3120n)로 이동될 수 있다. 네트워크(3300)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.The application server 3100_1 may access the memory 3120_n or the storage device 3150_n included in another application server 3100_n through the network 3300, or may access the storage servers 3200_1- through the network 3300. The memories 3220_1 to 3220_m or the storage devices 3250_1 to 3250_m included in the 3200_m may be accessed. Accordingly, the application server 3100_1 may perform various operations on data stored in the application servers 3100_1 to 3100_n and/or the storage servers 3200_1 to 3200_m. For example, the application server 3100_1 may execute a command for moving or copying data between the application servers 3100_1 to 3100_n and/or the storage servers 3200_1 to 3200_m. At this time, the data is transferred from the storage devices 3250_1-3250_m of the storage servers 3200_1-3200_m through the memories 3220_1-3220_m of the storage servers 3200_1-3200_m or directly to the application servers 3100_1-3100_n. may be moved to the memories 3120-3120n of Data traveling through the network 3300 may be encrypted data for security or privacy.

도시되진 않았으나, 스토리지 장치(3250_1-3250_m)들에는 도 1 내지 도 8을 통해 상술된, 마스터 컨트롤러(200)가 포함될 수 있다.Although not shown, the master controller 200 described above with reference to FIGS. 1 to 8 may be included in the storage devices 3250_1 to 3250_m.

스토리지 서버(3200_1)를 예시로 설명하면, 인터페이스(3254_1)는 프로세서(3210_1)와 컨트롤러(3251_1)의 물리적 연결 및 NIC(Network InterConnect)(3240_1)와 컨트롤러(3251_1)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(3254_1)는 스토리지 장치(3250_1)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(3254_1)는 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) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.Taking the storage server 3200_1 as an example, the interface 3254_1 may provide a physical connection between the processor 3210_1 and the controller 3251_1 and a network interconnect (NIC) 3240_1 and the controller 3251_1. . For example, the interface 3254_1 may be implemented in a Direct Attached Storage (DAS) method that directly connects the storage device 3250_1 with a dedicated cable. Also, for example, the interface 3254_1 may include Advanced Technology Attachment (ATA), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), and Peripheral SATA (PCI). Component Interconnection), PCIe (PCI express), NVMe (NVM express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC (embedded multi-media card), It may be implemented in various interface methods such as UFS (Universal Flash Storage), eUFS (embedded Universal Flash Storage), and/or CF (compact flash) card interface.

스토리지 서버(3200_1)는 스위치(3230_1) 및 NIC(3240_1)을 더 포함할 수 있다. 스위치(3230_1)는 프로세서(3210_1)의 제어에 따라 프로세서(3210_1)와 스토리지 장치(3250_1)를 선택적으로 연결시키거나, NIC(3240_1)와 스토리지 장치(3250_1)를 선택적으로 연결시킬 수 있다.The storage server 3200_1 may further include a switch 3230_1 and a NIC 3240_1. The switch 3230_1 may selectively connect the processor 3210_1 and the storage device 3250_1 or selectively connect the NIC 3240_1 and the storage device 3250_1 under the control of the processor 3210_1.

일 실시예에서 NIC(3240_1)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(3240_1)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(3300)에 연결될 수 있다. NIC(3240_1)는 내부 메모리, DSP(Digital Signal Processor), 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(3210_1) 및/또는 스위치(3230_1) 등과 연결될 수 있다. 호스트 버스 인터페이스는, 앞서 설명한 인터페이스(3254_1)의 예시들 중 하나로 구현될 수도 있다. 일 실시예에서, NIC(3240_1)는 프로세서(3210_1), 스위치(3230_1), 스토리지 장치(3250_1) 중 적어도 하나와 통합될 수도 있다.In one embodiment, the NIC 3240_1 may include a network interface card, a network adapter, and the like. The NIC 3240_1 may be connected to the network 3300 through a wired interface, a wireless interface, a Bluetooth interface, an optical interface, or the like. The NIC 3240_1 may include an internal memory, a digital signal processor (DSP), a host bus interface, and the like, and may be connected to the processor 3210_1 and/or the switch 3230_1 through the host bus interface. The host bus interface may be implemented as one of the examples of the interface 3254_1 described above. In one embodiment, the NIC 3240_1 may be integrated with at least one of the processor 3210_1 , the switch 3230_1 , and the storage device 3250_1 .

스토리지 서버들(3200_1-3200_m) 또는 애플리케이션 서버들(3100_1-3100_n)에서 프로세서는 스토리지 장치(3150_1-3150_n, 3250_1-3250_m) 또는 메모리(3120_1-3120_n, 3220_1-3220_m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 또는 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.In the storage servers 3200_1-3200_m or application servers 3100_1-3100_n, the processor transmits commands to the storage devices 3150_1-3150_n and 3250_1-3250_m or memories 3120_1-3120_n and 3220_1-3220_m to program data. or can lead. In this case, the data may be error-corrected data through an Error Correction Code (ECC) engine. The data is data subjected to data bus inversion (DBI) or data masking (DM) processing, and may include Cyclic Redundancy Code (CRC) information. The data may be encrypted data for security or privacy.

스토리지 장치(3150_1-3150_n, 3250_1-3250_m)는 프로세서로부터 수신된 리드 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 NAND 플래시 메모리 장치(3252_1-3252_m)로 전송할 수 있다. 이에 따라 NAND 플래시 메모리 장치(3252_1-3252_m)로부터 데이터를 독출하는 경우, RE(Read Enable) 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. RE 신호를 이용하여 DQS(Data Strobe)가 생성될 수 있다. 커맨드와 어드레스 신호는 WE(Write Enable) 신호의 상승 엣지 또는 하강 엣지에 따라 페이지 버퍼에 래치될 수 있다.The storage devices 3150_1 to 3150_n and 3250_1 to 3250_m may transmit control signals and command/address signals to the NAND flash memory devices 3252_1 to 3252_m in response to a read command received from the processor. Accordingly, when data is read from the NAND flash memory devices 3252_1 to 3252_m, the RE (Read Enable) signal may be input as a data output control signal and output data to the DQ bus. A Data Strobe (DQS) may be generated using the RE signal. Command and address signals may be latched in the page buffer according to a rising edge or a falling edge of a write enable (WE) signal.

컨트롤러(3251_1)는 스토리지 장치(3250_1)의 동작을 전반적으로 제어할 수 있다. 일 실시예에서, 컨트롤러(3251_1)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(3251_1)는 기입 커맨드에 응답하여 낸드 플래시(3252_1)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 낸드 플래시(3252_1)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 스토리지 서버(3200_1) 내의 프로세서(3210_1), 다른 스토리지 서버(3200_m) 내의 프로세서(3210_m) 또는 애플리케이션 서버(3100_1, 3100_n) 내의 프로세서(3110_1, 3110_n)로부터 제공될 수 있다. DRAM(3253_1)은 낸드 플래시(3252_1)에 기입될 데이터 또는 낸드 플래시(3252_1)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 또한, DRAM(3253_1)은 메타 데이터를 저장할 수 있다. 여기서, 메타 데이터는 사용자 데이터 또는 낸드 플래시(3252_1)를 관리하기 위해 컨트롤러(3251_1)에서 생성된 데이터이다. 스토리지 장치(3250_1)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.The controller 3251_1 may control overall operations of the storage device 3250_1. In one embodiment, the controller 3251_1 may include static random access memory (SRAM). The controller 3251_1 may write data into the NAND flash 3252_1 in response to a write command, or may read data from the NAND flash 3252_1 in response to a read command. For example, a write command and/or a read command may be received from a processor 3210_1 in a storage server 3200_1, a processor 3210_m in another storage server 3200_m, or a processor 3110_1 or 3110_n in application servers 3100_1 or 3100_n. can be provided. The DRAM 3253_1 may temporarily store (buffer) data to be written to the NAND flash 3252_1 or data read from the NAND flash 3252_1. Also, the DRAM 3253_1 may store meta data. Here, the meta data is user data or data generated by the controller 3251_1 to manage the NAND flash 3252_1. The storage device 3250_1 may include a Secure Element (SE) for security or privacy.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, the present invention is not limited to the above embodiments and can be manufactured in a variety of different forms, and those skilled in the art in the art to which the present invention belongs A person will understand that the present invention may be embodied in other specific forms without changing the technical spirit or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting.

1: 트러스티드 컴퓨팅 시스템 10: 검증자 20: 트러스티드 컴퓨팅 장치 200: 마스터 컨트롤러 202-1 내지 202-n: 장치들 204-1 내지 204-n: 펌웨어들 210: 보안 코어 220: 인증값 생성기 230: 인증값 저장소 232-1 내지 232-n: 레지스터들 240: 무결성 검사기 242: 버진 태그 생성기 244: 비교 태그 생성기 246: 비교기 250: 공격 감지기 252: 리셋 모듈 254: 알림 모듈1: Trusted Computing System 10: Validator 20: Trusted Computing Device 200: master controller 202-1 to 202-n: Devices 204-1 to 204-n: Firmwares 210: secure core 220: authentication value generator 230: authentication value storage 232-1 to 232-n: Registers 240: integrity checker 242: Virgin Tag Generator 244: comparison tag generator 246: comparator 250: attack detector 252: reset module 254 Notification module

Claims (10)

펌웨어에 의해 구동되는 장치; 및
상기 펌웨어로부터 인증값을 생성하여, 상기 인증값에 대한 무결성을 제1 주기로 검사하는 마스터 컨트롤러를 포함하되,
상기 마스터 컨트롤러는,
상기 인증값을 생성하는 인증값 생성기와,
상기 인증값을 저장하는 인증값 저장소와,
상기 인증값 저장소에 저장된 상기 인증값에 대해, 외부로부터의 억세스를 차단시키는 보안 코어와,
상기 인증값 저장소에 저장된 상기 인증값에 대한 무결성을 검사하는 무결성 검사기를 포함하는 트러스티드 컴퓨팅 장치.
device powered by firmware; and
A master controller generating an authentication value from the firmware and inspecting the integrity of the authentication value in a first cycle,
The master controller,
an authentication value generator for generating the authentication value;
an authentication value storage for storing the authentication value;
A security core that blocks access from the outside to the authentication value stored in the authentication value storage;
and an integrity checker configured to check integrity of the authentication value stored in the authentication value storage.
제 1항에 있어서,
상기 인증값 생성기는,
상기 펌웨어에 해시 함수를 적용하여, 상기 인증값을 생성하는 트러스티드 컴퓨팅 장치.
According to claim 1,
The authentication value generator,
A trusted computing device generating the authentication value by applying a hash function to the firmware.
제 1항에 있어서,
상기 인증값 저장소는,
상기 인증값을 저장하는 레지스터를 포함하는 트러스티드 컴퓨팅 장치.
According to claim 1,
The authentication value storage,
A trusted computing device comprising a register for storing the authentication value.
제 1항에 있어서,
상기 무결성 검사기는,
상기 인증값 생성기가 상기 인증값을 생성하면, 상기 인증값에 대한 버진 태그를 생성하는 버진 태그 생성기와,
상기 제1 주기마다, 상기 인증값에 대한 비교 태그를 생성하는 비교 태그 생성기와,
상기 버진 태그와 상기 비교 태그를 비교하는 비교기를 포함하되,
상기 비교기는,
상기 버진 태그와 상기 비교 태그가 같은 경우 상기 인증값의 무결성 유지를 인정하는 트러스티드 컴퓨팅 장치.
According to claim 1,
The integrity checker,
a virgin tag generator for generating a virgin tag for the authentication value when the authentication value generator generates the authentication value;
a comparison tag generator for generating a comparison tag for the authentication value in each of the first cycles;
A comparator for comparing the virgin tag and the comparison tag,
The comparator,
The trusted computing device recognizing maintaining the integrity of the authentication value when the virgin tag and the comparison tag are the same.
제 4항에 있어서,
상기 버진 태그 생성기는,
HMAC, 해시 함수, CRC(Cyclic Redundancy Checking), 또는 패리티 비트를 통해, 상기 버진 태그를 생성하는 트러스티드 컴퓨팅 장치.
According to claim 4,
The virgin tag generator,
A trusted computing device that generates the virgin tag through HMAC, hash function, Cyclic Redundancy Checking (CRC), or parity bit.
제 4항에 있어서,
상기 마스터 컨트롤러는,
상기 무결성 검사기로부터, 상기 버진 태그와 상기 비교 태그가 다른 경우 상기 인증값의 무결성이 유지되지 않았음을 알리는 신호를 수신받으면,
상기 인증값을 리셋(reset)하는 리셋 모듈과,
상기 보안 코어에 상기 인증값의 무결성이 유지되지 않았음을 알리는 알림 모듈을 포함하는 공격 감지기를 더 포함하는 트러스티드 컴퓨팅 장치.
According to claim 4,
The master controller,
When a signal indicating that the integrity of the authentication value is not maintained when the virgin tag and the comparison tag are different is received from the integrity checker,
A reset module for resetting the authentication value;
The trusted computing device further comprising an attack detector including a notification module notifying the secure core that integrity of the authentication value is not maintained.
제1 펌웨어에 의해 구동되는 제1 장치와 제2 펌웨어에 의해 구동되는 제2 장치; 및
상기 제1 펌웨어로부터 제1 인증값을 생성하여, 상기 제1 인증값에 대한 무결성을 제1 주기로 검사하고, 상기 제2 펌웨어로부터 제2 인증값을 생성하여, 상기 제2 인증값에 대한 무결성을 제2 주기로 검사하는 마스터 컨트롤러를 포함하되,
상기 마스터 컨트롤러는,
상기 제1 인증값과 상기 제2 인증값을 생성하는 인증값 생성기와,
상기 제1 인증값과 상기 제2 인증값을 저장하는 인증값 저장소와,
상기 인증값 저장소에 저장된 상기 제1 인증값과 상기 제2 인증값에 대해, 외부로부터의 억세스를 차단시키는 보안 코어와,
상기 인증값 저장소에 저장된 상기 제1 인증값과 상기 제2 인증값에 대한 무결성을 검사하는 무결성 검사기를 포함하는 트러스티드 컴퓨팅 장치.
a first device driven by a first firmware and a second device driven by a second firmware; and
A first authentication value is generated from the first firmware, the integrity of the first authentication value is checked in a first cycle, and a second authentication value is generated from the second firmware to check the integrity of the second authentication value. Including a master controller that inspects in the second cycle,
The master controller,
an authentication value generator for generating the first authentication value and the second authentication value;
an authentication value storage for storing the first authentication value and the second authentication value;
a security core for blocking external access to the first authentication value and the second authentication value stored in the authentication value storage;
and an integrity checker configured to check integrity of the first authentication value and the second authentication value stored in the authentication value storage.
제 7항에 있어서,
상기 인증값 저장소는,
상기 제1 인증값을 저장하는 제1 레지스터와,
상기 제2 인증값을 저장하는 제2 레지스터를 포함하는 트러스티드 컴퓨팅 장치.
According to claim 7,
The authentication value storage,
A first register for storing the first authentication value;
and a second register for storing the second authentication value.
제 8항에 있어서,
상기 제1 레지스터와 상기 제2 레지스터는 동일한 트러스티드 컴퓨팅 장치.
According to claim 8,
The first register and the second register are the same trusted computing device.
장치를 구동하는 펌웨어에 대한 인증값의 무결성을 검사하는 마스터 컨트롤러를 포함하는 트러스티드 컴퓨팅 장치로서,
상기 마스터 컨트롤러는 상기 인증값의 무결성을 제1 주기마다 검사하되,
상기 마스터 컨트롤러는,
인증값 생성기를 통해, 상기 인증값을 생성하고,
인증값 저장소를 통해, 상기 인증값을 저장하고,
보안 코어를 통해, 상기 인증값 저장소에 저장된 상기 인증값에 대해, 외부로부터의 억세스를 차단시키고,
무결성 검사기를 통해, 상기 인증값 저장소에 저장된 상기 인증값에 대한 무결성을 검사하는 것을 포함하는 트러스티드 컴퓨팅 장치.
A trusted computing device including a master controller that checks the integrity of authentication values for firmware that drives the device,
The master controller checks the integrity of the authentication value every first cycle,
The master controller,
Generating the authentication value through an authentication value generator;
Storing the authentication value through an authentication value storage;
Through a secure core, access from the outside is blocked for the authentication value stored in the authentication value storage,
and checking integrity of the authentication value stored in the authentication value storage using an integrity checker.
KR1020220004434A 2021-11-09 2022-01-12 Trusted computing device and operating method thereof Pending KR20230067436A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/846,349 US12074983B2 (en) 2021-11-09 2022-06-22 Trusted computing device and operating method thereof
CN202211176311.4A CN116108427A (en) 2021-11-09 2022-09-26 Trusted Computing Device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210153229 2021-11-09
KR20210153229 2021-11-09

Publications (1)

Publication Number Publication Date
KR20230067436A true KR20230067436A (en) 2023-05-16

Family

ID=86546488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220004434A Pending KR20230067436A (en) 2021-11-09 2022-01-12 Trusted computing device and operating method thereof

Country Status (1)

Country Link
KR (1) KR20230067436A (en)

Similar Documents

Publication Publication Date Title
US10346071B2 (en) Validating firmware for data storage devices
KR20230082807A (en) Storage controller and operation method of electronic system
US20230145936A1 (en) Storage device, storage system having the same and method of operating the same
US11354048B2 (en) Storage device and data disposal method thereof
EP4155893A1 (en) Storage controller and storage system comprising the same
US12406100B2 (en) Storage device including storage controller and operating method
KR20240018388A (en) Anti-malware algorithm and hw/fw for internal ssd health and storage space protection against cyber-attacks
CN115933968A (en) Computing storage devices and electronic systems
US12039053B2 (en) Secure processor, operating method thereof, and storage device including same
KR20230067436A (en) Trusted computing device and operating method thereof
US12074983B2 (en) Trusted computing device and operating method thereof
CN116414734A (en) Memory system and memory device and method of operating the same
CN114490166A (en) Electronic device, vehicle device, and data center
US12339968B2 (en) Storage device and operating method of storage device
US20250211448A1 (en) Storage device, operating method of controller, and system
US12166903B2 (en) Computing device in a trusted computing system and attestation method thereof
KR20230067439A (en) Secure processor and operating method thereof and storage device comprising the same
US20250315528A1 (en) Memory controller, storage device, and operating method of storage device
US20250147879A1 (en) Storage device for controlling vendor unique command (vuc), memory system including the storage device, and method of controlling the vuc
US20240168675A1 (en) Storage apparatus and method for data integrity
US20250225069A1 (en) Memory controller, operating method thereof, and storage device for ensuring initialization of security parameter
US20250068560A1 (en) Method and device for configuring zones of zns ssd
CN120781403A (en) Memory controller, memory device, and method of operating memory device
KR20250147200A (en) Memory controller, storage device, and operating method of storage device
KR20250065118A (en) Memory system and method of operating the same

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20220112

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20241113

Comment text: Request for Examination of Application

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载