신뢰 사슬과 다층 키 계층 구조
Secure Boot는 부팅 과정의 무결성을 보장하기 위해 다계층 비대칭 암호화 메커니즘을 구현합니다. 하드웨어 ROM에 저장된 불변 부트로더가 하드웨어 신뢰 근(Root of Trust)으로 작동하며, 이 첫 단계 코드만이 신뢰할 수 있는 출발점입니다. 후속 부팅 단계는 이전 단계에서 검증되어야 하며, 각 단계는 다음 단계의 이미지 암호 해시를 계산하고 공개키를 사용해 서명을 확인합니다.
공개키 인프라(PKI) 계층과 인증 기관 역할
UEFI 스펙에서 정의된 PKI 모델은 세 가지 주요 키를 도입합니다. 플랫폼 키(PK)는 플랫폼 소유자와 펌웨어 간 신뢰 관계를 수립하며, 플랫폼 소유자만이 PKpriv를 사용해 PK를 갱신할 수 있습니다. 키 교환 키(KEK)는 운영체제와 펌웨어 간 신뢰를 구축하며, 인증된 사용자는 KEKpriv로 서명 데이터베이스를 수정할 권한을 가집니다. 서명 데이터베이스(db, dbx, dbt, dbr)는 NVRAM에 저장되는 인증된 UEFI 변수로, 허용 또는 거부 대상 이진 파일의 해시와 인증서를 관리합니다.
암호학적 검증 프로세스와 실무 주의점
부팅 중 각 이미지는 RSA-2048, SHA-256 등 표준 알고리즘으로 서명 검증을 거칩니다. 펌웨어는 이미지 인증서 테이블의 서명을 db의 인증서와 비교하거나 이미지 해시와 db의 저장 해시를 대조합니다. 서명 검증 실패 시 시스템은 부팅을 진행하지 않으며, 실패 이유를 이미지 실행 정보 테이블(IEIT)에 기록합니다. 관리자는 감사 모드(Audit Mode)에서 서명 강제 없이 시스템을 테스트한 후 배포 모드(Deployed Mode)로 전환할 수 있습니다. PK와 KEK는 타변조 방지 불휘발성 메모리에 저장되어야 하며, PK 갱신 시 SetupMode 변수 상태에 따라 서명 요구 여부가 결정됩니다.