「Gocryptfs」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(カテゴリ変更)
(カテゴリの修正)
 
(4人の利用者による、間の13版が非表示)
1行目: 1行目:
 
{{Lowercase title}}
 
{{Lowercase title}}
[[Category:暗号化]]
+
[[Category:保存データ暗号化]]
[[Category:ファイルシステム]]
+
[[Category:FUSE]]
 
[[en:Gocryptfs]]
 
[[en:Gocryptfs]]
  +
[[es:Gocryptfs]]
  +
[[pt:Gocryptfs]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ディスク暗号化}}
 
{{Related|ディスク暗号化}}
12行目: 14行目:
   
 
機能やベンチマークなど詳しくは [https://nuetzlich.net/gocryptfs/ gocryptfs] のプロジェクトホームページを見てください。他の暗号化方法は[[ディスク暗号化#比較表]]や [[EncFS]] を見てください。
 
機能やベンチマークなど詳しくは [https://nuetzlich.net/gocryptfs/ gocryptfs] のプロジェクトホームページを見てください。他の暗号化方法は[[ディスク暗号化#比較表]]や [[EncFS]] を見てください。
  +
  +
{{Note|
  +
* [[w:ja:認証付き暗号|認証付き暗号]] の設計目標を満たすために gocryptfs は AES-EME 暗号化モードを実装しています。(ファイル名の場合、コンテンツは標準ライブラリを使用して暗号化されます) このモードはまだ広く使用/監査されているわけではありませんが、gocryptfs 暗号化モードはデータの整合性保護をもたらします。
  +
* 詳しくはセキュリティ監査の結果に関するプロジェクトの [https://github.com/rfjakob/gocryptfs/issues/90 バグレポート] を参照してください。}}
   
 
== インストール ==
 
== インストール ==
   
{{Aur|gocryptfs}} または {{Aur|gocryptfs-git}} パッケージを[[インストール]]してください。
+
{{Pkg|gocryptfs}} または {{Aur|gocryptfs-git}} パッケージを[[インストール]]してください。
   
 
FUSE ファイルシステムとして、gocryptfs はユーザーが設定することができ、設定ファイルはユーザーのディレクトリパスに保存されます。
 
FUSE ファイルシステムとして、gocryptfs はユーザーが設定することができ、設定ファイルはユーザーのディレクトリパスに保存されます。
21行目: 27行目:
 
== 使用方法 ==
 
== 使用方法 ==
   
最初に {{man|1|gocryptfs|url=https://manned.org/gocryptfs.1}} を参照してください。
+
最初に {{man|1|gocryptfs|url=https://manned.org/gocryptfs.1}} を参照してください。初めて使用する場合は、[https://github.com/rfjakob/gocryptfs/wiki/Best-Practices gocryptfs の Best-Practices] を確認してください。
   
  +
ディレクトリの暗号化の初期化時に、マスターキーは、{{ic|gocryptfs.conf}} ファイルに暗号的にラップされる前に出力されます。緊急時の復元手順については、[https://github.com/rfjakob/gocryptfs/wiki/Recreate-gocryptfs.conf-using-masterkey Recreate configuration using the masterkey] を参照してください。マスターキー自体は紛失したが、設定ファイルを利用できる場合には、暗号化パスワードを使用して再度出力する方法について {{man|1|gocryptfs-xray}} を参照してください。
{{Warning|
 
* To achieve its design goal of [[w:Authenticated encryption|authenticated encryption]], gocryptfs implements a AES-EME encryption mode (for filenames, not the content). While this mode is not widely used/audited yet, it offers integrity protection for the data, a feature not available for direct alternative encryption methods.
 
* See the project's tracking [https://github.com/rfjakob/gocryptfs/issues/90 bug report] regarding findings of the first security audit for more information.}}
 
   
  +
{{Tip|
{{Tip|{{ic|gocryptfs -speed}} を実行することで利用可能な暗号のスループットをテストできます。リバースモードを使うには最も遅い {{ic|AES-SIV-512-Go}} モードが必要です (自動的に選択されます)。}}
 
  +
* {{ic|gocryptfs -speed}} を実行して、利用可能な暗号化モードのスループットをテストします。自動選択では、システムで利用可能な最速のモードが選択されます。
  +
* {{ic|-fido2}} オプションを使用すると、[[U2F]] ハードウェアトークンを使用して暗号化されたデータを初期化してマウントできるようになります。PIN 入力などのトークン機能は現在切り替えることができず、トークンモデルによって異なる場合があることに注意してください。
  +
}}
   
=== リバモード使 ===
+
=== マルモード使用例 ===
  +
  +
暗号化されたデータを保存するための {{ic|cipher}} ディレクトリと、復号化されたデータにアクセスするための {{ic|plain}} ディレクトリを作成します。次に、gocryptfs 初期化を実行して暗号化をセットアップします。
  +
{{bc|
  +
$ mkdir cipher plain
  +
$ gocryptfs -init cipher
  +
Choose a password for protecting your files.
  +
Password:
  +
[...]
  +
}}
  +
  +
暗号化されたディレクトリ {{ic|cipher}} を開いて、{{ic|plain}} からアクセスするには:
  +
{{bc|
  +
$ gocryptfs cipher plain
  +
Password:
  +
Decrypting master key
  +
Filesystem mounted and ready
  +
}}
  +
  +
これで、動作する gocryptfs が {{ic|cipher}} に保存され、{{ic|plain}} にマウントされたはずです。これを確認するには、{{ic|plain}} ディレクトリに空のファイルを作成します。このファイルは暗号化されて {{ic|cipher}} ディレクトリに表示されます。
  +
{{bc|1=
  +
$ touch plain/test.txt
  +
$ ls cipher
  +
gocryptfs.conf gocryptfs.diriv ZSuIZVzYDy5-TbhWKY-ciA==
  +
}}
  +
  +
=== リバースモードの使用例 ===
   
 
ファイルベースの暗号化を使うのに適している用途としてバックアップの暗号化があります。FUSE ベースのファイルシステムは標準ツールでバックアップ先として使うことができます。例えば gocryptfs で暗号化された FUSE マウントポイントは [[Samba]]/[[NFS]] 共有を直接作成したり [[Dropbox]] に保存したり、[[rsync]] でリモートホストと同期したり、あるいは単純にリモートのバックアップストレージにコピーすることが可能です。
 
ファイルベースの暗号化を使うのに適している用途としてバックアップの暗号化があります。FUSE ベースのファイルシステムは標準ツールでバックアップ先として使うことができます。例えば gocryptfs で暗号化された FUSE マウントポイントは [[Samba]]/[[NFS]] 共有を直接作成したり [[Dropbox]] に保存したり、[[rsync]] でリモートホストと同期したり、あるいは単純にリモートのバックアップストレージにコピーすることが可能です。
  +
  +
{{Warning| デフォルトでは、{{ic|gocryptfs.conf}} ファイルは便宜上バックアップ ディレクトリ内に保存されます。{{ic|gocryptfs.conf}} ファイルをオンラインソースにアップロードすると、パスワードが知られているか解読された場合にバックアップが復号化される可能性があります。強力なパスワードの使用を推奨します。[https://github.com/rfjakob/gocryptfs/issues/100] 設定ファイルへのパスとともに {{ic|-config}} オプションを指定することで、別の場所にある {{ic|gocryptfs.conf}} ファイルを使用することを選択できます。}}
   
 
暗号化バックアップを作成する際は gocryptfs の [https://nuetzlich.net/gocryptfs/reverse_mode/ リバースモード] が特に有用です。バックアップを行うマシンに追加のストレージ容量を必要としません。
 
暗号化バックアップを作成する際は gocryptfs の [https://nuetzlich.net/gocryptfs/reverse_mode/ リバースモード] が特に有用です。バックアップを行うマシンに追加のストレージ容量を必要としません。
38行目: 73行目:
   
 
まず ''archie'' で暗号化されたビューとして空ディレクトリを作成します:
 
まず ''archie'' で暗号化されたビューとして空ディレクトリを作成します:
  +
$ mkdir /tmp/''crypt.archie''
 
  +
{{hc|$ gocryptfs -init -reverse /home/archie|
  +
Choose a password for protecting your files.
  +
Password:
  +
...}}
   
 
そしてホームディレクトリの暗号化ビューを作成:
 
そしてホームディレクトリの暗号化ビューを作成:
   
  +
{{bc|$ mkdir /tmp/''crypt''
{{hc|/home/archie|
 
$ gocryptfs -reverse /home/''archie'' /tmp/''crypt.archie''
+
$ gocryptfs -reverse /home/''archie'' /tmp/''crypt''
Password:
+
Password:
 
Decrypting master key
 
Decrypting master key
   
51行目: 90行目:
 
Filesystem mounted and ready.
 
Filesystem mounted and ready.
 
$}}
 
$}}
  +
  +
{{Tip|ファイルまたはディレクトリを逆マウントから除外するためのオプションが多数用意されています。{{man|1|gocryptfs|EXCLUDING_FILES}} を参照してください。''rsync'' のようなソフトウェアでは、除外が後でのみ行われる場合にエラーまたは警告が発生する可能性があることに注意してください。[https://github.com/rfjakob/gocryptfs/issues/235#issuecomment-410506242]}}
   
 
暗号化されたディレクトリのバックアップを作成します。単純にローカルコピーを作成します:
 
暗号化されたディレクトリのバックアップを作成します。単純にローカルコピーを作成します:
   
$ cp -a /tmp/''crypt.archie'' /tmp/''backup.archie''
+
$ cp -a /tmp/''crypt'' /tmp/''backup''
  +
  +
これで完了しました。
   
 
暗号化ディレクトリはユーザーセッションの間、マウントし続けることができます。手動でアンマウントするには:
 
暗号化ディレクトリはユーザーセッションの間、マウントし続けることができます。手動でアンマウントするには:
$ fusermount -u /tmp/''crypt.archie''
 
$ rmdir /tmp/''crypt.archie''
 
   
  +
$ fusermount -u /tmp/''crypt''
暗号化されたバックアップからリストアするには、gocryptfs のノーマルモードを使って平文ビューをマウントします:
 
{{bc|$ mkdir /tmp/''restore.archie''
+
$ rmdir /tmp/''crypt''
  +
$ gocryptfs /tmp/''backup.archie'' /tmp/''restore.archie''
 
  +
暗号化されたバックアップからリストアするには、gocryptfs のノーマルモードを使ってプレーンテキストビューをマウントします:
  +
  +
{{bc|$ mkdir /tmp/''restore''
  +
$ gocryptfs /tmp/''backup''/ /tmp/''restore''
 
Password:
 
Password:
 
Decrypting master key
 
Decrypting master key
71行目: 116行目:
 
これで必要なファイルをリストアできます。
 
これで必要なファイルをリストアできます。
   
== 参照 ==
+
== GUI ラッパー ==
  +
  +
gocryptfs のグラフィカルユーザーインターフェイスを提供するアプリケーションがいくつか利用可能です。
  +
  +
=== SiriKali ===
  +
  +
gocryptfs、[[eCryptfs]]、{{Pkg|cryfs}}、[[EncFS]]、[[fscrypt]]、および securefs 暗号化フォルダーを管理する Qt/C++ GUI アプリケーション。[[SSHFS]] を使用して [[SSH]] サーバーに接続することもできます。{{AUR|sirikali}} からインストールして下さい。
  +
  +
=== gocryptfs-ui ===
  +
  +
bash スクリプト [https://github.com/bulletmark/gocryptfs-ui gocryptfs-ui] は、暗号化されたディレクトリをマウントおよびアンマウントするための gocryptfs コマンド ライン ユーティリティを中心としたシンプルな {{Pkg|zenity}} GUI を提供します。デスクトップランチャーが含まれています。{{AUR|gocryptfs-ui}} からインストールして下さい。
  +
  +
=== cryptor ===
  +
  +
[https://github.com/moson-mo/cryptor cryptor] は、暗号化されたディレクトリを作成およびマウントするための GUI を提供します、{{Pkg|vala}}/{{Pkg|gtk3}} ベースのアプリケーションです。暗号化されたディレクトリのリストを含む設定ファイルを保存でき、トレイアイコンがサポートされ、デスクトップランチャーが含まれています。{{AUR|cryptor}} からインストールして下さい。
  +
  +
== 参照 ==
  +
 
* [https://defuse.ca/audits/gocryptfs.htm A first security audit] of gocryptfs
 
* [https://defuse.ca/audits/gocryptfs.htm A first security audit] of gocryptfs
 
* [https://tools.ietf.org/html/rfc5297 RFC5297] Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)
 
* [https://tools.ietf.org/html/rfc5297 RFC5297] Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)

2024年6月8日 (土) 13:49時点における最新版

関連記事

公式ウェブサイト より:

gocryptfs は FUSE ファイルシステムとして実装されているファイルベースの暗号化を使用します。gocryptfs 内のファイルはハードディスクでは暗号化されたファイルとして保存されます。特徴: Scrypt パスワードハッシュ化、全てのファイル内容の GCM 暗号化、ディレクトリごとの IV によるファイル名の EME ワイドブロック暗号化。

機能やベンチマークなど詳しくは gocryptfs のプロジェクトホームページを見てください。他の暗号化方法はディスク暗号化#比較表EncFS を見てください。

ノート:
  • 認証付き暗号 の設計目標を満たすために gocryptfs は AES-EME 暗号化モードを実装しています。(ファイル名の場合、コンテンツは標準ライブラリを使用して暗号化されます) このモードはまだ広く使用/監査されているわけではありませんが、gocryptfs 暗号化モードはデータの整合性保護をもたらします。
  • 詳しくはセキュリティ監査の結果に関するプロジェクトの バグレポート を参照してください。

インストール

gocryptfs または gocryptfs-gitAUR パッケージをインストールしてください。

FUSE ファイルシステムとして、gocryptfs はユーザーが設定することができ、設定ファイルはユーザーのディレクトリパスに保存されます。

使用方法

最初に gocryptfs(1) を参照してください。初めて使用する場合は、gocryptfs の Best-Practices を確認してください。

ディレクトリの暗号化の初期化時に、マスターキーは、gocryptfs.conf ファイルに暗号的にラップされる前に出力されます。緊急時の復元手順については、Recreate configuration using the masterkey を参照してください。マスターキー自体は紛失したが、設定ファイルを利用できる場合には、暗号化パスワードを使用して再度出力する方法について gocryptfs-xray(1) を参照してください。

ヒント:
  • gocryptfs -speed を実行して、利用可能な暗号化モードのスループットをテストします。自動選択では、システムで利用可能な最速のモードが選択されます。
  • -fido2 オプションを使用すると、U2F ハードウェアトークンを使用して暗号化されたデータを初期化してマウントできるようになります。PIN 入力などのトークン機能は現在切り替えることができず、トークンモデルによって異なる場合があることに注意してください。

ノーマルモードの使用例

暗号化されたデータを保存するための 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.conf ファイルは便宜上バックアップ ディレクトリ内に保存されます。gocryptfs.conf ファイルをオンラインソースにアップロードすると、パスワードが知られているか解読された場合にバックアップが復号化される可能性があります。強力なパスワードの使用を推奨します。[1] 設定ファイルへのパスとともに -config オプションを指定することで、別の場所にある gocryptfs.conf ファイルを使用することを選択できます。

暗号化バックアップを作成する際は 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.
$
ヒント: ファイルまたはディレクトリを逆マウントから除外するためのオプションが多数用意されています。gocryptfs(1) § EXCLUDING_FILES を参照してください。rsync のようなソフトウェアでは、除外が後でのみ行われる場合にエラーまたは警告が発生する可能性があることに注意してください。[2]

暗号化されたディレクトリのバックアップを作成します。単純にローカルコピーを作成します:

$ 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、eCryptfscryfsEncFSfscrypt、および 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)