Mooltipass
Mooltipass はウェブアプリケーションや PAM セッションなどパスワードで保護されたアプリケーションの認証情報を保存することができる、オープンハードウェアおよびオープンソフトウェアによるハードウェアパスワードキーパーです。
HID クラスデバイスをサポートする USB が使える環境ならどこでも使うことができます。
クリックできるスクロールホイールを使って直接デバイスを使用するか、ブラウザ拡張やアプリケーションを使用します。
目次
イントロダクション
Mooltipass を開発したチームは厳しいポリシーが課せられるパスワード認証に悩まされていました。例えば:
- 使うたびにユニークなパスワード。
- 推測されにくいパスワード。
上記のようなポリシーによって守られるセキュリティと利便性の落とし所として KeePass などのパスワードマネージャが存在します。しかしながら、そのようなアプリケーションはコンピュータのメモリ上にログイン情報を記録させるため、悪意のあるソフトウェアによって盗まれる可能性があります。
Mooltipass は外付けのデバイスであり、ログイン情報は AES-CTR を使って暗号化され PIN でロックされたスマートカードに256ビットの鍵が保存されます。デバイスを PC に接続すると、Mooltipass は HID デバイスをエミュレートしてキーボードのように振る舞うことで対象のアプリケーションにログイン情報を送信します。攻撃者がデバイスとホストの間の通信を盗聴できたとしても、すべての資格情報を収集したり、独自のデータを挿入することはできないと思われます。
パスワードの保存
ユーザーの識別は上記で説明したスマートカードを使います。ユーザーはそれぞれ別々のスマートカードを使う必要がありますが、Mooltipass は複数のユーザーで使いまわすことができます。
デバイスのフラッシュメモリには次のようなログイン情報が保存されます: ドメイン, ユーザー名, パスワード, コメント。
パスワードの保存には以下の制限があります:
- フラッシュメモリの容量は 8Mb です。
- パスワードの長さは最大で 32 文字までです。
ファームウェアのアップグレード
ファームウェアのアップグレードは署名されたバンドルを使います。専用の AES 鍵がボードに書き込まれています。
Additional features
In addition, the mooltipass benefits from the ATMega32u4 and exposes a custom Random Number Generator that is used to generate random passwords.
Udev rules
mooltipass-udevAUR provide udev rules that allow access to the device for every classical user from a session or using libusb.
使用方法
Mooltipass は誰でも簡単に使えるように作られています。主にブラウザアプリケーションや拡張で操作できます。
Chromium
Mooltipass チームによって作成された chromium-app-mooltipassAUR[リンク切れ: パッケージが存在しません] アプリケーションでパスワードのデータベースやバックアップ、デバイスの設定を管理できます。
拡張の chromium-extension-mooltipassAUR[リンク切れ: パッケージが存在しません] はウェブページのログインフォームを認識して、デバイスの中から適切なログイン情報を選択します。ユーザーは Mooltipass の画面を確認してハードウェアのスクロールホイールで承認・拒否できます。
Firefox
Chromium と同じように Firefox ユーザーは firefox-extension-mooltipassAUR でウェブサイトとデバイス上に保存されたログイン情報をつなげることができます。
Moolticute
moolticuteAUR はブラウザの外でも Mooltipass を使えるようにするためのクロスプラットフォームのアプリケーションです。アプリケーションは C++/Qt をベースとしており、デバイスを処理するデーモンと Chrome アプリを置き換える GUI アプリケーションから構成されます。
mc-cli
スクリプトを組みたい場合、MC-CLIAUR でコマンドラインから moolticuted を経由して Mooltipass を操作できます。
Moolticute_ssh-agent
moolticute_ssh-agentAUR[リンク切れ: パッケージが存在しません] は Mooltipass のファイルシステムサポートを使って (暗号化されていない) SSH 鍵を保存します。Moolticute_ssh-agent はデバイスから鍵をロードする SSH エージェントを実装しています。
Mooltipy
mooltipy はスクリプトに使うことができる CLI ツールと Python モジュールを実装しています。
ヒントとテクニック
Udev ルール
mooltipass-udevAUR パッケージの udev ルールをインストールすることでデバイスにアクセスすることができます。