パスワード管理ソフト4種類を試す

pass_thm.png

 Webサイトへのログインで利用するパスワードは、サイトごとに使い分けるのが望ましい。それも、さまざまな種類の文字を組み合わせた長めのパスワードにする方が強力だ。だがそうなると、すべてのパスワードを暗記しておくのは難しい。そんなときに役立つのがパスワード管理ソフトだ。さまざまなWebサイトのパスワードを暗号化してコンピュータ上のファイルに保存し、必要に応じて取り出すことができる。この記事では、4種類のパスワード管理ソフトを紹介する。いずれも、簡単にパスワードを呼び出すことができ、パスワードファイル自体を安全に保護できるものばかりだ。

 もちろん、パスワードをコンピュータ上に保存することには、それなりのリスクが伴う。管理ソフト本体や暗号化ライブラリにバグがあるかもしれないし、管理ソフトで暗号化データベースに保存するパスワードが実質的に“一蓮托生”の状態となる。つまり、暗号化データベースのセキュリティが破られたら、保存していたパスワードすべてを攻撃者の好きなように利用されてしまう可能性が高いのだ。しかしその反面、パスワード管理ソフトには、数十個のWebサイトのログイン情報を非常に強力なパスワード1つで管理できるという強みがある。新しいサイトにアクセスするたびに、強力なパスワードを覚えるという手間がない。もっとも、銀行のオンラインバンキングで利用するパスワードなどの保存には利用しない方が無難だろう。

 この記事で紹介するパスワード管理ソフトは、KeePassXPassword DragonPassword GorillaJPasswordsの4種類だ。ユーザ名とパスワードだけでなく、関連するURLやメタデータなどの情報もいっしょに管理できるものが多い。この記事では、こうした関連情報も含めて、管理対象の情報を「認証情報」と総称することにする。また、認証情報は、暗号化の後で単一のファイルに保存されるのが一般的だ。こちらは「認証情報データベース」と呼ぶことにする。なお、初めにおことわりしておくと、私自身はしばらく前から、パスワード管理にKeePassXを使用している。だが、この記事では、4つのプログラムを偏見なく取り上げるつもりだ。

 認証情報データベースのデータを取り出すためには、パスワードと、暗号鍵のファイルの両方が必要なことがある。一般には、暗号鍵ファイルがあっても、保護解除のためのパスワードがわからないと意味がない。どのようなパスワードと暗号鍵の組み合わせを使用するかは、認証情報データベースのセキュリティが破られたときに生じる影響に応じて変わってくる。暗号鍵ファイルを別個に使用する場合は、安全なフラッシュドライブなどに保存するのがいいだろう。暗号化した認証情報データベースを保存するマシンとは物理的に切り離しておくということだ。

KeePassX

keepassx1_thumb.png
KeePassX

 KeePassXでは、AESまたはTwofishを使って認証情報データベースを暗号化できる。これらのアルゴリズムの実装はソースコードに含まれている。

 KeePassXは、FedoraおよびUbuntuのリポジトリには含まれていないが、 openSUSE 11、Fedora 9(32ビット版および64ビット版)、Ubuntu Hardy(32ビット版および64ビット版)では1クリックインストールで利用できる。また、Mac OS X版、Windows版、Maemo版もある。主に依存するのはQtライブラリだ。

 KeePassXでは、パスワードと暗号鍵ファイルを組み合わせて認証情報データベースを保護できる。[File]メニューの[New Database…]を選択すると、上の図のようなダイアログが表示される。外部の暗号鍵ファイルを使用する場合、64バイトのASCII文字が含まれる。

 認証情報はグループごとに分類できる。各グループをさらにサブグループに分けることも可能だ。図からもわかるように、グループにアイコンを対応付けると、メインのツリービューで目的の認証情報をすばやく見つけられる。標準で用意された70種類ほどのアイコンのほか、独自のアイコンを使用することもできる。

 保存できる認証情報の中にはURLがある。各認証情報のコンテキストメニューから、そのURLをブラウザで開くことが可能だ。また、ユーザ名やパスワードをクリップボードにコピーすることもできる。ショートカットキーは、ユーザ名がCtrl+C、パスワードがCtrl+Bだ。

keepassx2_thumb.png
KeePassXの編集画面

 パスワードをクリップボードにコピーすることには若干のセキュリティリスクが伴う。クリップボードを読み取れるプログラムがパスワードを取得できてしまう点や、クリップボードへのコピーを次に行うまではパスワードがクリップボード内に残ったままになる点だ。KeePassXには、所定の時間が経過したらクリップボードを自動的にクリアできる機能がある。これを使えば、後者の問題は緩和できる。たとえば、クリップボードにパスワードを残す時間を5秒のみに制限すればよい。また、KeePassXには、無操作の状態で所定の時間が経過したらKeePassX自体を自動的にロックする設定もある。

 認証情報の編集画面は右図のとおりだ。パスワードの中身をデフォルトで表示するかどうかは設定できる。ノートパソコンの場合は隠し文字にしておくと都合がいい。外出先で認証情報の詳細を確認するときに、パスワードを盗み見られる心配がないからだ。

Password Dragon

 Password DragonはJavaアプリケーションで、Java Runtime Environment(JRE)のバージョン1.5以降が必要だ。暗号化にはBlowfishアルゴリズムを使用し、BlowfishJライブラリで処理を行う。JREをインストールしたら、次のコマンドでPassword Dragonを起動できる。

$ unzip /.../passworddragon.zip
$ cd passworddragon
$ java -jar passworddragon.jar

 メインのインタフェースは図に示すとおりだ。認証情報に対しては、カスタム属性を最大10個まで追加できる。追加した属性の詳細は画面右側に表示される。

passdora1_thumb.png
Password Dragon

 認証情報をカテゴリごとにグループ分けできる機能もあり、検索結果の絞り込みに利用できる。たとえば、金融関連やソーシャルネットワーキング関連など、ジャンルごとのカテゴリを用意しておけば、目的に合った認証情報だけを見つけられる。ただしカテゴリはネストできない。また、各認証情報はいずれか1つのカテゴリにのみ分類できる。

 Password Dragonでは、[Account Name][User ID][Password][URL][Notes][Category]の各項目を[Main Table]と[View Record]の両ダイアログの中で隠し文字で表示するかどうかを設定できる。また、無操作時に所定の時間でタイムアウトする機能や、URLの起動時にユーザIDとパスワードをクリップボードに自動でコピーする機能もある。クリップボードのクリアに関しては、Password Dragonの終了時にクリアする機能はあるが、コピー後に所定の時間でクリアする機能はない。

Password Gorilla

passgori1_thumb.png
Password Gorilla

 Password Gorillaは認証情報データベースの暗号化にTwofishアルゴリズムを使用する。Password Gorillaのパッケージは、Ubuntu Hardy Universeにはあるが、Fedora 9やopenSUSE 11にはない。Password GorillaはTclkitを使用する。こちらは、openSUSEでは1クリックインストールで利用できるが、Fedora 9のパッケージはない。TclkitのWebサイトには、ARMとx86(32ビットおよび64ビット)の各アーキテクチャ用のビルドが用意されている。また、Mac OS X版やWindows版もある。次に示すのは、Password GorillaをFedora 9にインストールして実行するコマンドの例だ。

$ cd
$ mkdir ~/password-gorilla
$ cd ~/password-gorilla
$ cp /.../tclkit-linux-x86_64.gz .
$ gunzip tclkit-linux-x86_64.gz
$ chmod +x tclkit-linux-x86_64
$ cp /.../gorilla-1.4.kit .
$ ls -lh
-rw-r--r-- 1 ben ben 246K 2008-09-14 14:32 gorilla-1.4.kit
-rwxr-xr-x 1 ben ben 2.2M 2008-09-14 14:32 tclkit-linux-x86_64*
$ ./tclkit-linux-x86_64 gorilla-1.4.kit

 Password Gorillaは、外部の鍵ファイルには対応しておらず、現時点ではパスワードによる認証情報データベースの保護のみが可能だ。無操作状態が続いたときに所定の時間で自動ロックする機能はあるが、いずれかのタイミングでクリップボードを自動でクリアする機能はない。ただし[Edit]メニューから手動で削除することは可能だ。認証情報の内容についてはスクリーンショットを参照してほしい。

JPasswords

jpassword1_thumb.png
JPasswords

 JPasswordsはJavaで動作し、JREのバージョン1.4以降が必要だ。ダウンロードファイルは通常版とデラックス版の2種類に分かれており、デラックス版の方がGUIに関するファイルが多く入っている。JPasswordsでは、認証情報データベースをパスワードで保護することは可能だが、外部の鍵ファイルには対応していない。認証情報データベースの暗号化にはCBCモードのTwofishを使用する。

 JREをインストールしたら、「java -jar jpws-deluxe-0-5-0.jar」を実行することでJPasswordsを起動できる。

 JPasswordsには、無操作時に所定の時間で自動ロックする機能がある。クリップボードを所定の時間で自動クリアする機能もあり、Webサイトで使ったパスワードをうっかり残したままにするのを防げる。グループ分けの機能もあるが、グループのネストには対応していない。メイン画面はスクリーンショットのとおりだ。

 認証情報のコンテキストメニューには、[Password to Clipboard]と[Username to Clipboard]という2つの上位項目がある。また、詳細ウィンドウのツールバーには、[Copy the password to clipboard]、[Copy username to clipboard]、[Clear clipboard]という3つの項目がある。

まとめ

 Javaランタイムを搭載したモバイルマシンで利用するならJPasswordsがいいだろう。クリップボードの自動クリア機能があるし、JREとjarファイル以外に依存関係がないからだ。Tclkitが動作する組み込み機器で利用するなら、Password Gorillaはインストールや実行が簡単だ。インタフェースもかなりコンパクトで、組み込み機器でスムーズに利用できるはずだ。認証情報のコンテキストメニューで、ユーザ名、パスワード、URLをさっとコピーできる。Qtが動作するプラットフォームなら、KeePassXがKDE 4のデスクトップとの親和性が高い。KeePassXはMaemoのようなコンパクトな環境でも動作する。

 今回は取り上げなかったが、gnome-keyringKDE Walletといったツールを使っている人もいると思う。こちらもいずれ記事で紹介したい。

Ben Martinは10年越しでファイルシステムと取り組んできた。博士課程終了。現在、libferris、ファイルシステム、サーチソリューションを中心にコンサルタント業務を展開している。

Linux.com 原文(2008年10月21日)