Kali Linux에서 보안 부팅 시 "오류: /boot/vmlinuz-6.6.9-amd64 서명이 유효하지 않습니다."

Kali Linux에서 보안 부팅 시 "오류: /boot/vmlinuz-6.6.9-amd64 서명이 유효하지 않습니다."

보안 부팅이 활성화된 Kali Linux 시스템을 실행하려고 하면 GRUB에서 " error: /boot/vmlinuz-6.6.9-amd64 has invalid signature.보안 부팅을 끄고 싶지 않습니다."를 반환합니다. 나는 여기의 지침을 따랐습니다.https://www.reddit.com/r/archlinux/comments/10pq74e/my_easy_method_for_setting_up_secure_boot_with
grub-install --target=x86_64-efi --efi-directory=/boot/efi --modules="tpm" --disable-shim-lock명령을 사용하여 grub을 다시 설치했습니다 .
저는 Windows 11과 Kali Linux를 이중 부팅하고 있습니다.
저는 HP Envy x360을 사용하고 있습니다.

답변1

설명당신이 링크한 Reddit 게시물grubx64.efi설치된 프로그램이 Microsoft에 의해 서명된 경우에만 작동합니다 grub-install. 분명히 Arch는 이를 위해 시간과 돈을 소비했을 수 있습니다.

Debian은 작업을 다르게 수행하기로 선택했으며 Kali는 Debian을 기반으로 하기 때문에 동일한 접근 방식이 Kali에서도 작동할 것입니다. 데비안의 보안 부팅 솔루션 중에는 shimx64.efiMicrosoft 서명 만 있습니다 :

/boot/efi/EFI/debian# pesign -S -i shimx64.efi 
---------------------------------------------
certificate address is 0x7f0756f2a498
Content was not encrypted.
Content is detached; signature cannot be verified.
The signer's common name is Microsoft Windows UEFI Driver Publisher  <--- Microsoft!
No signer email address.
No signing time included.
There were certs or crls included.
---------------------------------------------

데비안은 실제로 다음과 같이 심을 만듭니다.재현 가능한 바이너리, 분리된 Microsoft 서명을 shim 소스 코드와 함께 별도의 파일로 제공할 수 있으며, shim을 감사하려는 경우 직접 빌드하여 서명을 추가할 수 있습니다. 올바른 컴파일러 버전과 정확한 프로세스를 통해 결과 빌드는 Debian과 100% 동일하므로 서명이 첨부되면 유효합니다.

사용하면 Debian의 Secure Boot 인증서가 화이트리스트에 비영구적으로 추가되고 시스템은 grubx64.efiDebian 인증서로 서명된 Debian을 시작할 수 있습니다.

/boot/efi/EFI/debian# pesign -S -i grubx64.efi 
---------------------------------------------
certificate address is 0x7f87b4b03008
Content was not encrypted.
Content is detached; signature cannot be verified.
The signer's common name is Debian Secure Boot Signer 2022 - grub2  <- no MS, just Debian
No signer email address.
Signing time: Wed Oct 04, 2023
There were certs or crls included.
---------------------------------------------

이는 Microsoft가 새 버전에 서명할 때까지 기다릴 필요가 없기 때문에 GRUB 업데이트를 통해 데비안에 더 많은 유연성을 제공합니다. 심은 매우 간단하고 철저하게 감사된 코드 조각이어야 하므로 업데이트가 더 적게 필요할 것으로 예상됩니다.

Kali 배포판은 분명히 데비안의 개인 키에 접근할 수 없기 때문에 Kali는 배포판에 대한 자체 서명을 가지고 있어야 합니다.

Reddit 게시물의 레시피는 부트로더의 일부인 sbctl것으로 보이며 기본적으로만 이에 대해 관심을 갖고 있습니다 . 이는 분명히 Reddit 포스터가 다음과 같이 해야 했던 이유입니다.systemd-bootsystemd-boot

보안 부팅이 작동하려면 어떤 파일에 서명해야 하는지 확인하세요.

sudo sbctl verify

서명되지 않은 모든 문서에 서명하십시오(서명해야 할 내용은 다음과 같습니다. 필요에 따라 조정하십시오).

sudo sbctl sign -s /efi/EFI/GRUB/grubx64.efi

Kali가 Debian의 모델을 따른다면 Kali의 커널은 이미 서명되어 있지만 사용되지는 않습니다 sbctl. 아마도 sbctl커널이 서명되었음을 감지했을 뿐이므로 이제 다시 서명해야 한다는 것을 알려주지 않을 수도 있습니다.당신의열쇠?

아니면 그럴 수도 있고 생성된 커널에는 이제 여러 서명이 있습니다. 이것~해야 한다가능하지만 이는 아마도 Secure Boot 사양에서 충분히 테스트되지 않은 영역이므로 어딘가에 버그가 있을 수 있습니다. 서명이 잘못 적용되어 확인할 수 없는 것은 아닐까요? 아니면 UEFI 펌웨어(GRUB의 UEFI 버전처럼 펌웨어 루틴이 디스크 액세스에 사용되는 한 보안 부팅 서명의 유효성을 검사하는 궁극적인 책임)가 다중 서명 부팅 파일을 처리하는 데 버그가 있습니까?

관련 정보