2

私は最近、Linux デスクトップで次のようなちょっとした初心者の冒険を経験しました。

  1. 機密情報を含むテキスト ファイルを取得する
  2. PGP 暗号化 (たとえば Seahorse を使用)
  3. バックアップする
  4. OS の再インストール、ハード ドライブの消去、コンピュータをプールにドロップするなど
  5. 暗号化されたファイルをバックアップから取得し、パスワードを知っていても、キーが保存されている ~/.gnupg をバックアップしていないため、復号化できないことに気づき、恐怖に喘ぎます。

なぜ私はこれに落ちたのですか?以前は Mac ユーザーだったので、暗号化されたスパース ディスク イメージを作成し、そこにファイルをドロップして、マウントを解除していました。このファイルをあちこちに移動し、任意の Mac にドロップし、マウントし、パスワードを入力するだけで済みます。パスワードを覚えていれば、すべて問題ありませんでした。

Linuxでそのようなことをする方法を知っている人はいますか?

(これが SOF のプログラミングに十分に関連していることを願っています... いずれにせよ、プログラミングの仕事にとっては重要です!)

4

7 に答える 7

9

要約: これを行いたい場合は--symmetric、暗号化時にオプションを使用します。

ここで実際に起こっていることの詳細を見てみましょう。物事を正しく行おうとするとき、少しの理解が役立つことがよくあります。

GnuPG を使用してファイルを暗号化すると、「対称」暗号化が使用されます。つまり、平文の暗号化と暗号文の復号化の両方を行う単一のキーを使用します。なぜこれを行うのですか?対称アルゴリズムは公開鍵/秘密鍵アルゴリズム (暗号化と復号化に別々の鍵が使用される) よりもはるかに高速であり、他の理由については後で説明します。

ファイルの暗号化に使用するこのキーはどこで取得しますか? それはランダムなものを構成します。いいえ、冗談ではありません。

この時点で、少し問題があると思われるかもしれません。ファイルはランダムなキーで暗号化されており、(特定の GnuPG プロセスを除いて) 誰もそれが何であるかを知りません。では、次に何が起こるでしょうか?

秘訣は次のとおりです。そのランダムなキーは、他のキーで暗号化され、ファイルに保存されます。これにより、複数のユーザーがファイルを復号化できるようになります。たとえば、私の会社のバックアップは暗号化されているため、私とビジネス パートナーの両方が復号化できます。GnuPG はファイル暗号化キーを私の公開鍵で暗号化し、別のパートナーの公開鍵で暗号化し、これらの両方を暗号化されたデータと共に保存します。これで、私は自分の秘密鍵を使用して、自分の公開鍵で暗号化されたコピーを復号化し (またはパートナーが自分のコピーで同じことを行うことができます)、データの暗号化に使用された対称鍵を取得して復号化できます。

それで、何をし--symmetricますか?今回は、指定されたパスフレーズに基づくキーを使用して、対称アルゴリズム自体でそのランダムな暗号化キーを暗号化します。これで、パスフレーズを知っている人なら誰でもファイルを復号化できます。

これは 1 つのファイルには適していますが、多数のファイルがあり、さまざまなパスフレーズで暗号化されているため、さまざまなグループの人々がそれらにアクセスできるようになると、すぐに不便になります。これが、通常、代わりに公開鍵システムを使用する理由の 1 つです。

しかし、残念なことに、非常に貴重な教訓を学びました: 秘密鍵は重要です! それを失うと、あなたの公開鍵を使って暗号化されたことのあるものすべてにアクセスできなくなります。一度生成して安全に保管し、いくつかの場所にバックアップしてください。

あなたがやりたかったのは--symmetric、パスフレーズだけでファイルを復号化できるようにするオプションを追加することでした.

問題は、ファイルを公開鍵で暗号化したことでした。その場合、暗号化を解除するには秘密鍵 (に保存されている~/.gnupg) が必要です。

于 2009-05-21T00:57:15.973 に答える
3

Curt Sampson は、概念を説明する素晴らしい仕事をしました。詳細をお伝えします。

残念なことに、Seahorse & friends には対称暗号化を実行するオプションがまだありませんが、対称暗号化ファイルの復号化は処理できます。その間、言われたように、コマンドラインから暗号化を行うことができます。

gpg --symmetric --force-mdc --cipher-algo aes256 -o outfile infile

gpg に満足しているが、本当に gui が必要な場合は、私のgpg-frontend Pyriteを使用できます。タツノオトシゴのプラグインのように Nautilus と統合することはできませんが、それでもかなり甘いと言えます。:)

他の誰かが述べたように、eCryptfs はこの同じ領域に分類される優れたオプションであり、ファイルごとの暗号化を提供しますが、はるかに便利な方法でそれを行い、基本的にすべての書き込みと読み取りを透過的に暗号化/復号化するフォルダーを提供します/それから。最初は暗号化されたコンテナー ソリューションのように見えますが、実際にはファイルを個別に暗号化しています。フォルダーをアンマウントすると、個別に暗号化されたファイルの束になります。LJ のこの記事では、eCryptfs と他のいくつかのオプションの優れた比較と対照の概要を説明しています。eCryptfs を実行する方法は次のとおりです。

$ mkdir ~/vault
$ sudo mount -t ecryptfs ~/vault ~/vault
Select key type to use for newly created files: 
 1) openssl
 2) passphrase
 3) pkcs11-helper
 4) tspi
Selection: 2
....... (truncated)
$ echo hello > ~/vault/encfile
$ sudo umount ~/vault
$ ls -a ~/vault
.  ..  encfile
$ cat ~/vault/encfile
稖��)!x�"3DUfw`��ȿ_���E�����_CONSOLE�W�v0�+�'�hV���Q��VZ��eP�����l⟮j%����?O��V
....... (truncated)

これに興味がある場合はecryptfs-setup-private、sudo の必要性をなくし、すべてを自動化できるコマンドもチェックアウトしてください。先に進みます。

の最良のオプションは、pts によって言及されているものです: TrueCrypt (クロスプラットフォーム) とdm-crypt 。これにより、ブロックデバイス (パーティション、論理ボリューム、単一ファイルなど)を暗号化できますその上にfs。Cryptoloop (dm-crypt の前身) を使用しないでください。

私は主に Red Hat、Fedora、およびその友人の経験しかありませんが、それらでは素敵なディスク管理 GUIpalimpsetを使用して、追加のものをインストールすることなく、暗号化されたディスク/パーティションをすぐに作成および変更できます。もちろん、これにはコマンドライン ユーティリティがあります: cryptsetup... これは、dm-crypt で何ができるかを示す簡単な例です。cryptsetup を使用して、拡張可能な論理ボリュームから暗号化されたファイルシステムを作成します。

lvcreate -L 2G -n mybox volgroup
cryptsetup luksFormat /dev/volgroup/mybox
cryptsetup luksOpen /dev/volgroup/mybox mybox
mkfs.ext4 /dev/mapper/mybox
cryptsetup luksClose mybox

これが完了すると、Nautilus は問題なく自動検出し、ロックを解除してそこから安全なユーザー マウントを実行できます。

編集: 私はばかげていると感じます。この質問に出くわしたとき、gpg タグを閲覧していました。すべての入力を終えて送信するまで、これがどれだけ古いものか気づきませんでした。しかたがない。ひょっとしたら後世に役立つかもしれません。

于 2012-03-05T05:38:48.303 に答える
2

TrueCryptは、Linux (およびその他のシステム) で動作する使いやすいディスク暗号化ソリューションです。

Linux のみの下位レベルのソリューションは、dm-crypt と crpytoloop です。

于 2009-05-21T00:37:51.037 に答える
2

Cygwinでも利用できるccryptを使用しています。

   ccrypt is a utility for encrypting and decrypting files and streams. It
   was designed to replace the standard unix crypt utility, which is noto‐
   rious  for  using a very weak encryption algorithm.  ccrypt is based on
   the Rijndael block cipher, which was also chosen by the U.S. government
   as      the      Advanced     Encryption     Standard     (AES,     see
   http://www.nist.gov/aes/). This cipher  is  believed  to  provide  very
   strong cryptographic security.
于 2009-05-21T00:39:48.863 に答える
1

mcrypt を使用しました。いくつかの最新の暗号化アルゴリズムをサポートしており、Linux マシンではかなり一般的です (または、少なくともほとんどのディストーションでコンパイル済みのパッケージを簡単に入手できます)。

于 2009-05-21T00:50:51.930 に答える
1

ecryptfs は簡単にセットアップして使用できます。

  • 利点: 事前にスペースを予約する必要はありません。ファイルシステム上のレイヤーとして機能します

  • 欠点: ファイル名は暗号化されません。明らかに、ツリー全体を圧縮または tar し、ecryptfs に zip または tar ファイルを暗号化させることでこれを行うことができますが、これは面倒です。

    更新2012 年 3 月現在、この問題は解決されています (しばらくの間解決されています): ecryptfs はファイル名を暗号化します。この機能が導入されたバージョン番号や日付を簡単に見つけることができませんでした。

于 2009-05-21T01:25:55.340 に答える
0

opensslを使用してファイルを暗号化することもできます。

于 2012-07-30T07:54:12.403 に答える