UEFI 보안 부팅을 활성화하려면 GRUB2 부트로더에 서명하세요.

UEFI 보안 부팅을 활성화하려면 GRUB2 부트로더에 서명하세요.

사전 준비 작업은 다음과 같습니다.

  • 리눅스 4.2.3-젠투
  • GRUB2
  • UEFI, 보안 부팅 꺼짐

이제 보안 부팅을 망쳐서 활성화하고 싶습니다. 다소간의 관심이 가이드, 나는 가지고있다:

  1. MS의 백업 기본 키:

    #efi-readvar -v PK -o old_PK.esl
    #efi-readvar -v KEK -o old_KEK.esl
    #efi-readvar -v db -o old_db.esl
    #efi-readvar -v dbx -o old_dbx.esl
    
  2. 나만의 키 생성:

    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my platform key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256
    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my key exchange key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
    #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my kernel signing key/" -keyout db.key -out db.crt -days 3650 -nodes -sha256
    #cert-to-efi-sig-list -g "$(uuidgen)" PK.crt PK.esl
    #sign-efi-sig-list -k PK.key -c PK.crt PK PK.esl PK.auth
    
  3. efi-readvar재부팅 시 키 입력이 출력되지 않도록 BIOS에서 키 입력을 지웁니다.

  4. 백업된 키를 다시 설정하고 내 키를 추가합니다.

    #efi-updatevar -e -f old_KEK.esl KEK
    #efi-updatevar -e -f old_db.esl db
    #efi-updatevar -e -f old_dbx.esl dbx
    #efi-updatevar -a -c KEK.crt KEK
    #efi-updatevar -a -c db.crt db
    #efi-updatevar -f PK.auth PK
    
  5. 부트로더에 서명합니다.

    #cp /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi.old
    #sbsign --key db.key --cert db.crt --output /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi
    

확인 과정은 다음과 같습니다.

#sbverify --cert db.crt /boot/EFI/grub/grubx64.efi
 Signature verification OK.

그럼에도 불구하고 BIOS에서 보안 부팅을 켜고 재부팅하면 일반적인 오류 메시지가 나타나고 서명되지 않은 것처럼 GRUB가 호출되지 않습니다. 내가 무엇을 놓치고 있나요?

관련 정보