8.3. 신뢰할 수 있는 키로 작업
keyctl
유틸리티를 사용하여 신뢰할 수 있는 키를 생성, 내보내기, 로드 및 업데이트할 수 있습니다.
사전 요구 사항
64비트 ARM 아키텍처 및 IBM Z의 경우
trusted
커널 모듈이 로드됩니다.# modprobe trusted
커널 모듈을 로드하는 방법에 대한 자세한 내용은 시스템 런타임 시 커널 모듈 로드 를 참조하십시오.
- 신뢰할 수 있는 플랫폼 모듈(TPM)이 활성화되어 활성화되어 있습니다. 커널 무결성 하위 시스템 및 신뢰할 수 있고 암호화된 키를 참조하십시오.
Red Hat Enterprise Linux 8은 TPM 1.2 및 TPM 2.0을 모두 지원합니다. TPM 1.2를 사용하는 경우 1단계를 건너뜁니다.
절차
다음 유틸리티 중 하나를 사용하여 영구 처리(예: 81000001 )가 있는 SHA-256 기본 스토리지 키로 2048비트 RSA 키를 생성합니다.
tss2
패키지를 사용하여 다음을 수행합니다.# TPM_DEVICE=/dev/tpm0 tsscreateprimary -hi o -st Handle 80000000 # TPM_DEVICE=/dev/tpm0 tssevictcontrol -hi o -ho 80000000 -hp 81000001
tpm2-tools
패키지를 사용하여 다음을 수행합니다.# tpm2_createprimary --key-algorithm=rsa2048 --key-context=key.ctxt name-alg: value: sha256 raw: 0xb … sym-keybits: 128 rsa: xxxxxx… # tpm2_evictcontrol -c key.ctxt 0x81000001 persistentHandle: 0x81000001 action: persisted
신뢰할 수 있는 키를 생성합니다.
keyctl 구문으로 TPM 2.0을 사용하면 trusted < NAME > "new < KEY_LENGTH > keyhandle= <PERSISTENT-HANDLE > [options]" < KEYRING
> . 이 예에서 영구 처리는 81000001 입니다.# keyctl add trusted kmk "new 32 keyhandle=0x81000001" @u 642500861
이 명령은
32
바이트(256비트) 길이로kmk
라는 신뢰할 수 있는 키를 생성하여 사용자 인증 키(@u
)에 배치합니다. 키는 32~128바이트(256비트에서 1024비트)의 길이를 가질 수 있습니다.keyctl 구문으로 TPM 1.2를 사용하면 신뢰할 수 있는 < NAME > "new <KEY_LENGTH>" <KEYRING
> :# keyctl add trusted kmk "new 32" @u
커널 인증 키의 현재 구조를 나열합니다.
# keyctl show Session Keyring -3 --alswrv 500 500 keyring: ses 97833714 --alswrv 500 -1 \ keyring: uid.1000 642500861 --alswrv 500 500 \ trusted: kmk
신뢰할 수 있는 키의 일련 번호를 사용하여 사용자 공간 Blob으로 키를 내보냅니다.
# keyctl pipe 642500861 > kmk.blob
명령은
pipe
하위 명령과kmk
의 일련 번호를 사용합니다.사용자 공간 Blob에서 신뢰할 수 있는 키를 로드합니다.
# keyctl add trusted kmk "load `cat kmk.blob`" @u 268728824
TPM-sealed 신뢰할 수 있는 키(
kmk
)를 사용하는 안전한 암호화된 키를 만듭니다. 다음 구문을 따르십시오. keyctl add encrypted <NAME> "new [FORMAT] <KEY_TYPE>:<PRI Cryostat_KEY_NAME> <KEY_LENGTH>" <KEYRING > :# keyctl add encrypted encr-key "new trusted:kmk 32" @u 159771175
추가 리소스
-
keyctl(1)
매뉴얼 페이지 - 신뢰할 수 있는 암호화된 키
- 커널 키 보존 서비스
- 커널 무결성 하위 시스템