보안 부팅
보안 부팅은 OEM(Original Equipment Manufacturer)에서 신뢰하는 소프트웨어만 사용하여 디바이스가 부팅되도록 하기 위해 PC 업계의 멤버가 개발한 보안 표준입니다. PC가 시작되면 펌웨어는 UEFI 펌웨어 드라이버(옵션 ROM이라고도 함), EFI 애플리케이션 및 운영 체제를 포함하여 부팅 소프트웨어의 각 부분의 서명을 확인합니다. 서명이 유효한 경우 PC가 부팅되고 펌웨어가 운영 체제를 제어합니다.
OEM은 펌웨어 제조업체의 지침을 사용하여 보안 부팅 키를 만들고 PC 펌웨어에 저장할 수 있습니다. UEFI 드라이버를 추가할 때, 드라이버에 서명하고 보안 부팅 데이터베이스에 드라이버가 포함되었는지도 확인해야 합니다.
신뢰할 수 있는 부팅 및 측정된 부팅을 포함하여 보안 부팅 프로세스의 작동 방식에 대한 자세한 내용은 Windows 10 부팅 프로세스 보안을 참조하세요.
보안 부팅 요구 사항
보안 부팅을 지원하려면 다음을 제공해야 합니다.
하드웨어 요구 사항 | Details |
---|---|
UEFI 버전 2.3.1 Errata C 변수 | 변수는 안전하게 미리 프로비저닝된 머신을 부팅하는 데 필요한 서명 데이터베이스(EFI_IMAGE_SECURITY_DATABASE)와 유효한 KEK 데이터베이스에 설정된 PK를 포함하는 SecureBoot=1 및 SetupMode=0으로 설정해야 합니다. 자세한 내용은 Windows 하드웨어 호환성 프로그램 사양 및 정책의 PDF 다운로드에서 System.Fundamentals.Firmware.UEFISecureBoot 시스템 요구 사항을 검색하세요. |
UEFI v2.3.1 섹션 27 | 플랫폼에서 UEFI v2.3.1 섹션 27의 프로필을 준수하는 인터페이스를 노출해야 합니다. |
UEFI 서명 데이터베이스 | Windows가 부팅할 수 있도록 플랫폼은 UEFI 서명 데이터베이스(db)에 올바른 키로 프로비저닝되어야 합니다. 또한 데이터베이스에 대한 보안 인증 업데이트를 지원해야 합니다. 검색 없이 수정할 수 없도록 보안 변수 스토리지를 실행 중인 운영 체제에서 격리해야 합니다. |
펌웨어 서명 | 모든 펌웨어 구성 요소는 SHA-256에서 RSA-2048 이상을 사용하여 서명해야 합니다. |
부팅 관리자 | 전원이 켜지면 시스템은 펌웨어의 코드를 실행하고 알고리즘 정책에 따라 공개 키 암호화를 사용하여 부팅 시퀀스부터 Windows 부팅 관리자까지 모든 이미지의 서명을 확인해야 합니다. |
롤백 보호 | 시스템은 펌웨어가 이전 버전으로 롤백되지 않도록 보호해야 합니다. |
EFI_HASH_PROTOCOL | 이 플랫폼은 암호화 해시 작업을 오프로드하기 위한 EFI_HASH_PROTOCOL(UEFI v2.3.1에 따라) 및 플랫폼 엔트로피에 액세스하기 위한 EFI_RNG_PROTOCOL(Microsoft 정의)을 제공합니다. |
서명 데이터베이스 및 키
PC를 배포하기 전에 OEM은 PC에 보안 부팅 데이터베이스를 저장합니다. 여기에는 서명 데이터베이스(db), 해지된 서명 데이터베이스(dbx) 및 KEK(키 등록 키) 데이터베이스가 포함됩니다. 이러한 데이터베이스는 제조 시 펌웨어 비휘발성 RAM(NV-RAM)에 저장됩니다.
서명 데이터베이스(db) 및 해지된 서명 데이터베이스(dbx)에는 UEFI 애플리케이션, 운영 체제 로더(예: Microsoft 운영 체제 로더 또는 부팅 관리자) 및 디바이스에 로드할 수 있는 UEFI 드라이버의 서명자 또는 이미지 해시가 나열됩니다. 해지된 목록에는 더 이상 신뢰할 수 없고 로드되지 않을 수도 있는 항목이 포함되어 있습니다. 이미지 해시가 두 데이터베이스 모두에 있는 경우 해지된 서명 데이터베이스(dbx)에 우선권이 있습니다.
KEK(키 등록 키) 데이터베이스는 서명 데이터베이스 및 해지된 서명 데이터베이스를 업데이트하는 데 사용할 수 있는 별도의 서명 키 데이터베이스입니다. 향후 Microsoft에서 서명 데이터베이스에 새 운영 체제를 추가하거나 해지된 서명 데이터베이스에 알려진 불량 이미지를 추가할 수 있도록 KEK 데이터베이스에 지정된 키를 포함해야 합니다.
이러한 데이터베이스를 추가하고 최종 펌웨어 유효성 검사 및 테스트를 마친 OEM은 올바른 키로 서명된 업데이트 또는 펌웨어 메뉴를 사용하는 실제 사용자가 물리적으로 제공한 업데이트를 제외하고 펌웨어를 편집하지 못하도록 잠근 다음, PK(플랫폼 키)를 생성합니다. PK를 사용하여 KEK에 대한 업데이트에 서명하거나 보안 부팅을 비활성화할 수 있습니다.
이러한 데이터베이스를 만드는 데 필요한 도구와 도움은 펌웨어 제조업체에 문의해야 합니다.
부팅 시퀀스
- PC를 켜면 각 서명 데이터베이스가 플랫폼 키에 대해 확인됩니다.
- 펌웨어를 신뢰할 수 없는 경우 UEFI 펌웨어는 OEM 관련 복구를 시작하여 신뢰할 수 있는 펌웨어를 복원해야 합니다.
- Windows 부팅 관리자에 문제가 있는 경우 펌웨어는 Windows 부팅 관리자의 백업 복사본을 부팅하려고 시도합니다. 이 시도마저 실패하면 펌웨어는 OEM 관련 수정을 시작해야 합니다.
- Windows 부팅 관리자가 실행되기 시작한 후 드라이버 또는 NTOS 커널에 문제가 있는 경우 이러한 드라이버 또는 커널 이미지를 복구할 수 있도록 Windows RE(Windows 복구 환경)가 로드됩니다.
- Windows가 맬웨어 방지 소프트웨어를 로드합니다.
- Windows가 다른 커널 드라이버를 로드하고 사용자 모드 프로세스를 초기화합니다.