보안 부팅이 활성화된 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_withgrub-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.efi
Microsoft 서명 만 있습니다 :
/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.efi
Debian 인증서로 서명된 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-boot
systemd-boot
보안 부팅이 작동하려면 어떤 파일에 서명해야 하는지 확인하세요.
sudo sbctl verify
서명되지 않은 모든 문서에 서명하십시오(서명해야 할 내용은 다음과 같습니다. 필요에 따라 조정하십시오).
sudo sbctl sign -s /efi/EFI/GRUB/grubx64.efi
Kali가 Debian의 모델을 따른다면 Kali의 커널은 이미 서명되어 있지만 사용되지는 않습니다 sbctl
. 아마도 sbctl
커널이 서명되었음을 감지했을 뿐이므로 이제 다시 서명해야 한다는 것을 알려주지 않을 수도 있습니다.당신의열쇠?
아니면 그럴 수도 있고 생성된 커널에는 이제 여러 서명이 있습니다. 이것~해야 한다가능하지만 이는 아마도 Secure Boot 사양에서 충분히 테스트되지 않은 영역이므로 어딘가에 버그가 있을 수 있습니다. 서명이 잘못 적용되어 확인할 수 없는 것은 아닐까요? 아니면 UEFI 펌웨어(GRUB의 UEFI 버전처럼 펌웨어 루틴이 디스크 액세스에 사용되는 한 보안 부팅 서명의 유효성을 검사하는 궁극적인 책임)가 다중 서명 부팅 파일을 처리하는 데 버그가 있습니까?