Linuxでファイルまたはディレクトリを暗号化する方法は?


26

Linuxのターミナルでファイルまたはディレクトリを暗号化するようなことを行う最も一般的なコマンドは何ですか?

回答:


31

gpgになると思います。ただし、ファイルとディレクトリの構文は異なります。

暗号化

ファイルの場合(出力ファイル名.gpg):

gpg -c filename

ダースの場合:

gpg-zip -c -o file.gpg dirname

解読

ファイルの場合(出力ファイル名.gpg):

gpg filename.gpg

ダースの場合:

gpg-zip -d file.gpg

編集:@ Mk12が暗号化/復号化の圧縮/解凍の誤りを指摘したので修正。


それは「暗号化」と「復号化」ではありませんか?
mk12

誰もディレクトリを暗号化する方法を言っていません。
チョビー14年

1
@chovy上記ではありません:dirsの場合:gpg-zip -c -o file.gpg dirname
celebdor 14年

@celebdorはそれを逃しました。ありがとう。編集:それは私のために動作しません。ファイルを復号化すると、奇妙な暗号化された出力が得られます。
チョビー14年

@chovy:それを聞いてすみません。私はミント17の下1.4.16 GPG-ZIP(GnuPGの)を使用して、私のために働いた上に示したようにディレクトリを暗号化および復号化することを確認することができます
マイケルScheper

10
  • opensslで

openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3

復号化:

openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar

  • AESで暗号化する

aescrypt -e -p password file.jpg

復号化:

aescrypt -d -p password file.jpg.aes


1
多くの場合、すぐに使用できるopensslでそれを行う方法を示すための+1。
DevSolar

確かに、しかし、3DESが安全でないとみなされ、使用すべきではない、AES(aescryptは)非常に良いオプションで、以下を参照してくださいstackoverflow.com/questions/1619212/...
jmng

2

GnuPGをお試しください。

暗号化するには: gpg -c filename

復号化するには: gpg filename.gpg


2

これはopensslとtarを使用する私の方法です

暗号化されたディレクトリを開く:

openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault

暗号化されたディレクトリのロック:

tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault

1
rm -rデータを削除しません。単にリンクを解除するだけです。srmディスクからデータを消去するようなものを使用する必要があります。
-jbindel

2

私は個人的にaescryptほとんど使用しています。

      aescrypt -e "File" 

復号化:

      aescrypt -d "File"

または、mcryptがあります。

      mcrypt "File" 

復号化:

      mcrypt -d "File"

また、ディレクトリについては、ディレクトリをtarし、それを暗号化することをお勧めします。次に、暗号化を解除した後、ファイルを展開します。

      tar -cf "Dir.tar" Dir/

解凍する

      tar -xf "Dir.tar"

1

最高レベルのセキュリティが大きな問題ではない場合(zipのマニュアルページに、zipfileユーティリティで使用される暗号化アルゴリズムはPGPよりも弱いと書かれています)、zipとunzipが適しています。ディレクトリを圧縮し、同時に暗号化します。zipを好むのは、全体を再び圧縮して暗号化する代わりに、一種の増分zipを使用して暗号化できるからです。特に、ディレクトリのサイズが非常に大きい場合に役立ちます。

ZIPおよび暗号化

zip file.zip file
zip -r directory.zip directory
zip --encrypt file.zip.enc file # prompt for password
zip --encrypt -r directory.zip.enc directory # prompt for password

解凍して解読する

unzip directory.zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.

unzip directory.zip.enc -d directory-new # prompts for password

0

人気がないかもしれませんが、いくつかのBashスクリプトを使用して、最小限のユーザー操作ですべてを暗号化/復号化するプロジェクトに取り組んでいます。テスト用のセットアップを説明するHak5の投稿へのリンクを次に示します。

上記のリンクされたプロジェクトで処理できるデータの種類ごとに何が起こるかは、ソースコードのロジックを切り抜ける

_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient user@host.domain"
 _bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"

${_mapped_input}変数を読み込むことで設定されているmkfifo名前付きパイプファイルをし、何も設定して配列に読みmapfile -t _lines < "${_file_to_map}"、後で拡大して保存にしている${_mapped_input}...ビットが畳み込まれたが、実験の特徴は、個々の行に基づいて行動することができます。最終結果は、暗号化されたファイルまたは圧縮ディレクトリを保持するディレクトリと、暗号化されたデータのさまざまなパケットを含むファイルになります。

ファイルまたは圧縮ディレクトリの復号化は、暗号化に使用される公開鍵に関連する秘密鍵を持つデバイス上で非常に簡単です。しかし、複数の鎧で暗号化されたデータパケットの復号化は少し難しいためParanoid_Pipes_Scenario_One.sh、上記のプロジェクトで名前が付けられたスクリプトは、最小限のユーザーインタラクションですべてを実行するように記述されています。以下は、通常の暗号化されたファイルとディレクトリのヘルパースクリプトのソースコードの簡易バージョンです。

_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"

公的に検証可能な方法で他の機能が機能し、テストされていることを確認したい場合は、Travis-CIビルドログ(特にログの終わり近く)をチェックしてください。ほぼすべてのデータの暗号化と復号化に。


0

FinalCryptを使用する-Unbreakable One-Time Pad OpenSource File / Directory Encryption(GUI&CLI)

ワンタイムパッドキーを自動的に作成します

java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

パスワード:

4つのファイルの完全な暗号化を開始249,7 MiB

🔒 "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" 🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" - > "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4%🔒「/ホーム/ロン/マイ・テスト・ディレクトリ/ビデオ/城-waxjo-sweden.mp4.bit "🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" - > "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" 91,2%🔒" /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit」🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" - > "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" 95.7%🔒 」/ホーム/ロン/マイ・テスト・ディレクトリ/ブラザーdsmobile 700d_uke_usr.pdf.bit」🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: "8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0" - > "88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E" 100,0%

[4/4]ファイルの暗号化を完全に[249,7 MiB / 249,7 MiB]で7,3秒で完了しました(平均:34,2 MiB / s)

java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

パスワード:

4つのファイルの暗号化を完全に開始しました124,9 MiB

🔓 "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" 🖃✔🔓✔℄✔🗑✔SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" - > "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" 32,8%🔓「/ home / ron / My-Test-Directory / Video / Eerebegraafplaats.mp4 "🖃✔🔓✔℄✔🗑✔SHA-256:" D53FCEADDF542AC3655B547778911F786C2C2BDD327E618A9E7F77B57792DEA " -Directory / Brother dsmobile 700d_uke_usr.pdf "🖃✔🔓✔℄✔🗑✔SHA-256:" 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E "->" 8D718D2F29EF05BEB347F692069F692069F692069F6968F692069F6968F692069F6F9F7F5D6F9F5F6F6F6F6F6F6F6F6F6F6F5F6F1F1F3F5F1F1F1F1F1F1F3D1F1/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf」🖃✔🔓✔℄✔🗑✔SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" - > "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" 100,0%

[4/4]ファイルの復号化を3,4秒で完全に[124,9 MiB / 124,9 MiB]完了しました(平均:36,3 MiB / s)

また、GUIを持っています

コミュニティを助けようとしています...



FinalCrypt 5は自動キーを追加し、OTPキーを自動的に作成するため、スコットが言及している議論はもはや関係ありません
Ron de Jong

私はそれがどのように機能するかについての説明を見たいと思います。問題は、1回限りのパッドは(1)データの送信に最適であり、ストレージには不適切  あり、(2)ランダムである必要があるということです。 FinalCryptのOTPが真にランダムな場合、それらを保存する必要がありセキュリティが低下します。それらを再生成できる場合、それらはランダムではなく、疑似ランダムであるため、適切なOTPではありません。…(続き)
スコット

(続き)… 自動キー管理のページ  は、OTPが「取り外し可能な外部(USB)ドライブに保存されている」ことを示しています。” OK、それはうまくいくかもしれません。ただし、ファイルを復号化するたびにUSBドライブを接続する必要がある場合(およびOTPが少なくとも暗号化するファイルと同じ大きさでなければならないことを考えると)、リムーバブルドライブにファイルを保存して、暗号化に煩わされません。…(続き)
スコット

(続き)…また、FinalCryptのメインページには「ほとんどの暗号ソフトウェアは壊れたAESを使用しています」と書かれていますが、AESが「壊れている」という主張は非常に誇張されているようです。関連:なぜAESは安全であると考えられていますか?(  暗号スタック交換)。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.