
2026/05/22 7:49
今や私たちは自己主権型PKIを実現したのでしょうか?
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
既存のメッセージングセキュリティにおいて、Signal や iMessage などのプラットフォームでエンドツーエンド暗号化が導入されていても、システム全体の整合性がプラットフォームの誠実さに依存する状態であり、その原因となっているのは(例:Signal の安全番号の確認など)ユーザーがほとんど行わない手動による検証手順への過度な依存である。同様の依存関係は、メール(Google などの託管型プロバイダーによるデータアクセス)、DNSSEC(オプションの検証)、DANE(ブラウザでの実装なし)、および証明書透明性(6 つのオペレーターへの信頼)でも見られる。Keybase が Zoom に買収された後に閉鎖された経緯や、中央のエンティティーを信頼せずに公開名前を鍵にバインドすることができない一般的な困難さなど、信頼に依存するシステムの歴史的な失敗事例も明らかになっている。これら中央集権的な脆弱点および託管リスクに対応するため、「grace@key」という新しいソリューションは、オンチェーンでアンカーされた非対等(trustless)なアイデンティティシステムへの移行を提案している。これは Spaces プロトコルを採用し、Bitcoin で動力付けされた Merkle trie を用いて、単一の権限者によって停止・取り消すことができない永続的な公開鍵の解決を実現する。Veritas デスクトップアプリでは、Bitcoin のヘッダーを用いて状態を検証し、32 バイトの信頼ハッシュを計算することで、鍵の署名に対して私的当局への依存を排除している。最終的には、RISC Zero zkVM を使用してプロトコルの全体状態をミリ秒単位で検証し、大規模なデータセットの同期や手動による鍵管理を必要としないゼロ知識証明(約 250 KB)を生成する。鍵回転手数料の課題、鍵の喪失のリスク、人間アイデンティティと暗号学的ハンドルとのバインドに関する問題などには依然として課題が残るが、この進化は、託管型オペレーターから独立した永続的なデジタルアイデンティティ制御をユーザーに付与することを目的としている。
本文
Signal からの脱却:「キーを持たない CA」による新たな信頼構造
Signal や iMessage などのエンドツーエンド暗号化システムは、原理的には安全性を保証していますが、現実的な運用においてはユーザーが鍵の整合性を確認することを怠りがちです。この課題を解決し、従来の認証局(CA)や第三者への依存を排除する新しいアプローチについて解説します。
🔍 既存システムの根本的問題
現在の暗号化システムは、プラットフォーム運営者の誠実さやセキュリティコードの手動確認に依存しています。しかし、これは信頼の問題を本質的に解決していません。
- 手動確認の限界
- Signal などはセキュリティコードを表示しますが、原理的にはサーバーが誤ったキーを渡す可能性があるため、初回対話での確認推奨されています。
- iMessage(2023 年末導入)、WhatsApp、Threema、Matrix、PGP などのシステムも同様の仕組みを導入していますが、実際にはユーザー側で検証が行われないケースが多いです。
- 信頼の依存先
- 結局のところ、暗号化の安全性はプラットフォーム運営者の誠実さに依存することになります。
- 当初より強力な仕組みを目指していた脆弱性に対し、やがて近い形で直面するという皮肉な結末となっています。
この「ギャップ(信頼と実装の断絶)」が顕在化する場面
公開される名前と秘密キーを結びつける必要があるあらゆる場所で発生します。
- メールアドレスの問題
- メールアドレスは公開可能ですが、プロバイダから貸与されたものであり、アカウント停止やデータ引き渡し(例:Google vs ICE)、配信拒否の権限はプロバイダにあります。
- 「Email as ID」という考え方は標準規格ではなく、管理上の依存関係に過ぎません。
- ストールホスティング(Stolite Hosting)の限界
- Gmail などは現在、DMARC アライメントを満たさない送信を直接拒否するようになりました。
- 主要なプロバイダによるドメインの正当性判断という外部依存が残ります。
- ユーザー名(ハンドル)の問題
- Twitter, GitHub, Bluesky など各プラットフォーム固有のスライスであり、他プラットフォームとの統一検証手段が不足しています。
- Keybase は署名宣言を集約する仕組みを構築しましたが、結局はキーの指紋への依存から脱却できておらず、Keybase の買収と終了に伴いシステムは朽ち果てています。
- PKI(公開鍵インフラ)の脆弱性
- 現在の PKI は「看取り(Trusted Third Party)」の塔そのものです。
- DNSSEC 検証義務化が未完了、BGP ルートリークにより誤った証明書が発行されるリスクがあり、CA/Browser フォーラムなどの対策も単なる回避策です。
- 証明書透明性(CT)は事後検出には有効ですが、オペレーター全体の共謀を信頼する必要があるため自己主権とは言えません。
🚀 実際に機能する解決策:grace@key
を例に
grace@key独自の鍵システム「Spaces」を採用し、特定の第三者を介さず、「
grace@key」という名前のどの鍵にバインドされているかをオンチェーンで合意・確認します。
動作手順
以下のコマンドを実行して環境を構築します。
$ cargo install --git https://github.com/spacesprotocol/beam $ beam grace@key AGE age1k2spr6duuu07857wqg0922hd7j0rlnjjax4jvvk50yyhcstn6swspyzh4t
これで完了です。残りの部分について仕組みを解説します。
仕組みの概要
- 共有ログ: 存在する名前とその関連鍵を記録した、脆弱性のない追跡専用ログを使用します。
- Bitcoin チェーンの活用: ログのルートは Bitcoin のチェーンコミットメントされており、書き換え困難なタイムスタンプサービスとして利用されます(Web PKI の CT ログと同役割)。
- プルーフ・オブ・ワーク (PoW): オペレーターの信頼ではなく、PoW による検証が基盤となります。
- オンチェーン/オフチェーン分離:
- オンチェーン部分: 名前が誰に属するかを証明(Wallet 手数料なし)。
- オフチェーン部分: 名前に指す鍵を示す(Certrelay を介して配布)。
- DNS は一切使用されません。
⚖️ すべての CA の CA:信頼の根拠とは何か?
従来の PKI は「誰かが保持する秘密鍵」に依存しますが、Spaces は異なるアプローチを取ります。
Spaces のアプローチ
- 32 バイトのハッシュ: 全体のプロトコル状態を要約したハッシュで、誰でも計算・検証可能であり、権威による祝福はありません。
- Veritas アプリ: Bitcoin ヘッダーチェーンを検証し、信頼 ID を生成します(完全なノードではないが、約 2 週間有効)。
- ゼロ知識証明書 (ZK-Cert):
- Veritas が行った検証結果を証明する簡潔なプルーフ(約 250 KB)。
- RISC Zero zkVM を使用し、zk-STARKとして生成。
- クライアントは一度ダウンロードすればミリ秒で検証可能で、定期的な同期や署名鍵の所持を不要にします。
「キーを持たない CA」
- これまで 40 年間続いていた「信頼=誰かが保持する鍵」という設計から脱却しました。
- **「最初に秘密が存在しない」**ため、従来の意味での侵害は不可能です。
- 信頼の根拠が「署名による承認」から「計算された値」へとシフトしています。
⚠️ いくつかの考慮事項と課題
完全な解決策ではなく、改善のための新たな形状を提供します。
- 鍵の回転と喪失
- ハンドルは特定の鍵にバインドされているため、回転にはオンチェーン手数料が必要です(数百回の回転が可能)。
- 鍵が失われた際の回復策としては分散型鍵保管やタイムロックがありますが、完全な満足度は達していません。
- PoW vs 見証ログ (Witness Logs)
- 見証ログはシンプルですが、誘惑されやすく、チェーンの再組織化(Reorg)が安価に行えないデメリットがあります。
- Bitcoin の PoW が経済的に安全なのは事実ですが、アイデンティティ層の文脈では「退屈すぎる」というトレードオフが存在します。
- それでも信頼が必要である
- 「署名鍵がない」は「信頼がない」を意味しません。再構成された信頼です。
- Bitcoin の PoW
- Veritas バイナリが正しいこと
- プロトコル規則の妥当性
- これらはすべて監査可能ですが、ソフトウェアサプライチェーンの問題と同様に「誰かが悪意を持って実装を改ざんする」というリスクは残ります。
- 「署名鍵がない」は「信頼がない」を意味しません。再構成された信頼です。
- 発行の制限
- トップレベルスペース(例:
)はオークションで購入され、燃やされます(供給量制限)。@key - プレマイニング防止のため、良い名前は継続的にプールの一部となります。
- トップレベルスペース(例:
- 採用への壁
- 新しいアイデンティティシステムにおいて最も困難なのは、既存アプリが検証機能を埋め込むかどうかです。
- まだ友人にメッセージを送れる段階には至っていないのが現実です。
- アイデンティティの另一半(社会的側面)
- 「名前を鍵にバインドすること」は問題の半分だけです。
- 残りは回復、評判、社会的文脈の共有などの課題です。
が誰かを示しても、話し合う相手かどうかはシステムが教えてくれません。grace@key
結論
長年欠けていた「サーバーや CA を信頼せずに人間規模の名前を鍵にバインドする方法」の形状は十分に明確になりました。