カテゴリー「ファイル暗号化」の6件の記事

2020年3月21日 (土)

OSS系暗号化ソフトの比較をしてみた(USBメモリ/Home/cloud等での用途向け)

OSS系の暗号化のパッケージをいろいろいじってみて、それぞれの特徴が少し見えてきたので整理。こういうのって「どれが最強か」という話になりがちだけれども、環境や利用状況によって向き、不向きがあると思うので、自分でしっかりと考えて選択するのが良いかと思います。

ということで、題して「OSS系暗号化ソフトの比較をしてみた in 2020

 

【① VeraCrypt】 

開発が終了したTrueCryptのフォーク。TrueCryptで課題であったセキュリティは改善されたと言われる。暗号化したコンテナファイルを作成してその中にファイルをポイポイ入れて利用する形が基本になるかと。Windowsのシステムパーティション・ドライブを暗号化することもできる模様。

1つのファイルを変更するだけでコンテナファイルが変更されるため、ネットへの帯域への負荷や同期の問題などから、Dropboxなどのクラウドでの用途には向かないらしい。

USBメモリや、ホームディレクトリ内での一人での利用には向くかと思う。Linux,Windows,Macで利用ができる。OSSに含められるかというと、実はちょっと微妙なところ。

 

【② gocryptfs】 

EncFSの後継とされる、gocryptfs。EncFS のセキュリティ上の問題を解決するために作られた模様。VeraCryptとは違い、コンテナ化せず、1つ1つのファイルが個別に暗号化されるが、暗号化、復号の作業を1つずつ行う必要がない。使用開始時に一度だけマウント作業を行う必要はあるが、以後は暗号化や復号を意識することなく一般的なファイルのやり取りをするような感覚で使用ができるため、非常に扱いやすい。

処理速度は速く、「gocryptfs:Other Projects」による比較テストでは読み書きの速度が250MiB/s〜290MiB/s ほど。cryptomator が 19MiB/s〜25MiB/s ほどらしいので、かなりの差があります。(gocryptfs サイトからの情報なので、少し差し引いて考えたほうが良いかとは思いますが。)体感上、普通のファイルを取扱っている時と変わらんです。

USBメモリやホームディレクトリ内での使用のみならず、Dropboxなどのクラウドでの使用も可。
Dr_207_r

MIT License。
Linux,Macで使えるが、Windowsでは使えない。サードパーティ製でWindows用にcppcryptfsというものがあるらしいが、このサードパーティ製が使い物になるのかは不明。

 

 

 

【③ GnuPG】 
暗号化ソフトとしては歴史の長いソフトで、電子署名を行う際にも利用できます。

ただ、大量のデータを暗号化するとなると、うーんどうなんでしょう。gocryptfsなんかと比べると使いにくい気がします。

1対1で「署名入り&暗号化ファイル」を単発的に送るといった場合は、非常に強固で有用ではあるかと思います。
(暗号化して安全に、かつ、誰がそのデータを送ったかを確認できるという点では他に無い特徴。)

Gpg_iso_54_dr

なお、「公開鍵」や「秘密鍵」の扱い方を理解しないと、正しく利用できません。また、相手に暗号化したファイルを送る場合は、相手側も同様の知識が必要となります。

ちなみに、個人的には今のGnuPGは「暗号化」よりも「電子署名」の方で活躍しているイメージがあります。

GitHub 利用者や開発に関わる方、証明書を取り扱う方などは GnuPG にお世話になることが多いのではないでしょうか。

ライセンスはGPL。LinuxやWindows,Mac等で使えます。なお、Windowsでの利用はGpg4winを使う形になるかと。

 

 

 

【④ CryFS】 

立ち位置的にgocryptfsに近い感じの暗号化ソフト。設定から使い方まで似ているため、gocryptfsが使える人は難なく利用できるかと。

よりDropbox向けで、EncFSやgocryptfsとは違い、ファイルサイズ、ファイルメタデータ、ディレクトリ構造までも暗号化する点などが優れているとされます。ただし、gocryptfsに比べ、読み書き速度は2〜7倍遅く、ディスクスペースは2〜3倍ほど必要になるようで、そこがネック。

Dropboxなどのクラウド向けと紹介があったりしますが、USBメモリやホームディレクトリ内での使用も問題なし。

Cryfs_03

なお、開発途上なところがまだあるようです。ライセンスはGPL。Linux,Macで使えます。(Windowsでも使える?)

 

ということで、以上4つのソフトを挙げてみました。個人的には単純に暗号化だけならgocryptfsが一番バランスが取れているような気がします。(終)

 

※ Linuxにおけるシステムの暗号化とかは、dm-crypt とか loop-AES などをキーワードに調べてみてください。

 

 

 

〔関連ページ〕
 ・Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪   
 ・Linuxでファイル暗号化(4)〜 CryFS で守る♪
 ・それは誰が保証するか?〔GnuPG(GPG)/電子署名〕〜ごまかせない署名〜  
 

 

 

 

 

 

Linuxでファイル暗号化(4)〜 CryFS で守る♪

CryFS は VeraCrypt よりも、よりクラウド向けの暗号化ソフトウェア。

使い方はEncFSやgocryptfsに近いです。

メリットとして、EncFSやgocryptfsとは違い、ファイルサイズ、ファイルメタデータ、ディレクトリ構造までも暗号化する点などが優れています。

しかし、処理速度等はgocryptfsにはだいぶ劣るようです。

参考「CryFS:Encrypt your Dropbox」「gocryptfs:Other Projects

大雑把に、読み書き速度は2〜7倍遅く、ディスクスペースは2〜3倍ほど必要になる模様。

ただ、Dropboxとは相性が良さげな感じです。

ということで、簡単な CryFS の使い方についてをば。なお、作業環境についてはDebian10となります。

 

 

【① CryFS のインストール】 

ルート権限になって、

# apt update
# apt install cryfs

で終了です。

Cryfs_01

 

【② 2種類のフォルダ(ディレクトリ)を準備する】 
 ここは、gocryptfs(やEncFS)と同じです。
 「㋐:暗号化されたファイルを保存するためのフォルダ(ディレクトリ)」と「㋑:㋐のマウント先となるフォルダ(ディレクトリ)」を作成します。この2つのディレクトリをファイルマネージャやmkdirなどで適当に作ってください。

(参考:Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪

今回はホームディレクトリに、㋐用の「maruhi」と㋑用の「work」を作成することとします。

 

 

【③ マウント&運用開始】 

$ cryfs ㋐暗号化先のディレクトリ  ㋑作業用のディレクトリ  

Cryfs_02

とします。

なお、初回マウント時には「Use default settings?」と聞かれ、初期化作業が入ります。ココはgocryptfsと違うところですね。

デフォルト設定なら「y」で良いです。ちなみに「n」だと細かな設定ができます。

Cryfs_05

最後は「パスワード」を設定します。
(初回時のみ/このパスワードは次回のマウント時から利用するので忘れないように)

以上で設定終了。運用開始となります。(運用の仕方はgocryptfsと変わりません。)

Cryfs_03

 

 

【④ アンマウント】 

使用後は「アンマウント」という作業が必要になります。

$ fusermount -u マウントポイント 

と入力します。(マウントポイントは「相対パス」ではなく「絶対パス」で。タブ補完を利用すると自動で出るかとは思いますが。)

これも gocrypsfs と全く同じですね。

 

 

〔おまけ〕   

gocryptfs同様、CryFS でも「SiriKali」が利用できます。

Cryfs_04

使い方については「Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪ SiriKali編」を参考にしてください。gocryptfsと同じような感覚で利用できます。(終)

 

 

 

〔関連ページ〕
 ・Linuxでファイル暗号化(3)〜 Dropboxをgocryptfsで守る♪   
 ・Dolphin で Dropbox !

 

 

 

 

 

 

 

2020年3月14日 (土)

GnuPG(GPG)で署名ファイルを作る【CUI編】

それは誰が保証するか?〔GnuPG(GPG)/電子署名〕〜ごまかせない署名〜』の番外編です。

先のページで3パターンの署名を例として上げましたが、それぞれの署名の仕方についてのメモです。なお、作業環境は毎度のことながらDebian10です。

 

ちなみに、各署名を行うには自分のGPG鍵ペアを所有している必要がありますので、無い場合は自分で作成を。

GPG鍵ペアの作成は、

$ gpg --full-gen-key
(または、簡易の「$ gpg --gen-key」、さらに細かく指定する場合は「$ gpg --full-gen-key --expert」)

で可能です。

 

 

 

【1:クリア署名の作成】 

署名したい文書(テキストファイル)を用意し、端末で以下を入力すれば終了。

$ gpg --clearsign <署名したい文書ファイル>

このとき、GPG鍵を作成したときに設定した「パスフレーズ」を聞かれるかと思いますので、正しいパスフレーズを入力すれば「○○.asc」な感じでクリア署名のファイルができていると思います。

なお、ファイル名を指定してクリア署名ファイルを作成したい場合は、

$ gpg --output <クリア署名ファイル名> --clearsign <署名したい文書ファイル>

とします。

検証は以下。

$ gpg --verify <クリア署名ファイル>

 

 

【3:分離署名の作成】 

署名したい文書(テキストファイル)を用意し、端末で以下を入力。

$ gpg --detach-sign <署名したいファイル名>

とすると「○○.sig」な感じで分離署名ファイルができます。

ただし、これでできるファイルはバイナリファイルなのでエディタで読める形式ではありません。

テキスト形式で出力する場合は、

$ gpg --detach-sign --armor <署名したいファイル名>

とすば「○○.asc」な感じで分離署名ファイルができているかと思います。

なお、分離署名ファイルの名前を指定して出力したい場合は、

$ gpg --output <分離署名ファイル名> --detach-sign <署名したいファイル名>

$ gpg --output <分離署名ファイル名> --detach-sign --armor <署名したいファイル名>

などとします。

検証は以下。

$ gpg --verify <分離署名ファイル> <署名対象のファイル>

Gpg_sign_03_dr

 

 

【2:PGP MESSAGE】 

これに関しては、

・「電子署名が付加」されただけのPGP MESSAGE
・「ファイルを暗号化」しただけのPGP MESSAGE
・「電子署名 + 暗号化」がファイルに施されたPGP MESSAGE

とパターンがいろいろあるので、とりあえず1つずつ。

 

【① 電子署名の付加のみ

 $ gpg --sign <署名を付加したいファイル>

とすると、「○○.gpg」な感じで、電子署名が付加されたファイルができていると思います。

ただし、これでできるファイルはバイナリ形式となるので、テキスト形式で作成したい場合は、

$ gpg --sign --armor <署名を付加したいファイル>

とすれば、「○○.asc」な感じでファイルができていると思います。

なお、ファイル名を指定して作成する場合は「--output または -o」オプションを付けてあげれば良いです。

検証は「--verify」でやればできるんですが、元の文書も同時に読みたいケースも多いと思います。

$ gpg --decrypt <電子署名が付加されたファイル>

とすれば、文書の表示 + 検証 を同時に行ってくれます。

 

 

【② 暗号化のみ  

これは電子署名が関わってないですがおまけです。

暗号化をする際は、「暗号化ファイルを受け取る人の公開鍵」が必要です。

公開鍵をインポートしていなければ、先にインポートしておく必要があります。

公開鍵をファイルとして貰っている場合は、
 $ gpg --import <公開鍵ファイル>

公開鍵サーバから直接ダウンロードしてインポートする場合は、
 $ gpg --keyserver <公開鍵サーバ> --recv-keys <公開鍵のID>

ネット上に公開されている公開鍵ファイルを直接指定してダウンロード&インポートする場合は、
 $ gpg --fetch-keys <URIs 例:https://***/*****/○○.key など>

とすれば良い。

(「Aさんの公開鍵で暗号化」したファイルを読むためには「Aさんの秘密鍵」が必要、つまりAさんしか読めないということになります。ちなみに署名の場合は逆で、「Aさんの秘密鍵で署名」したファイルの検証は「Aさんの公開鍵」を使えば可能で、この署名ファイルを作ることができるのはAさんのみ。)

暗号化については、

$ gpg --encrypt --recipient <相手先の公開鍵のID> <暗号化したいファイル>
(--recipient は -r でも良い)

とすれば、「○○.gpg」というファイルができていると思います。

なお、これでできるファイルはバイナリ形式なので、テキスト形式にする場合は「--armor または -a」オプションを、ファイル名を指定したい場合は「--output または -o」オプションを付ければ良いです。

復号については、

$ gpg --verify <暗号化されたファイル>

とすれば良いです。なお、このファイルを開けるのは「暗号化に使用した公開鍵のペアの秘密鍵を持つ所有者のみ」で、復号の際に自分の秘密鍵のパスフレーズの入力が必要になります。

※1 暗号化の際、複数の公開鍵暗号化することも可能です。

$ gpg --encrypt --recipient <公開鍵1のID> --recipient <公開鍵2のID> <暗号化したいファイル>

上記の場合は2つの公開鍵で暗号化してますが、この場合ファイルを開けることができるのは「秘密鍵1」か「秘密鍵2」を持つ人のみです。(つまり、2人の人物がこのファイルを開ける。)

※2 自分の公開鍵で暗号化も可能です。

その場合はこのファイルを開けるのは自分のみになります。

(ちょっとしたファイルの暗号化に利用はできると思いますが、個人利用で署名不要の単純な大量のファイルの暗号化には「gocryptfs」などを利用するが良いのでは無いでしょうか。gocryptfsについては『Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪』などを参考にしてください。)

 

 

 

【③ 暗号化+電子署名  

②と同様「暗号化ファイルを受け取る人の公開鍵」が必要です。

暗号化+署名については、

$ gpg --encrypt --sign --recipient <相手先の公開鍵のID> <暗号化&署名したいファイル>

とすれば、「○○.gpg」というファイルができていると思います。

なお、これでできるファイルはやはりバイナリ形式。

テキスト形式にする場合は「--armor または -a」オプションを、

ファイル名を指定したい場合は「--output または -o」オプションを付ければ良いです。

復号については、

$ gpg --verify <暗号化&署名されたファイル>

とすれば良いです。なお、当然ながらこのファイルを開けるのは「暗号化に使用した公開鍵のペアの秘密鍵を持つ所有者のみ」です。また、署名者の公開鍵をインポートしていないと、「署名の検証」ができません。(終)

 

 

【おまけ】  

※1

相手に自分の公開鍵を渡す場合は、自分の公開鍵をエックスポートする必要があります。

公開鍵のエックスポートは、

$ gpg --output <指定する公開鍵名> --armor --export <エックスポートしたい公開鍵のID>

でいけます。

 

※2

複数ファイルをまとめて署名&暗号化するには、「gpgtar」コマンドが利用できます。

「しっぽのさきっちょ」さんの『複数ファイルをまとめて署名・暗号化する』が詳しいです。

 

※3

apt が パッケージを認証するのに使用するキーの一覧を表示するには、

$ apt-key list

とすると良い。

 

※4

GUIでの鍵の管理や署名等の話題については「GPG鍵管理ソフト〜KGpg 【GUI編】」をどうぞ。

Kgpg_02_d

 

 

 

 

〔関連ページ〕 

 <暗号化関連>
 ・Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪  
 ・Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪  SiriKali編  
 ・Linuxでファイル暗号化(3)〜 Dropboxをgocryptfsで守る♪  

 <その他>
 ・そのファイルは本物か?〔MD5 / SHA〕〜ごまかせないハッシュ値〜  

 ・GnuPG 秘密鍵のバックアップ   

 

 

【セキュリティ関連・外部サイト】
 ・量子コンピューターが変える暗号の常識、経営視点から学ぶ「鍵管理」 
 ・SSL通信も量子コンピュータの前では無意味に? 今から備えるべき「耐量子コンピュータ暗号」とは 
   「今盗んだ暗号化データが10年後の「金山」になる可能性も」ってのは怖い話ですね。
 ・格子暗号の実用化に向けて 

 

 

【その他】
 暗号化技術関係は、結城 浩先生の「暗号技術入門 第3版」が非常に勉強になります。暗号、共通鍵、公開鍵、認証、署名、証明書等、入門者にとってはまさに素晴らしい著書だと思います。

 

 

 

 

 

2019年8月28日 (水)

Linuxでファイル暗号化(3)〜 Dropboxをgocryptfsで守る♪

Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪」の兄弟記事です。

今回はDropbox下のディレクトリ(フォルダ)をgocryptfsで暗号化します。ちなみに作業の流れは全くといっていいほど変らないんですけどね。

さて、今回の作業環境は以下になります。

・OS: Debian 10 KDE
・Dropbox のアカウントは取得済み
・Dropbox を Debian にインストール済み & Dolphin から Dropbox に直接アクセスできる状態に
 (これについては「Dolphin で Dropbox !」の参考記事があります。)

また、gocryptfs の基本的な使い方はわかっているものとします。

(基本的な使い方がわからーんな方は「Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪」を参考にしてみてください。)

ではいきます。

 

【① gocryptfs のインストール】

Dr_201_

まずは、gocryptfsをインストールします。(やり方は「Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪」と同一です。)

 

 

 

【② 2種類のフォルダ(ディレクトリ)を準備する】

「㋐ 暗号化されたファイルを保存するためのフォルダ(ディレクトリ)・・・CIPHERDIR」と「㋑ CIPHERDIRのマウント先となるフォルダ(ディレクトリ)」を作成します。

 

〔㋐ CIPHERDIR の作成〕 

まずDropbox内に「㋐ CIPHERDIR」を作成します。フォルダ名(ディレクトリ名)は任意で。

Dr_202_a

今回はDropbox下に「maruhi2」を作成しました。

 

 

〔㋑ 作業用のディレクトリの準備〕 

次は「㋑ 作業用のディレクトリ」を準備します。

既存のディレクトリを指定しても良いんですが、余計なトラブルを防ぐためにも今回は新規でそれ専用のディレクトリを作成することにします。

今回は「ホームディレクトリ下」に「workD」というディレクトリを作成しました。(ディレクトリ作成の解説は略)

Dr_204_

以上で、2つのディレクトリの準備ができました。

次は㋐の初期化作業を行います。

 

 

【③ 初期化】

初回時のみ、この「㋐ CIPHERDIR の初期化」という作業を行います。

まずは新たな端末にて、

$ gocryptfs -init CIPHERDIR 
(今回は「$ gocryptfs -init ./Dropbox/maruhi2/」)

と打ち、パスワードを設定します。

Dr_205_

上図のように問題が無ければ、初期化は完了です。

なお、ここで設定したパスワードはマウント時に必要なので忘れずに♪

 

 

【④ マウント】 

端末にて、

$ gocryptfs  ㋐CIPHERDIR  ㋑作業用のディレクトリ 
(今回の場合は「$ gocryptfs./Dropbox/maruhi2/ ./workD/」)

と入力、初期化時に設定したパスワードを入力し、㋐を㋑へマウントします。

Dr_206_

以上で、マウント完了です。

㋐と㋑が紐付けられた状態になりました。これで設定は終了です。

以後、運用開始となります。

 

 

【⑤ 運用開始】 

Dr_207_r

使い方は「Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪」で説明したとおりです。

㋑にファイルを突っ込めば、Dropbox内にある㋐に暗号化された状態でファイルが保存されます。

 

 

【⑥ PCの再起動後について】 

PCを終了させると、マウントは解除されます。

PCの起動後は④のマウント作業を行ってください。

ちなみにCUI、つまり端末でのマウント作業が面倒くさいという方はGUIで操作できる「SiriKali」というソフトが存在します。

簡単な使い方については「Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪ SiriKali編」がありますので、興味がある方は参考にしてみてください。

 

※1
Dropbox と VeraCrypt は相性的にあまりよろしく無い模様。VeraCryptはすべてのデータを1つの暗号化されたコンテナファイルに保存する設計なのだけれども、これはクラウドで使用するように設計されていないため、運用にはいろいろとトラブルが起きうるとのことで、お勧めできないらしい。

例えば、コンテナ内の1つのファイルを変更した場合、コンテナファイルが変更されることとなる。これはちょっとした小さな変更でもコンテナファイルが大きい場合はネットワーク帯域を使うことになり、場合によっては処理に時間がかかることになる。またネットワークが不安定、落ちた時などは、Dropbox内のデータとの同期に問題が発生しうるなどなど。

これらについての詳細は、「https://www.cryfs.org/comparison/」を参考にしてみてください。

 

※2
Dropbox におすすめ暗号化ソフトとして、上記サイトで「CryFS」が紹介されています。使い方はgocryptfsとほぼ同じです。

気になる方は「Linuxでファイル暗号化(4)〜 CryFS で守る♪」なども参考にしてみてください。

 

 

 

〔関連ページ〕
 ・Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪  
 ・Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪ SiriKali編  
 ・Dolphin で Dropbox !  
 ・Linuxでファイル暗号化(4)〜 CryFS で守る♪    

 

 

 

 

 

2019年8月23日 (金)

Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪ SiriKali編

Linuxでファイル暗号化 〜 USBメモリをgocryptfsで守る♪」の兄弟記事です。

前回はgocryptfsのマウント設定をCUIで行っておりましたが、今回はSiriKaliを利用してGUIで設定するといったお話です。

Siri_066

さて、この「SiriKali」ですが、これは「暗号化フォルダを管理するソフト」の一種で、gocryptfs だけではなく、ecryptfs、cryfs、encfs、なども扱えるらしく、また Linux 以外での macOS や Windows でも動作する模様。

ということで、今回は「SiriKali」のインストールから簡単な使い方のご紹介。

作業環境は「Debian10 KDE」となります。

ちなみに gocryptfs 自体の「使い方の概要」はここでは述べません。
概要については、「Linuxでファイル暗号化 〜 USBメモリをgocryptfsで守る♪」を参照しておいてください。
「◎ 使い方の概要」は理解した上で、話を進めていきます。

 

 

【SiriKali のインストール】

「apt」でも「apper」でも構わないので「SiriKali」をインストールします。

Siri_001_

(「apperって何?」な方は「KDE パッケージ管理ソフト Apper」をどうぞ。)

「gocryptfs」をまだインストールしていない場合は「gocryptfs」もインストールしておいてください。

Siri_002

 

 



【SiriKali の起動 

 メニューからでもランチャー(Alt + F2)からでも構わないので、とりあえず「SiriKali」を起動します。

Siri_011_Siri_012

 (SiriKali 起動完了の図)

 

 

【作業用フォルダのパスの変更(任意)】 

 Linux慣れしている人はこの作業は不要かと思われますが、「ドットファイルって何?」な方はこの設定をやっておいた方が余計な混乱は少ないかと思います。

Siri_013_

Siri_014_

SiriKaliが標準で指定する㋑の作業用フォルダ(ディレクトリ)はこのようになっているかと思います。

/home/ユーザ名/.SiriKali

.SiriKali」がドットファイル(というかディレクトリ)ですので、扱いになれていない場合、作業がしづらいかと思いますので、これを変更します。

フォルダ名は任意で構いませんが、今回の例では「.SiriKali」の部分を「work」と変更しました。

Siri_015_

/home/ユーザ名/work

ちなみに「ユーザ名」の所は変えないようにした方が無難、というか変更しないようにしましょう。

以上でパスの変更作業は終了です。

 

 

【初回時:㋐ CIPHERDIR フォルダの作成+パスワードの設定 

Siri_021_

「Create Volume ➔ Gocryptfs」と選択します。すると以下の画面になると思います。

Siri_022 

「㋐ CIPHERDIR」の作成、及び、「㋐ CIPHERDIR 初期化時に行うパスワード設定」を行うためのウィンドウが出てきます。(「CIPHERDIR」って何という方は、「Linuxでファイル暗号化 〜 USBメモリをgocryptfsで守る♪」を参考に)

Siri_022_

はじめに、「Volume Path」を設定します。ようは「㋐のディレクトリ先」の指定です。ちなみに今回はUSBメモリを指定先としました。

Siri_023_c_r2

 

次に㋐のフォルダ名を「Valume Name」のところで指定します。今回は「maruhi」としました。
Siri_025_r

(すでに同名のフォルダが作成されていると「Encrypted Folder Path Is Already Taken.」と弾かれます。弾かれたら、違うフォルダ名を指定しましょう。)

 

最後に「key」のところにパスワードを入力します。これは復号時、というかマウント時に必要とされるパスワードで、任意に指定可能です。ここで自分で決めたパスワードを入力します。(このパスワードは「Linuxでファイル暗号化 〜 USBメモリをgocryptfsで守る♪」で説明した初期化時に行うパスワード設定のパスワードと同一です。)

Siri_026_

すると、以下のような状態になると思います。

Siri_029_r2

以上で設定終了です。

 

【運用開始 

Siri_031_r

運用の仕方は「Linuxでファイル暗号化 〜 USBメモリをgocryptfsで守る♪」と同一です。㋑で作業をした結果が㋐に反映されます。

 

 

【アンマウント 

Siri_041_r

  ↓

Siri_042_

(終)

 

【2回目以降の再マウント 

Siri_051_

「Mount Volume」をクリック。

 

Siri_052_

目的の「㋐ CIPHERDIR」先をここで選択。

 

Siri_054_

自分で作成した「パスワード」を入力。

 

Siri_055

運用開始♪

 

 

【マウント先の登録 

 任意のマウント先を登録することも可能です。以下手順です。

Siri_061_

Siri_062_r2  

Siri_063_

Siri_064_

登録したものが選択できるようになっているので、これを選択すると、下図のようにパスワードを入力するウィンドウが出てきます。

Siri_065_

あとはパスワードを入力すれば・・・

 

Siri_066

運用開始となります♪(終)

 

 

 

【おまけ 

※1 リストの削除は下図参照。

Siri_071_r

 

※2 「Dolphin の画面分割」は下図参照。

Siri_072_

「ビューを分割」をクリック。

Siri_073

 ニ分割に♪ 

 

※3 下図の「Open Folder」をクリックすると、「㋑作業用のフォルダ」を直に開くことができます。

Siri_074_c_r2

 

 

〔関連ページ〕
 ・Linuxでファイル暗号化(3)〜 Dropboxをgocryptfsで守る♪  
 ・Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪ 
 ・Linuxはそんなに難しいのか(2)ファイルの保存場所/USBメモリなどのアクセス/安全に取り外す  

 

 

 

 

 

 

 

2019年8月21日 (水)

Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪

近年、USBメモリの紛失等による情報流出等により、厳重な情報管理が叫ばれている今日この頃です。

さて、今回は Linux におけるUSBメモリの暗号化がテーマです。

暗号化を行うことの出来るソフトは数多くありますが、今回、暗号化に利用するパッケージは

gocryptfs

です。

ホームディレクトリ内やDropboxなどのオンラインストレージ、sshfsでのマウント先のディレクトリの暗号化、仮想マシン上のホスト・ゲスト間の共有ディレクトリ内のファイルの暗号化等々、いろいろな所で使えるんですが、USBメモリでも利用できます。

基本はホームディレクトリでの作業で説明しています。作業の流れは全く変わらないので。

USBメモリでの使用に関しては、パスさえわかれば問題が無いハズなので、これに関しては最後の仕上げに補足という形で記述してあります。

ちなみに「EncFS」の後継に当たるようで、使い方が似ており、使ったことがある人はすぐに慣れるかも。

ということで、まずは使い方の概要から。

 

【◎ 使い方の概要】

gocryptfs では「㋐ 暗号化したファイルの保存先」と「㋑ その保存先とリンクした---作業用のフォルダ(ディレクトリ)」が必要であることを理解する必要があります。

042r3

gocryptfsの使用中は㋐のフォルダ(ディレクトリ)を意識する必要は無く、㋑のフォルダ(ディレクトリ)上でファイルのやり取りをします。

㋑と㋐はリンクしており、㋑上でファイルを開いたり、保存したり、削除したりして作業をするのですが、ファイルを保存したり、削除したりすると㋐に反映される形となります。(㋐ にあるファイルが実態として存在するファイル群)

また、㋑から他のフォルダへファイルをコピーすることも可能です。

暗号化を使用しない時は「㋐と㋑のリンクを切断」し、暗号化されたファイルに直にアクセスできないようにするようにします。

1つのファイルごとに暗号化や復号といったことを考える必要はありません。

では、導入からマウントなどの設定、実際の使い方の話に入ります。

なお、作業環境は「Debian10 KDE」となります。

 

【① パッケージのインストール】

まずは端末にて。

# apt update
# apt install gocryptfs

で、インストール完了。

002_in2r2

(「apt って何やねん」な方は、「apt-get チュートリアル(apt チュートリアル)」をどうぞ。)

 

 

【② 2種類のフォルダ(ディレクトリ)を準備する】 

概要で話した通り、gocryptfsを使用するにあたり、2つのフォルダ(ディレクトリ)が必要です。

一つは「㋐ 暗号化されたファイルを保存するためのフォルダ(ディレクトリ)」。マニュアルでは「CIPHERDIR」と表記されています。(CIPHER・・・暗号、暗号を解くカギ)

もう一つはその「㋑ CIPHERDIRのマウント先となるフォルダ(ディレクトリ)」で、ファイルの保存や削除等の作業はすべてこの㋑のディレクトリを通して行います。

 

〔㋐ CIPHERDIR の作成〕 

フォルダ名(ディレクトリ名)は任意で。

今回は「ホームディレクトリ」に「maruhi」を作成しました。
ホームディレクトリとは、Windowsで言う「マイドキュメントフォルダ」のようなものです。)

051_r3

053_r

 (Dolphin を利用した場合の例)

以上で㋐の作成は終了です。

 

 

〔㋑ 作業用のディレクトリの準備〕 

次は「㋑ 作業用のディレクトリ」を準備します。

既存のディレクトリを指定しても良いんですが(例えば /mnt など)、余計なトラブルを防ぐためにも今回は新規で作成することにします。

今回は「ホームディレクトリ下」に「work」というディレクトリを作成しました。(ディレクトリ作成の解説は略)

054_r

以上で、2つのディレクトリの準備ができました。

次は初期化という作業を行います。

 

 

【③ 初期化】

「EncFS」の場合は、この作業が無いんですけどね。初回時のみ、この「㋐ CIPHERDIR の初期化」という作業が必要になります。

まずは新たな端末にて、

$ gocryptfs -init CIPHERDIR 
(今回は「$ gocryptfs -init ~/maruhi/」)

と打ちます。

061_r

(※ もし、「Invalid cipherdir: directory ********** not empty」と弾かれたら、本ページの「おまけの欄」を参考にしてみてください。)

特に問題が無ければ、「Choose a password for protecting your files.」と聞いてきます。

これは復号時、というかマウント時に必要とされるパスワードです。

任意に指定可能です。ここで自分で決めたパスワードを入力します。

ちなみにパスワードを入力する際「*****」のような表示は全くされません。まるで無反応のような感じですが、パスワードを打って、最後に「Enter」キーを押せばOKです。

一回入力をすると「Repeat:」と「再確認のためにパスワードもう一回入力して〜」と促されるので、もう一度同じパスワードを入力します。

062_r

最後に、

The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs **** MOUNTPOINT

と出たら、初期化終了です。

ちなみに、この作業を行うと、「CIPHERDIR」下に、「gocryptfs.conf」「gocryptfs.diriv」という2つのファイルが作成されます。

063_r

運用開始後はこの2つのファイルを削除してはいけません。
削除してしまうと、暗号化されたファイルを復号することができなくなります

(運用開始前であるならば、別に削除しても問題は無いです。ただ、もう一度初期化作業をしなければなりませんが。)

 

 

【④ マウント】 

端末にて、

$ gocryptfs  ㋐CIPHERDIR  ㋑作業用のディレクトリ 

と入力、㋐を㋑へマウントします。

064_c_  

すると、パスワードを聞かれますので、初期化時に設定したパスワードを入力します。

065_c_

上図のようになれば、マウント成功です。

㋐と㋑が紐付けられた状態になりました。以上で設定は終了です。

以後、運用開始となります。

 

 

【⑤ 運用開始】 

042r3

使い方は概要で述べた通りです。「㋑作業用のフォルダ(ディレクトリ)」でファイルをやり取りするだけです。

ファイルを保存したり、削除すれば自動で㋐に反映されます。

 

 

【⑥ アンマウント】 

使用後は「アンマウント」という作業が必要になります。

$ fusermount -u マウントポイント 

と入力します。(マウントポイントは「相対パス」ではなく「絶対パス」で。タブ補完を利用すると自動で出るかとは思いますが。)

066_c_r

すると、マウントが解除され、㋑からはファイルは見えなくなり、ファイルに直接アクセスできなくなるようになります。(㋐に暗号化されたファイルと設定ファイルのみが残る。)

069_r

再び、使用したい場合は「④マウント」の作業から行えば良いです。(終)

 

さて、USBメモリも同様のやり方で使用ができるのですが、CUIに慣れていない方は「マウントポイントはどこぞ?」となりそうなので、一応補足をば。

 

〔USBメモリの場合〕 

流れは変わりません。ただ、マウントポイントのパスがわからないと、作業が途中で止まるかと思われますのでDolphinで手軽に調べる方法を1つ。

例えば、USBメモリに「maruhi」のフォルダ(ディレクトリ)を作成した場合、Dolphinを利用すればこのディレクトリの絶対パスは簡単に調べられます。

下図のようにDolphinで「maruhi」のフォルダを開いてから「F6」キーを押すと、アドレス欄のところが絶対パス表記になります。

701_ar

あとは、これを参考にして初期化やマウントを行えば良いです。703_r

ちなみに、USBメモリ上にマウントポイントを作成した場合、USBメモリを取り外す時は、「fusermount」コマンドを使用してのアンマウントを行ってから、「USBメモリを取り外し」作業を行って、USBメモリを外します。

なお、マウントポイントをホームディレクトリ内にした場合は、「fusermount」でアンマウント作業を行わなくても、「USBメモリを取り外し」作業からUSBメモリを取り外せたりします。これが良いかどうかは微妙な感じですが。

 

 

【おまけ】

 ※ 1
 今回、gocryptfsのマウント作業をCUIで行いましたが、GUIでgocryptfsのマウント作業を行うことができるSiriKaliというソフトが存在します。興味がある方は「Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪  SiriKali編」を参考にしてみてください。

 

 ※ 2
 gocryptfs がインストールされたPCであれば、そのPCからでもUSBメモリにアクセスすることが可能です。

711_r

やり方としては、「④ マウント」作業から行えば良いです。パスワードさえ漏らさなければ、他人にファイルが見られることはありません。

 

 ※3
 パスワードを変更したい場合は、

$ gocryptfs -passwd CIPHERDIR 

とします。

704_r


 ※4
 EncFS 同様、「リバースモード」というものがあります。バックアップ時、バックアップ先の暗号化に利用するなどに使えるようです。興味がある方は調べてみてください。

 ※5
 初期化作業の際、初期化対象のフォルダ(ディレクトリ)が空っぽのはずなのに、「Invalid cipherdir: directory ********** not empty」と弾かれることがある。

751_cr2

この場合、そのディレクトリに「.directory 」などの「ドットファイル(隠しファイル)」ができてしまってることがあります。

752_cr2

Dolphinの設定によっては、Dolphinでそのディレクトリにアクセスした際に「.directory」を自動作成しまうことが有りえます。

もし「.directory」などのドットファイルがあれば、それらのファイルをすべて削除すると良いです。

753_cr2

 

 ※6
 VirtFSを利用してホストOSとゲストOS間に共有フォルダを作成する際、この共有フォルダ内においても同様のやり方で暗号化が利用できます。

 

(終)

 

 

【外部サイト】
 ・Debian Manpages GOCRYPTFS(1)  
 ・日立ソリューションズ:IT用語辞典 マウント
 ・Arch wiki:gocryptfs 
 ・Arch wiki:Dropbox のセキュア化 
   (gocryptfs が EncFS の セキュリティ上の問題を解決するために作られたものと記述がある)
 ・Arch wiki:ディスク暗号化 

 

 

〔関連ページ〕
 ・Linuxでファイル暗号化(2)〜 USBメモリをgocryptfsで守る♪  SiriKali編   
 ・Linuxでファイル暗号化(3)〜 Dropboxをgocryptfsで守る♪  
 ・virt-manager:VirtFS でホスト・ゲスト間のファイル共有  

 ・Linuxはそんなに難しいのか(2)ファイルの保存場所/USBメモリなどのアクセス/安全に取り外す  
 ・apt-get チュートリアル(apt チュートリアル) 

 

 

 

 

 

2021年5月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ