업데이트 패키지 인증 및 서명

펌웨어 업데이트는 드라이버 패키지로 제공되므로 일반 드라이버 패키지와 동일한 확인 및 서명 프로세스를 모두 거쳐야 합니다. 드라이버 패키지는 Windows HLK(Windows Hardware Lab Kit) 테스트를 통과해야 하며 서명을 위해 파트너 센터에 제출해야 합니다. 서명되면 드라이버 패키지가 제출자에게 다시 배포됩니다.

드라이버 패키지 서명은 UEFI 펌웨어 또는 디바이스 펌웨어 자체에 서명하는 경우와 다릅니다. 보안 카탈로그를 통해 전달되는 드라이버 패키지의 서명은 Windows에서 UEFI에 전달하기 전에 firmware.bin의 무결성을 확인하는 데 사용됩니다. Windows는 펌웨어에 보안 카탈로그를 제공하지 않습니다. UEFI 펌웨어 또는 디바이스 펌웨어 업데이트의 서명은 플랫폼 펌웨어에서 유효성을 검사하며 Windows에서 확인하지 않습니다. IHV/OEM은 서명 확인, 암호화 또는 기타 수단을 통해 펌웨어의 무결성과 보안을 보장할 책임이 있습니다.

UEFI 보안 부팅에 대한 펌웨어 업데이트 서명 프로세스 및 요구 사항

UEFI 보안 부팅이 활성 상태인 Windows 디바이스에서 사용할 수 있는 UEFI 펌웨어 업데이트에 서명하는 경우 서명 프로세스에는 다음 작업의 일부 조합이 수반됩니다.

  1. 업데이트된 펌웨어 이미지에 서명합니다.

  2. 업데이트된 펌웨어를 운반하는 캡슐에 서명합니다.

  3. 운영 체제에 제공된 펌웨어 업데이트 패키지 서명 이 패키지에는 캡슐이 포함됩니다.

이러한 작업 중 #3만 항상 필요합니다. 보안 부팅 사용 시스템에서는 모든 UEFI 펌웨어에 서명해야 하며, 이는 업데이트가 UEFI 드라이버 또는 애플리케이션과 관련된 경우 #1이 필요하다는 것을 의미합니다. 연결된 대기 시스템의 경우 모든 시스템 펌웨어에도 #1이 필요합니다. 펌웨어 업데이트가 다른 방법으로 보호되지 않는 경우 펌웨어 업데이트 자체를 보호하고 설치하기 전에 업데이트 패키지의 신뢰성을 보장하기 위해 캡슐에 서명해야 합니다.

다음 다이어그램은 이 문서의 나머지 부분에 설명된 다양한 구성 요소의 서명자를 나타냅니다.

펌웨어 업데이트 구성 요소 및 서명자.

업데이트된 펌웨어 서명

서명되면 업데이트된 펌웨어의 서명이 부팅 중에 시스템의 펌웨어 로더에 의해 유효성을 검사할 수 있어야 합니다. 최소한 다시 부팅 시 자동으로 발생하지만 안정성 및 사용자 환경상의 이유로 사전 유효성 검사를 권장합니다.

Arm 시스템에서는 허용되는 UEFI PE/COFF 이미지만 Microsoft Windows OS 로더(BootMgfw.efi)이므로 펌웨어 이미지 자체와 분리된 UEFI 드라이버 또는 애플리케이션을 설치할 수 없으며, Microsoft Windows Production CA 2011을 포함하는 유일한 UEFI 허용 데이터베이스 항목을 사용하여 확인됩니다. 따라서 시스템 및 디바이스 펌웨어만 추가할 수 있습니다. Arm이 아닌 시스템에서 UEFI 드라이버 및 애플리케이션은 UEFI 허용 데이터베이스의 키에 다시 연결하는 키로 서명할 수 있습니다.

시스템 또는 디바이스 펌웨어는 키 체인을 사용하여 시스템 부팅 ROM에 바인딩된 키로 다시 서명하거나 다른 수단(예: 서명된 캡슐 및 보호된 설치)으로 보호할 수 있습니다.

캡슐 서명

캡슐 콘텐츠는 OEM에 의해 결정됩니다. 캡슐은 OEM이 선택하는 형식으로 업데이트할 펌웨어 이미지 카탈로그만 포함하거나 EFI 애플리케이션 이미지(PE/COFF 파일 형식)의 형태로 배달될 수 있습니다. 캡슐이 PE/COFF 파일인 경우 Windows 펌웨어 업데이트 패키지 서명을 위해 Microsoft에 제출하기 전에 OEM에서 서명해야 합니다.

Arm 기반 시스템에서는 UEFI 허용 데이터베이스("db")에서 Microsoft Production CA 2011 이외의 키가 허용되지 않으며 Microsoft는 이 CA의 서명자를 사용하여 타사 UEFI 코드에 서명하지 않으므로 이러한 캡슐의 로드는 일반 UEFI LoadImage 서비스를 사용할 수 없습니다. 그러나 캡슐 애플리케이션은 부팅 ROM 공개 키 또는 UEFI PK에 대해 플랫폼별 확인을 사용하여 로드할 수 있습니다. 이 로드는 다른 이미지와 마찬가지로 TPM PCR[7]로 측정되어야 합니다. 더 일반적으로 캡슐 서명이 필요하다고 간주되고(예: 전체 업데이트 패키지의 무결성 및 신뢰성을 보장하기 위해) 캡슐이 UEFI 외부의 펌웨어 업데이트를 구성할 수 있는 경우, 캡슐은 플랫폼 보유, 비 UEFI 키를 사용하여 확인할 수 있는 방식으로 서명되어야 합니다(예: 부팅 ROM 또는 UE PK에 바인딩된 공개 키에 다시 연결하여 서명됨).

Arm이 아닌 시스템에서 캡슐은 UEFI 허용 데이터베이스의 항목에 다시 연결하는 키로 서명된 한 EFI 애플리케이션이 될 수 있습니다. 그런 다음 UEFI 보안 부팅을 자동으로 사용하여 캡슐의 무결성을 확인할 수 있습니다.

펌웨어 업데이트 패키지 서명

서명하려면 파트너 센터에 펌웨어 업데이트 패키지를 제출해야 합니다. 이 단계에서는 패키지 콘텐츠의 카탈로그 서명을 만듭니다. 카탈로그 서명은 Microsoft OS 로더가 UpdateCapsule을 통해 실제 업데이트를 펌웨어에 제공하기 전에 패키지가 인증되고 변조되지 않았는지 확인하는 데 사용됩니다.

서명을 위해 파트너 센터에 펌웨어 업데이트 패키지 제출:

  1. 이전 섹션의 지침에 따라 캡슐의 내용에 서명합니다.

  2. 캡슐을 포함하는 펌웨어 업데이트 패키지를 만들고 펌웨어 업데이트 패키지에 서명 테스트합니다. 자세한 내용은 업데이트 드라이버 패키지 작성을 참조하세요.

    Windows 8 시작해도 Windows는 테스트 환경에서도 OEM Verisign 서명 펌웨어 업데이트 패키지를 허용하지 않습니다.

  3. 펌웨어 업데이트 패키지를 설치하여 펌웨어를 업데이트합니다.

  4. 테스트 시스템에 HLK(Windows Hardware Lab Kit)를 설치하고 펌웨어 디바이스에 적용되는 모든 테스트를 실행합니다.

  5. 서명을 위해 HLK 로그 및 드라이버를 파트너 센터에 제출합니다.

펌웨어 업데이트 드라이버 패키지를 제출하는 동안 해당 OS로 Windows 8 이상을 선택해야 합니다. 하위 수준 OS를 선택하는 경우 파트너 센터는 SHA1 알고리즘을 사용하여 드라이버 패키지의 카탈로그에 서명합니다. Windows 8 모든 펌웨어 업데이트 드라이버 패키지는 SHA256 서명되어야 합니다.

펌웨어 드라이버 패키지를 통한 시스템 및 디바이스 펌웨어 업데이트

ESRT 테이블 채우기

다른 지역에 대한 펌웨어 사용자 지정

펌웨어 업데이트 패키지 작성

업데이트 설치