Mooltipass

提供: ArchWiki
2021年9月9日 (木) 09:43時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎イントロダクション: すこし文章を修正)
ナビゲーションに移動 検索に移動

Mooltipass はウェブアプリケーションや PAM セッションなどパスワードで保護されたアプリケーションの認証情報を保存することができる、オープンハードウェアおよびオープンソフトウェアによるハードウェアパスワードキーパーです。

HID クラスデバイスをサポートする USB が使える環境ならどこでも使うことができます。

クリックできるスクロールホイールを使って直接デバイスを使用するか、ブラウザ拡張やアプリケーションを使用します。

イントロダクション

Mooltipass を開発したチームは厳しいポリシーが課せられるパスワード認証に悩まされていました。例えば:

  • 使うたびにユニークなパスワード。
  • 推測されにくいパスワード。

上記のようなポリシーによって守られるセキュリティと利便性の落とし所として KeePass などのパスワードマネージャが存在します。しかしながら、そのようなアプリケーションはコンピュータのメモリ上にログイン情報を記録させるため、悪意のあるソフトウェアによって盗まれる可能性があります。

Mooltipass は外付けのデバイスであり、ログイン情報は AES-CTR を使って暗号化され PIN でロックされたスマートカードに256ビットの鍵が保存されます。デバイスを PC に接続すると、Mooltipass は HID デバイスをエミュレートしてキーボードのように振る舞うことで対象のアプリケーションにログイン情報を送信します。攻撃者がデバイスとホストの間の通信を盗聴できたとしても、すべての資格情報を収集したり、独自のデータを挿入することはできないと思われます。

パスワードの保存

ユーザーの識別は上記で説明したスマートカードを使います。ユーザーはそれぞれ別々のスマートカードを使う必要がありますが、Mooltipass は複数のユーザーで使いまわすことができます。

デバイスのフラッシュメモリには次のようなログイン情報が保存されます: ドメイン, ユーザー名, パスワード, コメント。

ノート: 暗号化されて保存されるのはパスワードだけです。

パスワードの保存には以下の制限があります:

  • フラッシュメモリの容量は 8Mb です。
  • パスワードの長さは最大で 32 文字までです。
警告: 間違った PIN を4回入力するとスマートカードがブロック・破壊されます。

使用方法

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 モジュールを実装しています。

ヒントとテクニック

ファームウェアのアップグレード

ファームウェアのアップグレードは署名されたバンドルを使います。専用の AES 鍵がボードに書き込まれています。

Udev ルール

mooltipass-udevAUR パッケージの udev ルールをインストールすることでデバイスにアクセスすることができます。

参照