AuthPassと、古参のKeePassがFlutterで蘇った理由

パスワードマネージャーについて語られるとき、コミュニティは二つの阵营に分かれます。一方はクラウドベースのサブスクリプションサービスを使い、他者の金庫の定期的な漏洩を見過ごします。もう一方はKeePassと.kdbx形式に頑なにこだわりを持ちます。データベースファイル在手であれば、自分のシークレットを自分で管理できます。しかし、別の頭痛の種が待っています:異なるプラットフォーム間でのクライアント乱立です。
デスクトップでは、通常KeePassXCが選択肢となります。AndroidではKeePassDXをインストールする必要があります。iOSではStrongboxやKeePassiumのようなものを探さなければなりません。それぞれ異なるインターフェースを持ち、独自の同期設定、特定のバグを抱えています。
AuthPassの開発者は異なるアプローチを取り、Android、iOS、macOS、Windows、Linux、さらにはブラウザでも同じ外観と動作をする統合Flutterクライアントを構築しました。

内部構造
核となるアイデアはシンプルです:標準的なKeePassデータベース(KDBX 3.xおよび4.x)を取得し、2000年代初頭の乱雑なボタンのオーバーロードなしに、クリーンで現代的なインターフェースでラップします。このアプリケーションはGPL-3.0ライセンスの下で完全にオープンソースです。
メインスタックはDartとFlutterです。プロジェクトの作成者はKDBX XML解析と復号化、鍵ファイルhandling、保護されたフィールドをすべてDartで実装しています。
現在のAuthPassの機能は次のとおりです:
- バージョン3と4のKDBXデータベースを開いて保存。
- マスターパスワードと鍵ファイルをサポート。
- クラウドストレージ(Google Drive、Dropbox)または直接リンクからデータベースを直接取得。
- スマートフォンの生体認証で動作 — 指紋またはFace IDでデータベースのロックを解除。
- Androidの自動入力システムと統合。
- 他のマシンでパスワードをすばやく取得する必要がある場合のWebバージョン — 何もインストールする必要がありません。
使用時の実践的な印象
インターフェースはクリーンに見えます。重量級の元の.NETベースのKeePassとは異なり、Flutterバージョンはモバイルデバイスで軽量に感じます。エントリ間の検索は高速で、ユーザー名またはパスワードをクリップボードにコピーするのはワンタップで済みます。
同期はバックエンドなしで処理されます:アプリケーションはデータをプロジェクトのサーバーを経由させません。単に.kdbxがどこにあるかを指定するだけです — ローカルディスク上、クラウドドライブフォルダ内、またはリンク経由でサーバー上。
技術に詳しくない親戚のためにクロスプラットフォームのKeePassを設定しようとしたことがある方なら、サードパーティクライアントがどれほど多くの質問を引き起こすかを知っているでしょう。AuthPassはすべてのデバイスで一貫したUXでこの問題を解決します。
ニュアンスと制限事項
リポジトリを見ると、プロジェクトは積極的に開発されていますが、まだ磨き上げ中のものもあります:
- iOSでの自動入力とデスクトップシステムの自動入力は、まだ対応中またはバックログにあります。
- KDBX 4のArgon2アルゴリズムのサポートは、しばらくの間Pure Dartにとっては難しいポイントでしたが、コア暗号化関数は確実に動作しています。
- 2つのデバイスからの同時編集のための組み込みの競合解決メカニズムはありません — クラウドでファイルが上書きされた場合 버전을自分で管理する必要があります。
LinuxまたはmacOSで複雑なフォームへのキーストロークエミュレーションを備えた深いシステムレベルの自動入力が絶対に必要であれば、デスクトップKeePassXCがまだ優れています。しかし、「日常使用のためのコンピュータ+電話」の組み合わせには、AuthPassがほとんどのニーズをカバーします。
このプロジェクトが役立つ人
まず第一に、電話とラップトップ間でのKeePassクライアントの断片化に厌倦している人々です。統一されたビジュアル体験と、プロプライエタリなクラウドにロックインされないオープンソースコードが必要な場合、AuthPassは確かに試してみる価値があります。
DartおよびFlutter開発者にとって、リポジトリは、暗号化、システム統合(生体認証、自動入力)、6つのプラットフォーム同時にビルドを備えたフル機能のクロスプラットフォームアプリの珍しい例として価値があります。コードでは、異なるOS間でのファイルシステム作業の組織化方法和pure Dartでのバイナリ形式パーサーの構造を確認できます。
関連プロジェクト