Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.7.4. 파일 암호화 및 암호 해독

OpenSSL 로 파일을 암호화(및 암호 해독)하기 위해 pkeyutl 또는 enc 내장 명령을 사용할 수 있습니다. pkeyutl 을 사용하면RSA 키는 암호화 및 암호 해독을 수행하는 데 사용되지만 enc, 대칭 알고리즘으로 사용됩니다.

RSA 키 사용

일반 텍스트 라는 파일을 암호화하려면 다음과 같이 명령을 실행합니다.
~]$ openssl pkeyutl -in plaintext -out cyphertext -inkey privkey.pem
키와 인증서의 기본 형식은 PEM입니다. 필요한 경우 -keyform DER 옵션을 사용하여 DER 키 형식을 지정합니다.
암호화 엔진을 지정하려면 다음과 같이 -engine 옵션을 사용합니다.
~]$ openssl pkeyutl -in plaintext -out cyphertext -inkey privkey.pem -engine id
여기서 id 는 암호화 엔진의 ID입니다. 엔진의 가용성을 확인하려면 다음 명령을 실행합니다.
~]$ openssl engine -t
일반 텍스트 라는 데이터 파일에 서명하려면 다음과 같이 명령을 실행합니다.
~]$ openssl pkeyutl -sign -in plaintext -out sigtext -inkey privkey.pem
서명된 데이터 파일을 확인하고 데이터를 추출하려면 다음과 같이 명령을 실행합니다.
~]$ openssl pkeyutl -verifyrecover -in sig -inkey key.pem
예를 들어 DSA 키를 사용하여 서명을 확인하려면 다음과 같이 명령을 실행합니다.
~]$ openssl pkeyutl -verify -in file -sigfile sig -inkey key.pem
pkeyutl(1) 도움말 페이지에서는 공개 키 알고리즘 유틸리티를 설명합니다.

Symmetric Algorithms 사용

사용 가능한 대칭 암호화 알고리즘을 나열하려면 -l 과 같은 지원되지 않는 옵션으로 enc 명령을 실행합니다.
~]$ openssl enc -l
알고리즘을 지정하려면 해당 이름을 옵션으로 사용합니다. 예를 들어 aes-128-cbc 알고리즘을 사용하려면 다음 구문을 사용합니다.
openssl enc -aes-128-cbc
aes-128-cbc 알고리즘을 사용하여 일반 텍스트 라는 파일을 암호화하려면 다음 명령을 입력합니다.
~]$ openssl enc -aes-128-cbc -in plaintext -out plaintext.aes-128-cbc
이전 예제에서 얻은 파일의 암호를 해독하려면 다음 예제와 같이 -d 옵션을 사용합니다.
~]$ openssl enc -aes-128-cbc -d -in plaintext.aes-128-cbc -out plaintext
중요
enc 명령은 AEAD 암호를 올바르게 지원하지 않으며 ecb 모드는 안전한 것으로 간주되지 않습니다. 최상의 결과를 얻으려면 cbc,cfb,ofb 또는 ctr 이외의 다른 모드를 사용하지 마십시오.