타사 모듈을 설치할 때 "보안 부팅"비활성화 정책이 적용되는 이유


46

16.04를 설치할 때 타사 모듈 / 드라이버 를 설치하려면 " 보안 부팅 "을 해제하라는 메시지가 표시됩니다 .

나는 준수하지 않았다.

그리고 내가 사용하는 유일한 타사 드라이버 ( bcmwl-kernel-source )를 수동으로 설치할 때 ( 패키지 설치 중) "보안 부팅"을 끄라는 메시지가 다시 나타납니다.

사용 bcmwl 커널 소스 것은 완벽하게 괜찮다고 안전 부팅15.10 . 이것은 나에게 버그와 관련이없는 것 같습니다.

따라서 우분투가 더 이상 타사 드라이버 / 모듈에 서명하지 않고 "보안 부팅"으로 작동하도록하는 것처럼 보입니다 (??). 또는 타사 모듈을 안전하지 않은 것으로 간주하고 "보안 부팅"을 깨뜨려 서 명확하게하기 위해 해당 모듈을 비활성화하도록 강요합니까? 내가 맞아?


6
글쎄, IMO는 사람들이 조언을 할 때 보안 부팅이 타사 모듈을 손상시킬 것이라고 가정하기 때문입니다. 보안 부팅에 대한 기술 정보는 wiki.ubuntu.com/SecurityTeam/SecureBoot에 있습니다. 개인적으로 보안 부팅을 자르는 유비쿼터스 조언에 동의하지 않으며 보안 부팅이 활성화 된 하드웨어에서 잘 작동합니다. IMO는 보안 기능을 맹목적으로 비활성화 할 이유없이 보안 부팅을 활성화 된 상태로 둡니다.
Panther

8
나는 이것에 대해 깊이 조사하지는 않았지만 16.04는 15.10 및 이전 버전보다 엄격한 보안 부팅 시행으로 이동하고 있습니다. 특히 15.10 이전 버전에서 Shim이 GRUB을 시작 하면 GRUB은 모든 Linux 커널 을 시작 합니다 . 보안 부팅 보호는 GRUB으로 끝납니다. 16.04에서는 Secure Boot 정책 적용이 커널로 확장되므로 Ubuntu의 GRUB은 더 이상 서명되지 않은 커널을 시작하지 않습니다. 그 이상이면 서명되지 않은 커널 모듈도 이전에는 없었던 영향을받습니다. 그러나 다시, 나는 이것을 깊이 연구하지 않았습니다.
Rod Smith


1
사람들이 타사 모듈을 설치하려고 시스템을 망칠 때이 기능 이 좋은 것보다 더 해를 끼치 지 않을지 궁금합니다 .
Daniel

전원을 끈 후 다시 활성화해야합니까?
shaunakde

답변:


38

이것은 버그가 아니라 기능입니다.

Anthony Wong이 말했듯이 DKMS 패키지를 설치할 때 패키지를 직접 컴파일하고 있으므로 Canonical은 모듈에 서명 할 수 없습니다.

그러나 Secure Boot를 확실히 사용할 수는 있지만 이는 Secure Boot가 모듈의 신뢰 여부를 알 수 없기 때문에 Secure Boot가 자신을 보호하려고하는 유스 케이스입니다.

기본적으로 UEFI 시스템에는 PK (Platform Key)가 있으며 이는 프로세서에서 코드를로드하기 위해 궁극적으로 신뢰되는 인증 기관입니다.

GRUB 또는 shim 또는 기타 부팅 메커니즘은 루트 CA (PK)에서 신뢰하는 KEK에 의해 디지털 서명 될 수 있으므로 컴퓨터는 구성없이 Ubuntu Live USB / DVD와 같은 부팅 소프트웨어를 사용할 수 있습니다.

Ubuntu 16.04에서 커널은 CONFIG_MODULE_SIG_FORCE = 1로 빌드됩니다. 즉 , 커널이 플랫폼에서 신뢰할 수있는 키로 모듈에 서명되도록 강제합니다 . UEFI 플랫폼에는 기본적으로 사용자가 제어 할 수없는 PK가 포함되어 있으므로 자신의 컴퓨터에서 인식하는 키로 이진에 서명 할 수 없습니다.

어떤 사람들은 그것을 강타하고 반대하지만, 원하는 새로운 키를 등록하는 것보다 더 나은 방법은 없습니다 (보안 관점에서).

부팅 시스템에서 shim을 사용하는 경우 Machine Owner 's Key 데이터베이스라는 것을 사용하고 키를 MOK로 등록 할 수 있습니다 (mokutil을 사용하여 수행 할 수 있음). 그렇지 않은 경우 UEFI 데이터베이스에 키를 서명 키로 등록 할 수도 있습니다 .

키를 등록한 후 MOK를 사용하여 DKMS 빌드 패키지에 서명 할 수 있으며 (에 perl 스크립트가 있어야 함 /usr/src/kernels/$(uname -r)/scripts/sign-file) 서명 한 후에는 커널에로드 할 수 있습니다 .

물론 누군가는 이것에 대해 더 시각적 인 지침을 제시하고 아마도 키를 고려할 수 있도록 마법사 또는 더 나은 DKMS 표준을 만들어야 할 것입니다.

자신의 커널 모듈에 서명하는 방법에 대한이 설명을 참조 할 수 있습니다 : https://askubuntu.com/a/768310/12049


1
비활성화 한 후, "불안정한 모드 메시지로 부팅"이라는 메시지가 나타납니다. 실행 취소 하시겠습니까? 포럼의 문제를 설명조차하지 못하는 것 같습니다. @ ssice-나는 UBUNTU 14.04를 사용하고 있기 때문에 이것이 나에게 관련이 없다고 생각합니다. [
shaunakde

20

간단히 말해서 이것은 버그가 아니라 16.04에 도입 된 새로운 변경 사항입니다.

설치하는 것은 dkms 패키지이기 때문입니다. DKMS 모듈은 자신의 컴퓨터에서 컴파일되므로 Canonical은 모듈에 서명 할 수 없습니다. Canonical에서 서명 할 수 없으면 디지털 방식으로 확인할 방법이 없습니다. 보안 부팅을 설정 한 경우, 모듈을 사용할 수 없으며,이를 사용하려면 보안 부팅을 해제해야하므로 질문이 표시됩니다.

16.04에서만 발생하지만 이전 릴리스에서는 발생하지 않는 이유 때문에 Rod Smith가 좋은 대답을했습니다. Ubuntu 16.04에서 Ubuntu는 커널 수준으로 보안 부팅을 시작합니다. 16.04 이전에는 Ubuntu가 서명 된 커널 및 서명 된 커널 모듈을 사용하도록 강제하지 않았으며 보안 부팅이 설정되어 있어도. 그러나 이것은 16.04에서 더 이상 그렇지 않습니다.

이것은 관련 버그입니다 : https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532

이것은 관련 청사진입니다 : https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot


wl 모듈을 16.04 beta2와 함께 업데이트 한 후에도 여전히로드 할 수 있습니다. 그러나 이제 릴리스와 함께 "modprobe : ERROR : 'wl'을 (를) 삽입 할 수 없습니다 : 필수 키를 사용할 수 없습니다"라는 오류가 발생했습니다.
solsTiCe

sudo apt install mokutil; sudo mokutil --disable-validation
Anthony Wong


1

수락 된 답변은 매우 완전하지만 여기에서 가져온 간단한 정보를 추가하고 싶습니다.

https://askubuntu.com/a/843678/664391

기본적으로 안전한 부팅으로 설치 한 일부 드라이버를로드하지 못할 수 있으며 이는 상당히 실망 스러울 수 있습니다. 나는 이것을 직접 겪었습니다. 드라이버가 올바르게 설치되었지만 모든 것이 잘되는 것처럼 보였지만 작동하지 않았습니다. 보안 부팅으로 인해 OS 가로 드하지 못하게하는 시간이 생겼 습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.