KEK 및 db 인증서 업데이트

이 문서에서는 2025년 11월 7일 이전에 만든 Compute 인스턴스에서 보안 부트의 업데이트된 인증서를 신뢰하도록 허용된 서명 데이터베이스(db) 및 키 교환 키 (KEK) 변수를 업데이트하는 방법을 설명합니다.

KEK 및 db 업데이트는 영향을 받는 Compute 인스턴스를 다시 만들지 않는 고객을 위한 대안입니다.

시작하기 전에

보안 부트 KEK 및 db 인증서를 업데이트하기 전에 인스턴스에 업데이트가 필요한지 확인하고 잠재적인 부팅 또는 복호화 문제를 방지하기 위해 다음 준비를 완료하세요.

  • 기본 요건 확인: 인스턴스에 보안 부트 인증서 업데이트가 필요한지 확인합니다.
  • 데이터 무결성 및 키 복구: 디스크 암호화 (BitLocker 또는 LUKS FDE) 복구 키를 찾고 중요한 데이터를 백업합니다. 구성이 잘못되면 보안 변수를 변경하여 디스크에 대한 액세스를 잠글 수 있습니다.
  • Linux 업데이트 순서 지정 권장사항: Linux 인스턴스의 경우 새 shim으로 업데이트하기 전에 db UEFI 변수를 Microsoft UEFI CA 2023으로 업데이트하는 것이 좋습니다. 이 순서 지정은 데이터베이스에 2011 인증서만 포함되어 있는 동안 Microsoft UEFI CA 2023으로만 서명된 shim 업데이트가 적용되는 경우 잠재적인 CA 불일치 시나리오를 방지하는 데 도움이 됩니다.
  • 커스텀 PK 또는 KEK 구성: 인스턴스에서 커스텀 보안 부트 변수 (예: 커스텀 PK 또는 KEK)를 사용하는 경우 이 가이드에 제공된 표준 업데이트 파일(DBUpdate3P2023.bin 또는 kek2023update.bin)이 직접 적용되지 않습니다. UEFI 펌웨어에는 업데이트 파일이 시스템에 있는 KEK 또는 PK의 비공개 키로 서명되어야 합니다. 커스텀 키를 사용하는 경우 자체 비공개 키로 업데이트 바이너리에 서명하거나 커스텀 인증 기관을 통해 업데이트를 관리해야 합니다.
  • Google Cloud 백업 및 DR 어플라이언스: 관리형 어플라이언스입니다. 이러한 어플라이언스에서 보안 부트 인증서를 수동으로 업데이트할 필요가 없습니다. Google Cloud 모든 업데이트를 자동으로 관리합니다.

Linux에서 db 및 KEK 업데이트

허용된 서명 데이터베이스 (db) 및 키 교환 키 (KEK)를 업데이트하려면 운영체제 옵션을 선택하세요.

Debian 또는 Ubuntu

fwupd, efitools 또는 sbsigntool을 사용하여 Debian 또는 Ubuntu에서 보안 부트 인증서를 업데이트할 수 있습니다.

fwupd를 사용하여 인증서를 업데이트하는 것이 좋습니다. 이 방법을 사용하려면 fwupdmgr 버전 2.0.10 이상이 필요합니다. sudo fwupdmgr --version을 실행하여 버전을 확인합니다.

다음 명령어를 실행합니다.

sudo fwupdmgr refresh
sudo fwupdmgr update 5bc922b7bd1adb5b6f99592611404036bd9f42d0
sudo fwupdmgr update b7a1d3d90faa1f6275d9a98da4fb3be7118e61c7

옵션 2: efitools를 사용하여 업데이트

efitools 패키지를 사용하여 dbKEK 변수를 업데이트하려면 다음 단계를 따르세요.

db 업데이트
  1. Microsoft에서 허용된 서명 데이터베이스 (db) 업데이트 바이너리를 다운로드합니다.

     wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. db 변수를 업데이트합니다.

     sudo chattr -i /sys/firmware/efi/efivars/db-*
     sudo efi-updatevar -a -f DBUpdate3P2023.bin db
     sudo chattr +i /sys/firmware/efi/efivars/db-*
    
KEK 업데이트
  1. 인증서 업데이트가 포함된 .cab 아카이브를 다운로드합니다.

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. gcab 유틸리티를 설치합니다.

     sudo apt update && sudo apt install gcab -y
    
  3. 아카이브를 추출하고 추출된 kek2023update.bin 파일의 SHA-256 해시가 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf와 일치하는지 확인합니다.

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
    
  4. 업데이트를 적용합니다.

     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo efi-updatevar -a -f kek2023update.bin KEK
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
    

옵션 3: sbsigntool을 사용하여 업데이트

sbsigntool 패키지의 sbkeysync 유틸리티를 사용하여 dbKEK 변수를 업데이트하려면 sbsigntoolgcab을 설치합니다.

sudo apt update && sudo apt install sbsigntool gcab -y
db 업데이트
  1. Microsoft에서 db 업데이트 바이너리를 다운로드합니다.

     wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. 키를 동기화합니다.

     sudo mkdir -p /etc/secureboot/keys/db
     sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/
     sudo chattr -i /sys/firmware/efi/efivars/db-*
     sudo sbkeysync --verbose
     sudo chattr +i /sys/firmware/efi/efivars/db-*
    
KEK 업데이트
  1. KEK 인증서 업데이트를 다운로드하고 추출합니다.

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. 추출된 kek2023update.bin 파일의 SHA-256 해시가 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf와 일치하는지 확인합니다.

     sha256sum kek2023update.bin
    
  3. 키를 동기화합니다.

     sudo mkdir -p /etc/secureboot/keys/KEK
     sudo cp kek2023update.bin /etc/secureboot/keys/KEK/
     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo sbkeysync --verbose
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
    

RHEL (Red Hat Enterprise Linux)

sbsigntools를 사용하여 RHEL에서 보안 부트 인증서를 업데이트할 수 있습니다. RHEL 이미지에는 기본적으로 UEFI 인증서 업데이트를 지원하지 않는 이전 버전의 fwupd가 있을 수 있습니다.

sbsigntools 패키지의 sbkeysync 유틸리티를 사용하여 dbKEK 변수를 업데이트하려면 다음 단계를 따르세요.

  1. EPEL 저장소를 사용 설정하고 sbsigntoolscabextract를 설치합니다.

    sudo dnf install epel-release -y
    sudo dnf install sbsigntools cabextract -y
    
  2. db 변수를 업데이트하려면 다음 단계를 따르세요.

    1. Microsoft에서 허용된 서명 데이터베이스 (db) 업데이트 바이너리를 다운로드합니다.

      wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
      
    2. 키를 동기화합니다.

      sudo mkdir -p /etc/secureboot/keys/db
      sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/
      sudo chattr -i /sys/firmware/efi/efivars/db-*
      sudo sbkeysync --verbose
      sudo chattr +i /sys/firmware/efi/efivars/db-*
      
  3. KEK 변수를 업데이트하려면 다음 단계를 따르세요.

    1. KEK 인증서 업데이트를 다운로드하고 추출합니다.

      wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    2. 추출된 kek2023update.bin 파일의 SHA-256 해시가 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf와 일치하는지 확인합니다.

      sha256sum kek2023update.bin
      
    3. 키를 동기화합니다.

      sudo mkdir -p /etc/secureboot/keys/KEK
      sudo cp kek2023update.bin /etc/secureboot/keys/KEK/
      sudo chattr -i /sys/firmware/efi/efivars/KEK-*
      sudo sbkeysync --verbose
      sudo chattr +i /sys/firmware/efi/efivars/KEK-*
      

SLES (SUSE Linux Enterprise Server)

sbsigntools 또는 efitools를 사용하여 SLES 또는 openSUSE에서 보안 부트 인증서를 업데이트할 수 있습니다. SLES 이미지에는 이전 버전의 fwupd가 있거나 전혀 제공되지 않을 수 있습니다.

옵션 1: sbsigntools를 사용하여 업데이트

sbsigntools 패키지의 sbkeysync 유틸리티를 사용하여 dbKEK 변수를 업데이트하려면 SUSE 패키지 허브를 사용 설정하고 sbsigntoolscabextract를 설치합니다.

sudo SUSEConnect -p PackageHub/15.5/x86_64
sudo zypper install sbsigntools cabextract -y
db 업데이트
  1. Microsoft에서 db 업데이트 바이너리를 다운로드합니다.

     wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
     ```
    
  2. 키를 동기화합니다.

     sudo mkdir -p /etc/secureboot/keys/db
     sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/
     sudo chattr -i /sys/firmware/efi/efivars/db-*
     sudo sbkeysync --verbose
     sudo chattr +i /sys/firmware/efi/efivars/db-*
     ```
    
KEK 업데이트
  1. KEK 인증서 업데이트를 다운로드하고 추출합니다.

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. 추출된 kek2023update.bin 파일의 SHA-256 해시가 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf와 일치하는지 확인합니다.

     sha256sum kek2023update.bin
     ```
    
  3. 키를 동기화합니다.

     sudo mkdir -p /etc/secureboot/keys/KEK
     sudo cp kek2023update.bin /etc/secureboot/keys/KEK/
     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo sbkeysync --verbose
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
     ```
    

옵션 2: efitools를 사용하여 업데이트

efitools 패키지를 사용하여 dbKEK 변수를 업데이트하려면 다음 단계를 따르세요.

db 업데이트
  1. Microsoft에서 허용된 서명 데이터베이스 (db) 업데이트 바이너리를 다운로드합니다.

     wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
     ```
    
  2. db 변수를 업데이트합니다.

     sudo chattr -i /sys/firmware/efi/efivars/db-*
     sudo efi-updatevar -a -f DBUpdate3P2023.bin db
     sudo chattr +i /sys/firmware/efi/efivars/db-*
     ```
    
KEK 업데이트
  1. 인증서 업데이트가 포함된 .cab 아카이브를 다운로드합니다.

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. SUSE 패키지 허브를 사용 설정하고 gcab 유틸리티를 설치합니다.

     sudo SUSEConnect -p PackageHub/15.5/x86_64
     sudo zypper install gcab -y
     ```
    Note: Replace `15.5` with your SLES version if different.
    
  3. 아카이브를 추출하고 추출된 kek2023update.bin 파일의 SHA-256 해시가 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf와 일치하는지 확인합니다.

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
     ```
    
  4. 업데이트를 적용합니다.

     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo efi-updatevar -a -f kek2023update.bin KEK
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
     ```
    

Windows에서 db 및 KEK 업데이트

이 인스턴스에서 보안 부트를 사용하지 않거나 사용할 계획이 없는 경우 이러한 인증서 업데이트를 적용할 필요가 없습니다. Windows 운영체제는 일반적으로 보안 부트가 사용 설정되어 있지 않으면 이러한 보안 부트 인증서 업데이트를 적용하려는 시도를 무시합니다. 업데이트가 필요하지 않기 때문입니다.

나중에 보안 부트를 사용하려면 먼저 인스턴스에서 보안 부트를 사용 설정하여 보안 부트 인증서를 업데이트해야 합니다.

Windows 인스턴스에서 레지스트리 설정 및 예약된 작업은 호환되는 버전의 업데이트를 트리거합니다.

  1. Windows 인스턴스에 최근 월별 업데이트가 적용되어 있는지 확인합니다.
  2. PowerShell에서 관리자 권한으로 다음을 실행합니다.

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. 인스턴스를 재부팅하여 펌웨어 변수에 대한 작업을 허용합니다. 가상화 보안 기능이 활성 상태인 경우 일부 환경에서는 두 번 다시 시작해야 합니다.