UEFI 보안 부팅이 Amazon EC2 인스턴스에서 작동하는 방식
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
에서 많은 알려진 불량 바이너리 및 인증서에 대해 퍼블릭적으로 사용 가능한 dbx를 유지 관리합니다.
중요
UEFI 보안 부팅은 모든 UEFI 바이너리에서 서명 검증을 시행합니다. UEFI 보안 부팅에서 UEFI 바이너리 실행을 허용하려면 위에서 설명한 프라이빗 db 키로 서명합니다.
기본적으로 UEFI 보안 부팅은 비활성화되어 있고 시스템은 SetupMode
에 있습니다. 시스템이 SetupMode
에 있을 때 암호화 서명 없이 모든 키 변수를 업데이트할 수 있습니다. PK가 설정되면 UEFI 보안 부팅이 활성화되고 SetupMode가 종료됩니다.