21.3. 신뢰할 수 있는 키로 작업
keyctl
유틸리티를 사용하여 신뢰할 수 있는 키를 생성, 내보내기, 로드 및 업데이트할 수 있습니다.
사전 요구 사항
신뢰할 수 있는 플랫폼 모듈(TPM)이 활성화되어 활성화되어 있습니다. 커널 무결성 하위 시스템 및 신뢰할 수 있고 암호화된 키를 참조하십시오.
tpm2_pcrread
명령을 입력하여 시스템에 TPM이 있는지 확인할 수 있습니다. 이 명령의 출력에 여러 해시가 표시되면 TPM이 있습니다.
절차
다음 유틸리티 중 하나를 사용하여 영구 처리(예: 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
key
ctl add trusted < NAME > "new < KEY_LENGTH > keyhandle= <PERSISTENT-HANDLE > [options]" < KEYRING
>과 함께 TPM 2.0을 사용하여 신뢰할 수 있는 키를 만듭니다. 이 예에서 영구 처리는 81000001 입니다.# keyctl add trusted kmk "new 32 keyhandle=0x81000001" @u 642500861
이 명령은
32
바이트(256비트) 길이로kmk
라는 신뢰할 수 있는 키를 생성하여 사용자 인증 키(@u
)에 배치합니다. 키 길이는 32~128바이트(256~24비트)일 수 있습니다.커널 인증 키의 현재 구조를 나열합니다.
# 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)
매뉴얼 페이지 - 신뢰할 수 있는 암호화된 키
- 커널 키 보존 서비스
- 커널 무결성 하위 시스템