GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでgocryptfsを使用してファイルを暗号化する方法

Gocryptfsは、Filesystem in Userspace(FUSE)にマウントされたファイルレベルの暗号化プログラムです。 FUSEマウントとは、暗号化されたファイルが、FUSEインターフェイスを使用してUSBキーのようにマウントされる単一のディレクトリツリーに保存されることを意味します。これにより、すべてのユーザーがマウントを実行できます。rootである必要はありません。 gocryptfsはファイルレベルで暗号化するため、ファイルをコピーする同期操作は各ファイルで効率的に機能します。これは、ディスク全体が単一の大きなバイナリブロブとして暗号化されるディスクレベルの暗号化とは対照的です。

gocryptfsを通常モードで使用すると、ファイルは暗号化された形式でディスクに保存されます。ただし、暗号化されたファイルをマウントすると、コンピューター上の他のファイルと同じように、ファイルへの暗号化されていないアクセスが可能になります。これは、すべての通常のツールとプログラムが暗号化されていないファイルを使用できることを意味します。変更、新しいファイル、および削除は、ディスクに保存されているファイルの暗号化されたバージョンにリアルタイムで反映されます。

gocryptfsをインストールします

gocryptfsはFedora30とRawhide用にパッケージ化されているため、Fedoraに簡単にインストールできます。したがって、 sudo dnf install gocryptfs 必要なすべてのインストール作業を行います。 Fedoraを使用していない場合は、ソースから、Debianに、またはHomebrewを介してクイックスタートでインストールする方法の詳細を確認できます。

暗号化されたファイルシステムを初期化します

Linuxターミナル

  • Linux用の上位7つのターミナルエミュレータ
  • Linuxでのデータ分析のための10個のコマンドラインツール
  • 今すぐダウンロード:SSHチートシート
  • 高度なLinuxコマンドのチートシート
  • Linuxコマンドラインチュートリアル

開始するには、暗号化されたファイルを保存する場所を決定する必要があります。この例では、ファイルを〜/ .sekrit_filesに保持します 通常のlsを実行するときに表示されないようにします 。

ファイルシステムを初期化することから始めます。これには、パスワードを選択する必要があります。これはファイルのロックを解除するための鍵であるため、他では使用したことのない一意のパスワードを使用することを強くお勧めします。プロジェクトの作成者は、64〜128ビットのエントロピーを持つパスワードを推奨しています。大文字と小文字および数字を使用すると仮定すると、これはパスワードの長さが11〜22文字であることを意味します。パスワードマネージャーを使用している場合、これは生成されたパスワードで簡単に実行できるはずです。

ファイルシステムを初期化すると、一意のキーが表示されます。ファイルを回復する必要があるがパスワードを忘れた場合にファイルにアクセスできるようになるため、このキーを安全な場所に保管してください。キーはパスワードなしで機能するため、秘密にしておいてください!

初期化ルーチンは次のようになります:

$ mkdir ~/.sekrit_files
$ gocryptfs -init ~/.sekrit_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs .sekrit_files MOUNTPOINT
を使用してマウントできます。

〜/ .sekrit_filesを見ると ディレクトリには、構成ファイルと一意のディレクトリレベルの初期化ベクトルの2つのファイルが表示されます。これら2つのファイルを手動で編集する必要はありません。これらのファイルは削除しないでください。

暗号化されたファイルシステムを使用する

暗号化されたファイルシステムを使用するには、それをマウントする必要があります。これには、ファイルシステムをマウントできる空のディレクトリが必要です。たとえば、〜/ my_filesを使用します ディレクトリ。初期化からわかるように、マウントは簡単です:

$ gocryptfs ~/.sekrit_files ~/my_files
Password:
Decrypting master key
Filesystem mounted and ready.

〜/ my_filesをチェックアウトする場合 ディレクトリ、あなたはそれが空であることがわかります。構成および初期化ベクトルファイルはデータではないため、表示されません。ファイルシステムにいくつかのデータを入れて、何が起こるか見てみましょう:

$ cp /usr/share/dict/words ~/my_files/
$ ls -la ~/my_files/ ~/.sekrit_files/
~/my_files/:
.rw-r--r-- 5.0M bexelbie 19 Jul 17:48 words

~/.sekrit_files/:
.r--------@  402 bexelbie 19 Jul 17:39 gocryptfs.conf
.r--------@   16 bexelbie 19 Jul 17:39 gocryptfs.diriv
.rw-r--r--@ 5.0M bexelbie 19 Jul 17:48 xAQrtlyYSFeCN5w7O3-9zg

〜/ .sekrit_filesに新しいファイルがあることに注意してください ディレクトリ。これは、コピーした辞書の暗号化されたコピーです(ファイル名は異なります)。 をお気軽にご利用ください およびその他のツールを使用して、これらのファイルを調べ、ファイルの追加、削除、および変更を試してください。 LibreOfficeなどのいくつかのアプリケーションでテストしてください。

これはファイルシステムマウントであるため、〜/ my_filesの内容を覚えておいてください。 ディスクに保存されません。これは、マウント|を実行して確認できます。 grep my_files そして出力を観察します。暗号化されたファイルのみがディスクに書き込まれます。 FUSEインターフェースは、ファイルのリアルタイムの暗号化と復号化を実行し、それらをファイルシステムとしてアプリケーションとシェルに提示します。

ファイルシステムをアンマウントします

ファイルの処理が完了したら、ファイルをアンマウントできます。これにより、暗号化されていないファイルシステムが使用できなくなります。 〜/ .sekrit_files内の暗号化されたファイル 影響を受けません。 fusermount -u〜/ my_files を指定したFUSEマウンタープログラムを使用して、ファイルシステムをアンマウントします。 。

データをバックアップする

ファイルレベルの暗号化を使用するgocryptfsの優れた利点の1つは、暗号化されたデータのバックアップが簡単になることです。ファイルは、OwnCloudやDropboxなどの同期システムに安全に保存できます。同じファイルを同時に変更しないことに関する標準の免責事項が適用されます。ただし、ファイルがマウントされている場合でも、ファイルをバックアップすることはできます。また、通常ファイルをバックアップする他の方法でデータを保存することもできます。特別なことは何も必要ありません。

バックアップを行うときは、必ず gocryptfs.dirivを含めてください。 ファイル。このファイルは秘密ではなく、バックアップとともに保存できます。ただし、 gocryptfs.conf 秘密です。テープなどでバックアップチェーン全体を制御する場合は、残りのファイルでバックアップできます。ただし、ファイルがクラウドまたはパブリックにバックアップされる場合は、このファイルを省略できます。理論的には、誰かがこのファイルを入手した場合、ファイルを保護するのはパスワードの強度だけです。強力なパスワードを選択した場合は、それで十分かもしれません。ただし、状況を慎重に検討する必要があります。詳細については、このgocryptfsアップストリームの問題をご覧ください。

ボーナス:リバースモード

gocryptfsの優れた機能は、リバースモード機能です。リバースモードでは、暗号化されていないデータにgocryptfsをポイントすると、このデータの暗号化されたビューでマウントポイントが作成されます。これは、暗号化されたバックアップの作成などに役立ちます。これは簡単です:

$ gocryptfs -reverse -init my_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs-reverse filesystem has been created successfully.
You can now mount it using: gocryptfs -reverse my_files MOUNTPOINT

$ gocryptfs -reverse my_files sekrit_files
Password:
Decrypting master key
Filesystem mounted and ready.

sekrit_files my_filesからの暗号化されていないデータの暗号化されたビューが含まれています 。これは、必要に応じてバックアップ、共有、または処理できます。これらのファイルをバックアップする以外に役立つことは何もないため、ディレクトリは読み取り専用です。

新しいファイル、 .gocryptfs.reverse.conf my_filesに追加されました 安定した暗号化されたビューを提供します。この構成ファイルは、各リバースマウントが同じ暗号化キーを使用することを保証します。このようにして、たとえば、変更されたファイルのみをバックアップできます。

Gocryptfsは、ワークフローやプロセスを大幅に変更することなく、暗号化された方法でデータを保存できる柔軟なファイル暗号化ツールです。デザインはセキュリティ監査を受けており、開発者は encfsなどの他のシステムの経験があります。 。今日からシステムにgocryptfsを追加して、データの保護を開始することをお勧めします。


Linux
  1. Linuxでファイルの名前を変更する方法

  2. LinuxでDM-CryptLUKSを使用してパーティションを暗号化する方法

  3. Linuxでfdコマンドを使用してファイルを検索する方法

  1. 単一のLinuxファイルシステムを暗号化する方法

  2. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  3. Linuxでxargsを使用してファイルを移動するにはどうすればよいですか?

  1. Linuxでファイルを解凍する方法(例付き)

  2. Rclone でクラウド ストレージ ファイルを暗号化する方法

  3. ファイルを含むフォルダーを Unix/Linux の別のフォルダーにコピーするにはどうすればよいですか?