MLS (Message Layer Security)
Message Layer Security (MLS) は、end-to-end encrypted group messagingのためのIETFプロトコルです。時間とともにメンバー構成が変わるグループに対して、forward secrecyとpost-compromise securityを提供します。
仕組み
MLSは、TreeKEMと呼ばれるツリーベースの鍵合意構造を使います。
- Key Packages: 各参加者がidentityと暗号鍵を含むkey packageを公開する
- Group State: ratchet treeがグループの暗号状態を維持する
- Commits: 参加、離脱、鍵ローテーションのたびにメンバーがtreeを更新する
- Message Encryption: shared group secretから導出した鍵でcontentを暗号化する
重要性
MLSは、pairwise encryptionではうまく扱えない問題を解きます。メンバーが非同期に参加、離脱、鍵ローテーションする状況でも、グループメンバーシップと暗号状態を一貫させられます。
実用上の肝はtree構造です。更新のたびに全参加者が全員とpairwiseで再交渉する必要がないため、場当たり的なグループ鍵方式よりはるかに拡張しやすくなります。
標準化
- RFC 9420 (2023年7月): コアMLSプロトコル仕様
- RFC 9750 (2025年4月): システム統合のためのMLSアーキテクチャ
Nostrでの採用
複数のNostrアプリケーションが、セキュアなグループメッセージングのためにMLSを使っています。
- KeyChat: モバイルとデスクトップ向けのMLSベース暗号化メッセージングアプリ
- White Noise: Marmot protocol統合と組み合わせたMLSベースのprivate messaging
- Marmot Protocol: MLSベースのgroup encryptionを提供するNostr拡張
MLSは、特にメンバー変動が多い場合、NIP-04やNIP-44単独より強いグループセキュリティ保証を提供します。
トレードオフ
MLS自体は完全なmessaging productではありません。アプリケーション側で、identity、transport、spam対策、保存、そして競合処理を補う必要があります。
だからこそ、MarmotのようなNostrプロジェクトはMLSの上に追加ルールを重ねます。暗号方式は標準化されていても、その周辺のアプリケーションプロトコルは相互運用性にとって重要です。
主要ソース:
言及箇所:
関連項目: