

# UEFI 보안 부팅이 Amazon EC2 인스턴스에서 작동하는 방식
<a name="how-uefi-secure-boot-works"></a>

UEFI 보안 부팅은 UEFI에 지정된 기능으로 부팅 체인의 상태에 대한 확인을 제공합니다. 펌웨어 자체 초기화 후에 암호로 검증된 UEFI 바이너리만 실행되도록 설계되었습니다. 이러한 바이너리에는 UEFI 드라이버, 기본 부트로더 및 체인 로드 구성 요소가 포함됩니다.

UEFI 보안 부팅은 신뢰 체인에 사용되는 4개의 키 데이터베이스를 지정합니다. 데이터베이스는 UEFI 변수 스토어에 저장됩니다.

신뢰 체인은 다음과 같습니다.

**플랫폼 키(PK) 데이터베이스**  
PK 데이터베이스는 신뢰의 루트입니다. 여기에는 키 교환 키(KEK) 데이터베이스를 업데이트하기 위해 신뢰 체인에 사용되는 단일 퍼블릭 PK 키가 포함되어 있습니다.  
PK 데이터베이스를 변경하려면 업데이트 요청에 서명하기 위한 프라이빗 PK 키가 있어야 합니다. 여기에는 빈 PK 키를 작성하여 PK 데이터베이스를 삭제하는 작업이 포함됩니다.

**키 교환 키(KEK) 데이터베이스**  
KEK 데이터베이스는 서명(db) 및 거부 목록(dbx) 데이터베이스를 업데이트하기 위해 신뢰 체인에 사용되는 퍼블릭 KEK 키 목록입니다.  
퍼블릭 KEK 데이터베이스를 변경하려면 업데이트 요청에 서명하기 위한 프라이빗 PK 키가 있어야 합니다.

**서명(db) 데이터베이스**  
db 데이터베이스는 모든 UEFI 부팅 바이너리를 검증하기 위해 신뢰 체인에 사용되는 퍼블릭 키 및 해시 목록입니다.  
db 데이터베이스를 변경하려면 업데이트 요청에 서명하기 위한 프라이빗 PK 키 또는 프라이빗 KEK 키가 있어야 합니다.

**서명 거부 목록(dbx) 데이터베이스**  
dbx 데이터베이스는 신뢰할 수 없는 퍼블릭 키 및 바이너리 해시 목록이며 신뢰 체인에서 해지 파일로 사용됩니다.  
dbx 데이터베이스는 항상 다른 모든 키 데이터베이스보다 우선합니다.  
dbx 데이터베이스를 변경하려면 업데이트 요청에 서명하기 위한 프라이빗 PK 키 또는 프라이빗 KEK 키가 있어야 합니다.  
UEFI 포럼은 [https://uefi.org/revocationlistfile](https://uefi.org/revocationlistfile)에서 많은 알려진 불량 바이너리 및 인증서에 대해 퍼블릭적으로 사용 가능한 dbx를 유지 관리합니다.

**중요**  
UEFI 보안 부팅은 모든 UEFI 바이너리에서 서명 검증을 시행합니다. UEFI 보안 부팅에서 UEFI 바이너리 실행을 허용하려면 위에서 설명한 프라이빗 db 키로 서명합니다.

기본적으로 UEFI 보안 부팅은 비활성화되어 있고 시스템은 `SetupMode`에 있습니다. 시스템이 `SetupMode`에 있을 때 암호화 서명 없이 모든 키 변수를 업데이트할 수 있습니다. PK가 설정되면 UEFI 보안 부팅이 활성화되고 SetupMode가 종료됩니다.