24.3. OpenSSL을 사용하여 사용자 정의 IMA 키 생성
OpenSSL 을 사용하여 코드를 보호하기 위해 디지털 인증서에 대한 CSR을 생성할 수 있습니다.
커널은 IMA 서명을 확인하기 위해 코드 서명 키를 .ima 인증 키를 검색합니다. .ima 인증 키에 코드 서명 키를 추가하기 전에 IMA CA 키가 .builtin_trusted_keys 또는 .secondary_trusted_keys 키 링에서 이 키를 서명했는지 확인해야 합니다.
사전 요구 사항
사용자 정의 IMA CA 키에는 다음과 같은 확장 기능이 있습니다.
- CA 부울이 선언된 기본 제약 조건 확장입니다.
-
CertSign 비트가 선언되었지만 Digital확장입니다.Signature가 선언되지 않은키Usage
사용자 정의 IMA 코드 서명 키는 다음 기준에 따릅니다.
- IMA CA 키는 이 사용자 정의 IMA 코드 서명 키에 서명했습니다.
-
사용자 지정 키에는
subjectKeyIdentifier확장이 포함됩니다.
-
x86_64또는aarch64시스템에서 UEFI Secure Boot 또는ppc64le시스템의 PowerVM Secure Boot가 활성화되어 있습니다.
절차
사용자 정의 IMA CA 키 쌍을 생성하려면 다음을 실행합니다.
# openssl req -new -x509 -utf8 -sha256 -days 3650 -batch -config ima_ca.conf -outform DER -out custom_ima_ca.der -keyout custom_ima_ca.priv선택 사항:
ima_ca.conf파일의 내용을 확인하려면 다음을 실행합니다.# cat ima_ca.conf [ req ] default_bits = 2048 distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = ca [ req_distinguished_name ] O = YOUR_ORG CN = YOUR_COMMON_NAME IMA CA emailAddress = YOUR_EMAIL [ ca ] basicConstraints=critical,CA:TRUE subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer keyUsage=critical,keyCertSign,cRLSignIMA 코드 서명 키에 대한 개인 키 및 CSR(인증서 서명 요청)을 생성하려면 다음을 실행합니다.
# openssl req -new -utf8 -sha256 -days 365 -batch -config ima.conf -out custom_ima.csr -keyout custom_ima.priv선택 사항:
ima.conf파일의 내용을 확인하려면 다음을 실행합니다.# cat ima.conf [ req ] default_bits = 2048 distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = code_signing [ req_distinguished_name ] O = YOUR_ORG CN = YOUR_COMMON_NAME IMA signing key emailAddress = YOUR_EMAIL [ code_signing ] basicConstraints=critical,CA:FALSE keyUsage=digitalSignature subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuerIMA CA 개인 키를 사용하여 CSR에 서명하여 IMA 코드 서명 인증서를 생성합니다.
# openssl x509 -req -in custom_ima.csr -days 365 -extfile ima.conf -extensions code_signing -CA custom_ima_ca.der -CAkey custom_ima_ca.priv -CAcreateserial -outform DER -out ima.der