Intel SGX에서 응용 프로그램 개발Application development on Intel SGX

기밀 컴퓨팅 인프라에는 특정 도구 및 소프트웨어가 필요 합니다.Confidential computing infrastructure requires specific tools and software. 이 페이지에서는 Intel SGX에서 실행 되는 Azure 기밀 컴퓨팅 가상 머신에 대 한 응용 프로그램 개발과 관련 된 개념을 구체적으로 설명 합니다.This page specifically discusses concepts related to application development for Azure confidential computing virtual machines running on Intel SGX. 이 페이지를 읽기 전에 INTEL SGX virtual machines 및 enclaves의 소개를 참조하세요.Before reading this page, read the introduction of Intel SGX virtual machines and enclaves.

enclave 및 격리된 환경의 성능을 활용하려면 기밀 컴퓨팅을 지원하는 도구를 사용해야 합니다.To leverage the power of enclaves and isolated environments, you'll need to use tools that support confidential computing. enclave 애플리케이션 개발을 지원하는 다양한 도구가 있습니다.There are various tools that support enclave application development. 예를 들어 다음과 같은 오픈 소스 프레임워크를 사용할 수 있습니다.For example, you can use these open-source frameworks:

개요Overview

enclave를 사용하여 빌드된 애플리케이션은 다음 두 가지 방법으로 분할됩니다.An application built with enclaves is partitioned in two ways:

  1. "신뢰할 수 없는" 구성 요소(호스트)An "untrusted" component (the host)
  2. "신뢰할 수 있는" 구성 요소(enclave)A "trusted" component (the enclave)

앱 개발

호스트 는 신뢰할 수 없는 환경에서 실행되는 enclave 애플리케이션입니다.The host is where your enclave application is running on top of and is an untrusted environment. 호스트에 배포된 enclave 코드는 호스트에서 액세스할 수 없습니다.The enclave code deployed on the host can't be accessed by the host.

enclave 는 애플리케이션 코드와 캐시된 데이터/메모리가 실행되는 위치입니다.The enclave is where the application code and its cached data/memory runs. 비밀 및 중요한 데이터가 보호된 상태로 유지되도록 보안 계산이 enclave에서 수행되어야 합니다.Secure computations should occur in the enclaves to ensure secrets and sensitive data, stay protected.

애플리케이션을 디자인하는 동안 enclaves에서 실행해야 하는 애플리케이션 부분을 식별하고 결정하는 것이 중요합니다.During application design, it's important to identify and determine what part of the application needs to run in the enclaves. 신뢰할 수 있는 구성 요소에 배치하도록 선택한 코드는 애플리케이션의 나머지 부분과 격리됩니다.The code that you choose to put into the trusted component is isolated from the rest of your application. enclave가 초기화되고 코드가 메모리에 로드되면 신뢰할 수 없는 구성 요소에서 해당 코드를 읽거나 변경할 수 없습니다.Once the enclave is initialized and the code is loaded to memory, that code can't be read or changed from the untrusted components.

OE SDK(Open Enclave 소프트웨어 개발 키트) Open Enclave Software Development Kit (OE SDK)

enclave에서 실행되는 코드를 작성하려면 공급자를 통해 지원되는 라이브러리 또는 프레임워크를 사용합니다.Use a library or framework supported by your provider if you want to write code that runs in an enclave. OE SDK(Open Enclave SDK)는 다양한 다른 기밀 컴퓨팅 사용 하드웨어를 추상화할 수 있는 오픈 소스 SDK입니다.The Open Enclave SDK (OE SDK) is an open-source SDK that allows abstraction over different confidential computing-enabled hardware.

OE SDK는 모든 CSP의 모든 하드웨어에서 단일 추상화 계층으로 빌드됩니다.The OE SDK is built to be a single abstraction layer over any hardware on any CSP. OE SDK는 Azure 기밀 컴퓨팅 가상 머신에서 사용되어 enclave를 기반으로 하는 애플리케이션을 만들고 실행할 수 있습니다.The OE SDK can be used on top of Azure confidential computing virtual machines to create and run applications on top of enclaves.

CCF (기밀 컨소시엄 Framework) Confidential Consortium Framework (CCF)

Ccf 는 노드의 분산 네트워크 이며 각각 자체 enclaves를 실행 합니다.The CCF is a distributed network of nodes, each running their own enclaves. 신뢰할 수 있는 노드 네트워크를 사용 하면 분산 원장을 실행할 수 있습니다.The trusted node network allows you to run a distributed ledger. 원장은 프로토콜에서 사용할 수 있는 안전 하 고 신뢰할 수 있는 구성 요소를 제공 합니다.The ledger provides secure, reliable components for the protocol to use.

CCF 노드

이 오픈 소스 프레임 워크는 블록 체인에 대 한 높은 전체, 세분화 기밀성 및 컨소시엄 거 버 넌 스를 가능 하 게 합니다.This open-source framework enables high throughout, fine-grained confidentiality, and consortium governance for blockchain. TEEs를 사용 하는 각 노드에서 보안 합의 및 트랜잭션 처리를 보장할 수 있습니다.With each node using TEEs, you can ensure secure consensus and transaction processing.

다음 단계Next steps