커널 컴파일 후 모듈 서명

커널 컴파일 후 모듈 서명

tmpfs에 커널을 구축하고 재부팅했습니다.

이제 타사 모듈을 컴파일하면 다음과 같은 메시지가 표시됩니다.

NO SIGN [M] XXXX.ko

어떻게 서명을 받을 수 있나요? 내 rpmbuild생각 엔 키 쌍이 생성된 것 같아요.

답변1

놀랍게도 문서가 부족합니다. 이 파일을 찾았는데,모듈 서명.txtRHEL6 커널 문서의 일부입니다. 이 문서에서는 커널 빌드의 일부로 모든 모듈에 서명한다고 가정하고 서명 키를 생성하는 방법을 보여줍니다.

cat >genkey <<EOF
%pubring kernel.pub
%secring kernel.sec
Key-Type: DSA
Key-Length: 512
Name-Real: A. N. Other
Name-Comment: Kernel Module GPG key
%commit
EOF
make scripts/bin2c
gpg --homedir . --batch --gen-key genkey
gpg --homedir . --export --keyring kernel.pub keyname |
 scripts/bin2c ksign_def_public_key __initdata >crypto/signature/key.h

Linux Journal에는 다음과 같은 제목의 기사도 있습니다.서명된 커널 모듈이를 수행하는 방법에 대한 몇 가지 세부 정보와 단계가 있지만 사용자 공간 도구 extract_pkeymod해당 참조를 찾을 수 없습니다.

둘러보고 싶을 수도 있겠네요그렉 크로우의 웹사이트주소, 그의 강연에서 유용한 내용을 찾을 수 있을 것입니다.

인용하다

답변2

커널 소스 디렉터리로 이동하여 다음을 수행합니다(예제).

./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko

CONFIG_MODULE_SIG.config를 열고 구성 값에서 읽어 커널이 사용하는 다이제스트 알고리즘을 확인하세요.

CONFIG_MODULE_SIG=y
CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_SHA512=y
CONFIG_MODULE_SIG_HASH="sha512"

관련 정보