4.7. OpenSSL 사용
OpenSSL 은 애플리케이션에 암호화 프로토콜을 제공하는 라이브러리입니다. openssl 명령줄 유틸리티를 사용하면 쉘의 암호화 함수를 사용할 수 있습니다. 여기에는 대화형 모드가 포함됩니다.
openssl 명령행 유틸리티에는 시스템에 설치된 openssl 의 버전에 대한 정보를 제공하는 여러 의사 명령이 있습니다. pseudo-commands list-standard-commands,list-message-digest-commands, list-cipher-commands 는 모든 표준 명령, 메시지 다이제스트 명령 또는 암호화 명령의 목록을 각각 출력하고, 현재 openssl 유틸리티에서 사용할 수 있는 명령을 각각 출력합니다.
pseudo-commands list-cipher-algorithms 및 list-message-digest-algorithms 는 모든 암호 및 메시지 다이제스트 이름을 나열합니다. pseudo-command list-public-key-algorithms 에는 지원되는 모든 공개 키 알고리즘이 나열됩니다. 예를 들어 지원되는 공개 키 알고리즘을 나열하려면 다음 명령을 실행합니다.
~]$ openssl list-public-key-algorithms
pseudo-command no- command-name 은 지정된 이름의 명령 이름을 사용할 수 있는지 여부를 테스트합니다. 쉘 스크립트에서 사용하기 위한 용도입니다. 자세한 내용은 man openssl(1) 을 참조하십시오.
4.7.1. 암호화 키 생성 및 관리
OpenSSL 을 사용하면 해당 개인 키에서 공개 키가 파생됩니다. 따라서 알고리즘을 결정한 첫 번째 단계는 개인 키를 생성하는 것입니다. 이 예에서 개인 키는 privkey.pem 이라고 합니다. 예를 들어 기본 매개 변수를 사용하여 RSA 개인 키를 만들려면 다음 명령을 실행합니다.
~]$ openssl genpkey -algorithm
RSA -out
privkey.pem
RSA 알고리즘은 다음 옵션을 지원합니다.
rsa_keygen_bits:numbits
- 생성된 키의 비트 수입니다. 지정하지 않으면1024
가 사용됩니다.rsa_keygen_pubexp:value
- RSA 공용 지수 값. 큰 10진수 값이거나 앞에0x
가 있는 경우 16진수 값일 수 있습니다. 기본값은65537
입니다.
예를 들어
3
을 공용 지수로 사용하여 2048비트 RSA 개인 키를 만들려면 다음 명령을 실행합니다.
~]$ openssl genpkey -algorithm
RSA -out
privkey.pem -pkeyopt
rsa_keygen_bits:2048 \ -pkeyopt
rsa_keygen_pubexp:3
128비트 AES 및 암호 “hello” 를 사용하여 출력하므로 개인 키를 암호화하려면 다음 명령을 실행합니다.
~]$ openssl genpkey -algorithm
RSA -out
privkey.pem -aes-128-cbc
-pass
pass:hello
개인 키 생성에 대한 자세한 내용은 man genpkey(1) 을 참조하십시오.