gocryptfs
公式ウェブサイト より:
- gocryptfs は FUSE ファイルシステムとして実装されているファイルベースの暗号化を使用します。gocryptfs 内のファイルはハードディスクでは暗号化されたファイルとして保存されます。特徴: Scrypt パスワードハッシュ化、全てのファイル内容の GCM 暗号化、ディレクトリごとの IV によるファイル名の EME ワイドブロック暗号化。
機能やベンチマークなど詳しくは gocryptfs のプロジェクトホームページを見てください。他の暗号化方法はディスク暗号化#比較表や EncFS を見てください。
目次
インストール
gocryptfs または gocryptfs-gitAUR パッケージをインストールしてください。
FUSE ファイルシステムとして、gocryptfs はユーザーが設定することができ、設定ファイルはユーザーのディレクトリパスに保存されます。
使用方法
最初に gocryptfs(1) を参照してください。初めて使用する場合は、gocryptfs の Best-Practices を確認してください。
ディレクトリの暗号化の初期化時に、マスターキーは、gocryptfs.conf
ファイルに暗号的にラップされる前に出力されます。緊急時の復元手順については、Recreate configuration using the masterkey を参照してください。マスターキー自体は紛失したが、設定ファイルを利用できる場合には、暗号化パスワードを使用して再度出力する方法について gocryptfs-xray(1) を参照してください。
ノーマルモードの使用例
暗号化されたデータを保存するための cipher
ディレクトリと、復号化されたデータにアクセスするための plain
ディレクトリを作成します。次に、gocryptfs 初期化を実行して暗号化をセットアップします。
$ mkdir cipher plain $ gocryptfs -init cipher Choose a password for protecting your files. Password: [...]
暗号化されたディレクトリ cipher
を開いて、plain
からアクセスするには:
$ gocryptfs cipher plain Password: Decrypting master key Filesystem mounted and ready
これで、動作する gocryptfs が cipher
に保存され、plain
にマウントされたはずです。これを確認するには、plain
ディレクトリに空のファイルを作成します。このファイルは暗号化されて cipher
ディレクトリに表示されます。
$ touch plain/test.txt $ ls cipher gocryptfs.conf gocryptfs.diriv ZSuIZVzYDy5-TbhWKY-ciA==
リバースモードの使用例
ファイルベースの暗号化を使うのに適している用途としてバックアップの暗号化があります。FUSE ベースのファイルシステムは標準ツールでバックアップ先として使うことができます。例えば gocryptfs で暗号化された FUSE マウントポイントは Samba/NFS 共有を直接作成したり Dropbox に保存したり、rsync でリモートホストと同期したり、あるいは単純にリモートのバックアップストレージにコピーすることが可能です。
暗号化バックアップを作成する際は gocryptfs の リバースモード が特に有用です。バックアップを行うマシンに追加のストレージ容量を必要としません。
以下は archie ユーザーで /home/archie
のバックアップを作成する例です。
まず archie で暗号化されたビューとして空ディレクトリを作成します:
$ gocryptfs -init -reverse /home/archie
Choose a password for protecting your files. Password: ...
そしてホームディレクトリの暗号化ビューを作成:
$ mkdir /tmp/crypt $ gocryptfs -reverse /home/archie /tmp/crypt Password: Decrypting master key Your master key is: ... Filesystem mounted and ready. $
暗号化されたディレクトリのバックアップを作成します。単純にローカルコピーを作成します:
$ cp -a /tmp/crypt /tmp/backup
これで完了しました。
暗号化ディレクトリはユーザーセッションの間、マウントし続けることができます。手動でアンマウントするには:
$ fusermount -u /tmp/crypt $ rmdir /tmp/crypt
暗号化されたバックアップからリストアするには、gocryptfs のノーマルモードを使ってプレーンテキストビューをマウントします:
$ mkdir /tmp/restore $ gocryptfs /tmp/backup/ /tmp/restore Password: Decrypting master key ... Filesystem mounted and ready. $
これで必要なファイルをリストアできます。
GUI ラッパー
gocryptfs のグラフィカルユーザーインターフェイスを提供するアプリケーションがいくつか利用可能です。
SiriKali
gocryptfs、eCryptfs、cryfs、EncFS、fscrypt、および securefs 暗号化フォルダーを管理する Qt/C++ GUI アプリケーション。SSHFS を使用して SSH サーバーに接続することもできます。sirikaliAUR からインストールして下さい。
gocryptfs-ui
bash スクリプト gocryptfs-ui は、暗号化されたディレクトリをマウントおよびアンマウントするための gocryptfs コマンド ライン ユーティリティを中心としたシンプルな zenity GUI を提供します。デスクトップランチャーが含まれています。gocryptfs-uiAUR からインストールして下さい。
cryptor
cryptor は、暗号化されたディレクトリを作成およびマウントするための GUI を提供します、vala/gtk3 ベースのアプリケーションです。暗号化されたディレクトリのリストを含む設定ファイルを保存でき、トレイアイコンがサポートされ、デスクトップランチャーが含まれています。cryptorAUR からインストールして下さい。
参照
- A first security audit of gocryptfs
- RFC5297 Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)