OpenSSL을 이용한 간단한 파일 암호화 하기

리눅스는 수많은 강력한 암호화 소프트웨어를 가지고 있습니다.
여러분들은 그 중에서 한 두개의 파일을 빨리 암호화 하고 싶을 때는 어떤 것을 사용하십니까?
이런 목적으로는 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/

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>