리눅스는 수많은 강력한 암호화 소프트웨어를 가지고 있습니다.
여러분들은 그 중에서 한 두개의 파일을 빨리 암호화 하고 싶을 때는 어떤 것을 사용하십니까?
이런 목적으로는 OpenSSL toolkit 이 적합합니다.
만약 Ubuntu 배포판을 사용하고 있다면 이 툴이 이미 설치되어 있기 때문에 바로 사용할 수 있습니다. 이 툴은 상상 이상으로 강력한 암호화를 제공해 줍니다.
아래는 파일 하나를 aes 암호화 하는 명령어입니다:
>> openssl aes-256-cbc -a -salt -in secrets.txt -out secrets.txt.enc
위의 명령어를 살펴보면…
- openssl 은 OpenSSL toolkit 의 명령어이다.
- 이어서 aes-256-cbc 대칭 암호화를 사용하겠다고 명시한다. (256bit AES 는 미정부가 극비정보를 암호화 할 때 사용하는 기법이다.)
- -a 옵션은 암호화 결과가 base64 기반으로 기록되도록 하여, text editor로 output을 보거나 이메일로 암호 결과를 붙여넣기 등을 할 수 있도록 한다.
- -salt 옵션은 암화 수준을 강화시키는 옵션으로 항상 사용되어야 한다.
- -in secrets.txt 는 암호화할 평문을 나타낸다.
- -out secrets.txt.enc는 암호환 결과파일이다.
- 이 명령을 수행하자 마자 평문을 암호화하기 위한 대칭키 암호를 물어볼 것이다.
암호화 명령만 있고 복호화 명령이 없으면 안되겠죠?
아래는 반대로 위에서 암호화된 문서를 평문으로 바꾸는 명령입니다:
>> openssl aes-256-cbc -d -a -in secrets.txt.enc -out secrets.txt.new
- -d 복호화를 할 때 주는 옵션이다.
- -a 암호화된 문서가 base64 기반일 때는 복호화 할 때도 이 옵션을 붙인다.
- -in secrets.txt.enc 는 암호화된 암호문이다.
- -out secrets.txt.new 는 복호화한 후 출력되는 평문을 가르킨다.
자 그럼. 아래 암호문은 무슨 string을 암호화한 것일까요? OpenSSL을 사용해서 풀어봅시다. (암호는 pass 입니다.)
U2FsdGVkX18YcWkbmhsN7M/MP1E+GLf4IqmNsa53T+A=
글을 복사해서 text 파일로 저장 후 위에 언급한 명령을 써도 되고, 간단히 아래 명령을 써도 됩니다.
>> echo U2FsdGVkX18YcWkbmhsN7M/MP1E+GLf4IqmNsa53T+A= | openssl aes-256-cbc -d -a
원문: http://tombuntu.com/index.php/2007/12/12/simple-file-encryption-with-openssl/