脱クラウドの決定版!P2P同期でセキュアなオープンソース・パスワードマネージャー「Bramble」
Show HN: Bramble – Local-first password manager
Show HN: Bramble – Local-first password manager
現在、P2Pによるクロスデバイス同期機能を備えたオープンソースのパスワードマネージャー「Bramble」を開発しています。当初はChrome拡張機能としてリリースしましたが、最近Androidアプリも公開し、iOS版も現在Appleの審査待ちの状態です。さらに、最新バージョンでは全プラットフォームでパスキーの保存にも対応しました!Brambleのコンセプト:既存の人気サービスを完全に置き換えられる高機能なツールを目指しています。そもそも、パスワードという重要データをわざわざクラウドに預け、企業の都合で毎年値上げされるような状況に振り回される必要はありません。セキュリティ侵害が起きるたびに、非暗号化領域の存在やメタデータの流出といった不透明さが露見することに、強い憤りを感じてきました。BrambleのP2P同期にはNostrリレー(セルフホスト可能)を採用しています。リレーはデバイス同士を仲介するだけで、実際のデータはWebRTCで直接送受信されるため、パスワードの同期用サーバーやクラウド上のコピーは一切存在しません。端末から外に出るデータはすべてエンドツーエンドで暗号化され、デバイス間で直接認証を行うため、悪意あるリレーやMITM攻撃を仕掛けられても中身を盗まれることはまずありません。暗号化処理はすべてRustで行い、キー情報のメモリ管理を厳密に制御しています(秘密情報は即座にゼロクリアされ、メモリ上に残存させない設計です)。Chromium向けにはWasmモジュールとして、モバイル向けにはuniffiでブリッジしたネイティブビルドとして実装しています。Androidアプリについて:GoogleによるAndroidの囲い込みやユーザーの所有権侵害に抗議するため、Playストアで公開するか、あるいはサイドロード用の署名済みAPKのみを提供するか検討中です。詳細は https://keepandroidopen.com/ をご覧ください。なお、本アプリはPlay APIを一切使用しておらず、開発環境であるGrapheneOSでも完璧に動作します。質問、フィードバック、機能リクエストなど、何でも大歓迎です!まとめ:プライベートエクイティやVC主導の企業によるセキュリティの商業化に反発し、ローカルファーストかつ完全無料で透明性の高い、自分だけのパスワードマネージャーを作りました。
要約:PEやVCが出資する企業がセキュリティに介入するのが嫌だから、ローカルファーストで無料かつオープンソース、極めて透明性の高い独自のパスワードマネージャーを作った。
それ、すごくわかる!バイブコーディング(感覚的なコーディング)について正直に明かしてくれたのも好感が持てるよ。ただ、リポジトリのどこを見ても、これを作ったのが誰なのか書かれていないみたいだね。パスワードマネージャーのようなツールだと、誰が責任者で、誰がLLMのソースコードをレビューしているのか、過去にどんな実績があるのか、ビジネスモデルは何なのか、といった情報をどうしても知っておきたいんだ。
そのあたりを教えてくれないかな?
すごくクリーンなコンセプトだね。サードパーティのクラウドに頼らず、すべてをディスク上に完結させるっていうのは、もっと増えてほしいアプローチだよ。
ローカルファーストのパスワードマネージャーこそが今後の主流になると思う。巨大テック企業はすでに力を持ちすぎているし、一番重要なデータを彼らに仲介させるのは悪しき前例になるよ。
P2Pにしたのはいい判断だね。自分もSQLiteベースで100%ローカルファーストなものを作ったけど、P2Pじゃないんだ。この分野の先行事例として興味があれば見てみて:
https://saveoursecrets.com/ (https://saveoursecrets.com/)
自分は完全にネイティブアプリ(Rustバックエンド、Flutterフロントエンド)で行こうと決めたんだけど、PlayストアやAppストアの面倒な対応に追われて、今はちょっと後悔してるよ。
P2Pと聞くと、自分のデータが他人のデバイスを経由するイメージがあるけど、これはプライベートなP2Pネットワークってことなのかな?
まさに探していたものだよ!試してみるのが楽しみ。これまで不便なことが多くて、パスワードマネージャーすら使っていなかったんだ。
正直、一番興味があるのはそのP2Pソリューションだね。自分もIndexedDBでストレージを構築するようなカスタムHTML要素を使ったWebアプリをいくつか作ったけど、アプリ間でのデータ同期の落としどころを模索してたんだ。そのNostrリレーを使った方法は、ユーザーが自分でホストしなくても安心できるし、パワーユーザーなら自分でホストもできるから、うまくバランスが取れていると思う。最高だね!もしこのアプローチで「地雷(罠)」になるようなことがあれば教えてくれないかな?ぜひ自分でも試してみたい[0]から、手戻りを防ぐためのアドバイスがあれば本当に助かるよ!
[0] パブリックドメインかOSSライセンスのモジュールとして、スタンドアロンライブラリにする適当な方法があればね。
ブラウザのオートフィルはどうやって処理してるの?ラベルが標準的じゃないフォームに入力しなきゃいけない時はどうするんだろう。自分は1Passwordでその機能に頼り切りだから気になって。
すごくいいね!気に入ったよ。
Nostrリレーを使ってパスワードのバックアップを取るのはどうだろう?自分もそのアイデアで「Tablinum」というライブラリを作ったんだ。ローカルファーストだけど、NIP-59のギフトラップイベントを使ってNostrリレーにバックアップする仕組みさ。
暗号資産はMoneroしか受け付けてないの?
他のローカルファーストなパスワードマネージャーと比べて、何が強みなの?例えば、KeePassをベースにしたAndroid/iOSアプリは結構あるけど(自分はAndroidで https://www.keepassdx.com (https://www.keepassdx.com) を使ってるよ)。
これは本当にすごい。ずっとこういうの、特にローカルファーストでP2P同期できるものを探していたんだ。なぜ直接的なP2P(ダメなリレーをフォールバックに持つirohなど)ではなくNostrを選んだの?