10.6. 기본 Clevis 및 TPM2 암호화-클라이언트 작업
Clevis 프레임워크는 일반 텍스트 파일을 암호화하고 JSON 웹 암호화(JWE) 형식과 LUKS 암호화 블록 장치의 암호화 텍스트를 모두 해독할 수 있습니다. Clevis 클라이언트는 암호화 작업을 위해 Tang 네트워크 서버 또는 신뢰할 수 있는 Platform Module 2.0(TPM 2.0) 칩을 사용할 수 있습니다.
다음 명령은 일반 텍스트 파일을 포함하는 예제의 Clevis에서 제공하는 기본 기능을 보여줍니다. Clevis 또는 Clevis+TPM 배포 문제를 해결하는 데도 사용할 수 있습니다.
Tang 서버에 바인딩된 암호화 클라이언트
Clevis 암호화 클라이언트가 Tang 서버에 바인딩되는지 확인하려면
clevis encrypt tang
하위 명령을 사용합니다.$ clevis encrypt tang '{"url":"http://tang.srv:port"}' < input-plain.txt > secret.jwe The advertisement contains the following signing keys: _OsIk0T-E2l6qjfdDiwVmidoZjA Do you wish to trust these keys? [ynYN] y
위 예제의
http://tang.srv:port
URL을tang
이 설치된 서버의 URL과 일치하도록 변경합니다.secret.jwe
출력 파일에는 JWE 형식의 암호화된 암호 텍스트가 포함되어 있습니다. 이 암호화 방식 텍스트는input-plain.txt
입력 파일에서 읽습니다.또는 구성에 SSH 액세스 권한이 없는 Tang 서버와의 비대화형 통신이 필요한 경우 광고를 다운로드하여 파일에 저장할 수 있습니다.
$ curl -sfg http://tang.srv:port/adv -o adv.jws
파일 또는 메시지의 암호화와 같은 다음 작업에 대해
adv.jws
파일의 광고를 사용합니다.$ echo 'hello' | clevis encrypt tang '{"url":"http://tang.srv:port","adv":"adv.jws"}'
데이터의 암호를 해독하려면
clevis decrypt
명령을 사용하여 JWE(암호화 텍스트)를 제공합니다.$ clevis decrypt < secret.jwe > output-plain.txt
TPM 2.0을 사용하는 암호화 클라이언트
TPM 2.0 칩을 사용하여 암호화하려면 JSON 구성 개체 형식의 유일한 인수와 함께
clevis encrypt tpm2
하위 명령을 사용하십시오.$ clevis encrypt tpm2 '{}' < input-plain.txt > secret.jwe
다른 계층 구조, 해시 및 키 알고리즘을 선택하려면 구성 속성을 지정합니다.
$ clevis encrypt tpm2 '{"hash":"sha256","key":"rsa"}' < input-plain.txt > secret.jwe
데이터의 암호를 해독하려면 JSON 웹 암호화(JWE) 형식으로 암호화 텍스트를 제공합니다.
$ clevis decrypt < secret.jwe > output-plain.txt
또한 핀은 PCR(Platform Configuration Registers) 상태에 대한 데이터 잠금을 지원합니다. 이렇게 하면 PCR 해시 값이 봉인할 때 사용된 정책과 일치하는 경우에만 데이터를 봉인 해제할 수 있습니다.
예를 들어 SHA-256 뱅크의 인덱스 0과 7로 PCR에 데이터를 봉인하려면 다음과 같이 하십시오.
$ clevis encrypt tpm2 '{"pcr_bank":"sha256","pcr_ids":"0,7"}' < input-plain.txt > secret.jwe
PCR의 해시는 다시 작성할 수 있으며 더 이상 암호화된 볼륨을 잠금 해제할 수 없습니다. 따라서 PCR의 값이 변경된 경우에도 암호화된 볼륨을 수동으로 잠금 해제할 수 있는 강력한 암호를 추가합니다.
shim-x64
패키지를 업그레이드한 후 시스템이 암호화된 볼륨 잠금을 자동으로 해제할 수 없는 경우, KCS를 다시 시작한 후 Clevis TPM2의 단계에 따라 LUKS 장치의 암호를 해독 하지 않습니다.
추가 리소스
-
clevis-encrypt-tang(1)
,clevis-luks-unlockers(7)
,clevis(1)
, andclevis-encrypt-tpm2(1)
도움말 페이지 clevis
,clevis decrypt
,clevis encrypt tang
명령은 인수 없이 내장 CLI 도움말을 보여줍니다. 예를 들면 다음과 같습니다.$ clevis encrypt tang Usage: clevis encrypt tang CONFIG < PLAINTEXT > JWE ...