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_pkey
이 작업을 수행하는 방법에 대한 좋은 세부 정보와 단계가 있지만 사용자 공간 도구 와 mod
참조 항목을 찾을 수 없습니다 .
여기저기 찔러보고 싶을 수도 있겠네요그렉 크로아의 사이트, 그의 프레젠테이션 중 하나에서 유용한 내용을 찾을 수 있습니다.
참고자료
답변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"