<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=ARM_Confidential_compute_architecture</id>
	<title>ARM Confidential compute architecture - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=ARM_Confidential_compute_architecture"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=ARM_Confidential_compute_architecture&amp;action=history"/>
	<updated>2026-05-19T14:45:31Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=ARM_Confidential_compute_architecture&amp;diff=1567&amp;oldid=prev</id>
		<title>2024년 11월 21일 (목) 04:35에 Ahn9807님의 편집</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=ARM_Confidential_compute_architecture&amp;diff=1567&amp;oldid=prev"/>
		<updated>2024-11-21T04:35:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2024년 11월 21일 (목) 04:35 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: CPU]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: CPU]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: 하드웨어 기반 보안]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: 하드웨어 기반 보안]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: 가상화]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: 가상화&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: ARM]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류: ARM]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=ARM_Confidential_compute_architecture&amp;diff=1459&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: CPU 분류: 하드웨어 기반 보안 [[분류: 가상화] 분류: ARM  == 개요 == ARM Confidential compute architecture (ARM CCA)는 Hypervisor와 Guest VM을 분리하여서, VM이 사용하는 code, register state 그리고 data에 접근할 수 없도록 강력한 하드웨어 기반 platform을 제공한다.  각각의 Guest VM들은 Realms(왕국)이라 불리는 분리된 영역에서 실행된다. Realms들은 Hypervisor, 서로다른 Realms, 그...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=ARM_Confidential_compute_architecture&amp;diff=1459&amp;oldid=prev"/>
		<updated>2024-02-21T06:46:00Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:CPU&quot; title=&quot;분류:CPU&quot;&gt;분류: CPU&lt;/a&gt; &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4_%EA%B8%B0%EB%B0%98_%EB%B3%B4%EC%95%88&quot; title=&quot;분류:하드웨어 기반 보안&quot;&gt;분류: 하드웨어 기반 보안&lt;/a&gt; [[분류: 가상화] &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:ARM&quot; title=&quot;분류:ARM&quot;&gt;분류: ARM&lt;/a&gt;  == 개요 == ARM Confidential compute architecture (ARM CCA)는 Hypervisor와 Guest VM을 분리하여서, VM이 사용하는 code, register state 그리고 data에 접근할 수 없도록 강력한 하드웨어 기반 platform을 제공한다.  각각의 Guest VM들은 Realms(왕국)이라 불리는 분리된 영역에서 실행된다. Realms들은 Hypervisor, 서로다른 Realms, 그...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: CPU]]&lt;br /&gt;
[[분류: 하드웨어 기반 보안]]&lt;br /&gt;
[[분류: 가상화]&lt;br /&gt;
[[분류: ARM]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
ARM Confidential compute architecture (ARM CCA)는 Hypervisor와 Guest VM을 분리하여서, VM이 사용하는 code, register state 그리고 data에 접근할 수 없도록 강력한 하드웨어 기반 platform을 제공한다.&lt;br /&gt;
&lt;br /&gt;
각각의 Guest VM들은 Realms(왕국)이라 불리는 분리된 영역에서 실행된다. Realms들은 Hypervisor, 서로다른 Realms, 그리고 normal world와 완전히 분리되어서 실행된다. &lt;br /&gt;
&lt;br /&gt;
Realms들을 관리하는 hardware extension을 ARM은 ARM Realm Management Extension (RME)로 불르며, RME는 Realm Management Monitor (RMM)라 불리는 특수한 Firmware을 통해서 컨트롤된다.&lt;br /&gt;
&lt;br /&gt;
; Realm&lt;br /&gt;
: Realm은 CCA가 관리하는 VM이나 Application의 단위이다. Realm은 Attestation될수 있으며, Realm이 사용할 자원할당, Scheduling은 조절할 수 있지만, 정확히 Realm이 사용하는 명령어와 메모리 state와 같은 internal state은 접근할 수 없다. Hypervisor은 RMM을 통해서 Realm들을 관리한다.&lt;br /&gt;
&lt;br /&gt;
== ARM CCA 하드웨어 아키텍쳐 ==&lt;br /&gt;
=== Realm World ===&lt;br /&gt;
[[파일:ARM CCA Hardware Architecture.png|600픽셀|가운데]]&lt;br /&gt;
Realm VM은 EL0, EL1에서 동작하며, AMD CCA Software Stack에서 제공하는 RMM을 통하여 EL3에 있는 Monitor와 통신할 수 있다. Monitor는 Normal world, Secure world (기존 Trusted Zone), Realm들의 통신을 담당하며, Hypervisor또한 Monitor을 통하여 RMM과 통신할 수 있다.&lt;br /&gt;
&lt;br /&gt;
=== Memory management ===&lt;br /&gt;
Physical address space는 다음과 같은 4개의 종류로 나뉘어 질 수 있다.&lt;br /&gt;
* Non-secure physical address space: Root, Realm, Secure, Non-secure&lt;br /&gt;
* Secure physical address space: Secure, Root&lt;br /&gt;
* Realm physical address space: Root, Realm&lt;br /&gt;
* Root physical address space: Root&lt;br /&gt;
CPU Statedp 따라서 접근할 수 있는 Address space종류가 달라진다. 여기서는 &amp;quot;:&amp;quot;뒤에 표시하였다.&lt;br /&gt;
&lt;br /&gt;
여기서, ARM CPU는 MMU를 통해서 접근 가능한 메모리들을 판별한다. 이 작업을 Granule Protection Check (GPC)라고 부른다.&lt;br /&gt;
; Granule Protection Check&lt;br /&gt;
: 모든 Physical address는 Granule Protection Table (GPT)라는 특수한 테이블에의해서 관리된다. RMM은 GPT테이블을 업데이트하여 권한을 변경할 수 있다. 만약 Access violation이 발생하면 Granule Protection Fault (#GPF)라는 Fault가 발생한다. GPF는 우선 RMM으로 가서 RMM이 Injection이켜주어야 한다.&lt;br /&gt;
&lt;br /&gt;
=== Attestation ===&lt;br /&gt;
VM이 실제로 ARM Realm위에서 돌고 있는지 확인하기 위해서 ARM CPU는 Attestation기법을 제공한다. Attestation은 다음과 같은 두가지 파트로 나뉘어져 있다.&lt;br /&gt;
* Platform Attestation: Platform이 진실된 Realm환경을 제공하는지 체크한다. &lt;br /&gt;
* Initial state attestation: 제공하는 State가 진실한지를 체크한다. 예를 들어서 현재 Realm이 Debug모드는 아닌지 체크한다.&lt;br /&gt;
&lt;br /&gt;
== ARM CCA 소트프웨어 아키텍쳐 ==&lt;br /&gt;
RMM은 하드웨어에 의해서 제공되는 Firmware로써, 다른 protection domain사이의 Communication이나 Context switching과 같은 일들을 수행한다. 그러나 RMM은 Policy decision은 내리지 않는다. 이러한 Decision은 Normal world에 존재하는 Hypervisor에 의해서 control된다. &lt;br /&gt;
&lt;br /&gt;
; SMC Instruction&lt;br /&gt;
: Secure monitor call (ARM SMC)는 RMM, Hypervisor가 Monitor와 통신할 수 있는 API를 제공한다. 이를 통해서 각각의 Protection domain은 Monitor와 통신하고 Monitor가 대화를 중계하여서, 다른 도메인에 전송한다. &lt;br /&gt;
&lt;br /&gt;
; Realm Management Monitor&lt;br /&gt;
: RMM은 Policy와 Mechanism의 분리를 위해서 도입된 개념이다. Hypervisor은 SMC콜을 통해서, 특정 operation들에 대한 Policy를 설정할 수 있고, RMM은 그에 따라서 Realm VM의 request를 처리한다.&lt;br /&gt;
&lt;br /&gt;
Hypervisor는 다음과 같은 일들에 대한 Policy를 RMM을 통해서 설정한다.&lt;br /&gt;
* Realm의 생성과 종료&lt;br /&gt;
* Realm에 메모리 할당과 reclaim&lt;br /&gt;
* Realm에 대한 스케쥴링을 언제 할 것인지&lt;br /&gt;
&lt;br /&gt;
RMM은 다음과 같은 일을 Realm을 위해서 처리한다.&lt;br /&gt;
* Realm page table의 설정&lt;br /&gt;
* Realm context의 저장과 복귀&lt;br /&gt;
* Interrupt 처리&lt;br /&gt;
* Attestation서비스 제공, 등&lt;br /&gt;
&lt;br /&gt;
; Realm Management Interface&lt;br /&gt;
: Host는 RMM을 설정하기 위해서 Realm Management Interface를 SMC Call을 통해서 호출한다. RMI는 Hypervisor의 특정 Request를 RMM에 전달하는 역활을 한다.&lt;br /&gt;
&lt;br /&gt;
; Realm Service Interface&lt;br /&gt;
: Realm Service Interface (RSI)는 RMM에서 Realm VM으로 가는 API를 제공한다. RSI를 통해서 RMM은 Realm VM과 통신하며 Attestation이나 Cryptographic service들을 제공한다.&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>