OpenSSL とコマンドラインで誰でもファイルを安全かつ高セキュリティでエンコードするためのソリューション:
PEM 形式でファイルを暗号化するための X.509 証明書を用意する必要があります。
ファイルを暗号化:
openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem
内容:
- 笑顔 - S/MIME ユーティリティの ssl コマンド (smime(1))
- -暗号化 - ファイル処理のために選択された方法
- -バイナリ - 安全なファイル プロセスを使用します。通常、入力メッセージは S/MIME 仕様の要求に従って「標準」形式に変換されますが、このスイッチはそれを無効にします。すべてのバイナリ ファイル (画像、音声、ZIP アーカイブなど) に必要です。
- -aes-256-cbc - 暗号化用に 256 ビットの暗号 AES を選択 (強力)。指定されていない場合、40 ビット RC2 が使用されます (非常に弱い)。 (サポートされている暗号)
- -plainfile.zip 内 - 入力ファイル名
- -out encrypted.zip.enc - 出力ファイル名
- -アウトフォーム DER - 出力ファイルをバイナリとしてエンコードします。が指定されていない場合、ファイルは base64 でエンコードされ、ファイル サイズは 30% 増加します。
- yourSslCertificate.pem - 証明書のファイル名。これは PEM 形式である必要があります。
このコマンドは、その形式に関係なく、非常に効果的に大きなファイルを強力に暗号化できます。
既知の問題: 巨大なファイル (>600MB) を暗号化しようとすると、何か問題が発生します。エラーはスローされませんが、暗号化されたファイルは破損します。常に各ファイルを確認してください。 (または PGP を使用 - 公開鍵によるファイル暗号化をより強力にサポート)
ファイルの復号化:
openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password
内容:
- -DER に通知 - 上記の -outform と同じ
- -inkey private.key - 秘密鍵のファイル名。これは PEM 形式である必要があり、パスワードで暗号化できます。
- -passin pass:your_password - 秘密鍵暗号化のパスワード。 (パスフレーズ引数)
公開鍵暗号は、任意の長さのファイルを暗号化するためのものではありません。対称暗号 (AES など) を使用して通常の暗号化を行います。新しいランダムな対称キーが生成され、使用され、RSA 暗号 (公開キー) で暗号化されるたびに。暗号文は、暗号化された対称鍵とともに受信者に転送されます。受信者は自分の秘密鍵を使用して対称鍵を復号化し、対称鍵を使用してメッセージを復号化します。
秘密鍵は決して共有されず、公開鍵のみがランダム対称暗号の暗号化に使用されます。