Watch

OpenSSL を使用してコマンドラインからファイルを暗号化および復号化する

OpenSSL を使用してコマンドラインからファイルを暗号化および復号化する

OpenSSLでファイルを暗号化および復号化する

コマンドラインからファイルを素早く暗号化する必要がありますか? OpenSSL を使用すると、ファイルを非常に簡単に暗号化および復号化できます。

このチュートリアルでは、des3暗号化を使用します。これは簡単に言うと、複雑な暗号化アルゴリズムを各データブロックに3回適用することで、ブルートフォース攻撃による解読を困難にするものです。ここではMac OS Xに焦点を当てていますが、これらのコマンドはOpenSSLがインストールされている環境であれば、古いバージョンのOS XやLinuxなどでも動作します。

OpenSSLでファイルを暗号化する方法

openssl の構文は基本的です:

openssl [encryption type] -in [file to encrypt]

前述の通り、暗号化にはdes3を使用し、入力にはテキストファイルを使用します。また、エラーを防ぐため、出力ファイルも別に指定します。コマンドは以下のようになります。

openssl des3 -in file.txt -out encrypted.txt

暗号化が完了する前にパスワードの設定と確認を求められます。このパスワードを紛失すると、ファイルにアクセスできなくなります。

補足:-in filename で入力ファイルのみを指定することもできますが、問題が発生する可能性があります。予期せぬ問題を防ぐため、入力と出力に同じファイルを指定しないでください。同じファイルを指定してしまうと、暗号化の前後を問わず元のファイルが残ります。そのため、そのファイルは個別に、できれば安全な削除方法を用いて処理する必要があります。

OpenSSL でファイルを復号化する

openssl des3 -d -in encrypted.txt -out normal.txt

ファイルを復号化するには、以前に設定したパスワードが必要になります。

入力と出力の配置を切り替えること以外では、元のファイルはそのまま残りますが、ここでの主な違いは、openssl にファイルを復号化するように指示する -d フラグです。

当然のことながら、OpenSSL で暗号化されたファイルをパスワードを入力せずに開こうとするとどうなるのか疑問に思うかもしれません。おそらくエラーメッセージが表示されるでしょうが、TextEdit などで強制的にファイルを開くと、「Salted」というテキストに続いて、次のような意味不明な文字列が表示されます。

暗号化されたファイル

ファイルは、openssl によって再度復号化されるまで読み取り不可のままになります。

ファイル セキュリティの詳細については、Mac のパスワード保護、パーティション、zip アーカイブ、ディスク イメージ内のファイルとフォルダーの暗号化、さらには iPhone と iPad の機密データを安全に保つための iOS バックアップの暗号化など、弊社の他の投稿もぜひご覧ください。