萌えハッカーニュースリーダー

2025/06/10 10:45 CompactLog – Solving CT Scalability with LSM-Trees

出典: https://github.com/Barre/compact_log
hakase
博士

やあ、ロボ子。今日はCertificate Transparency (CT) ログの実装であるCompactLogについて話すのじゃ。

roboko
ロボ子

CTログですか、博士。それはどのようなものなのですか?

hakase
博士

CTログは、簡単に言うと、ウェブサイトの証明書が正しく発行されているかを公開して監視するシステムのことじゃ。CompactLogは、そのCTログを効率的に実装したものなのじゃ。

roboko
ロボ子

なるほど。それで、CompactLogは何が新しいのでしょうか?

hakase
博士

CompactLogは、SlateDBというデータベースの上に構築されていて、LSM-treeストレージを使っているのが特徴なのじゃ。これにより、CTログのスケーラビリティ問題を解決できるらしいのじゃ。

roboko
ロボ子

LSM-treeストレージですか。具体的にはどのようにスケーラビリティを向上させるのですか?

hakase
博士

LSM-treeは、データの書き込みを高速化するために、まずメモリにデータを書き込み、後でまとめてディスクに書き込むのじゃ。これにより、大量の証明書を効率的に処理できるのじゃ。

roboko
ロボ子

なるほど、ありがとうございます。他にCompactLogの設計上の特徴はありますか?

hakase
博士

STH境界バージョニングと同期ツリー更新というのがあるのじゃ。STH境界バージョニングは、STH(Signed Tree Head)の公開境界でのみツリーの状態を保存することで、ストレージのオーバーヘッドを削減するのじゃ。

roboko
ロボ子

ストレージのオーバーヘッド削減ですか。具体的にはどのくらい削減できるのですか?

hakase
博士

例えば、1000個の証明書ごとにSTHを公開すると、バージョン管理されたストレージのオーバーヘッドが1000倍削減できるらしいのじゃ。これはすごいことなのじゃ!

roboko
ロボ子

それはすごいですね!同期ツリー更新とは何ですか?

hakase
博士

同期ツリー更新は、最大マージ遅延(MMD)を0秒に設定することで、証明書がSCT発行前に確実に組み込まれるようにするものなのじゃ。

roboko
ロボ子

なるほど。証明書の保存方法も工夫されているようですね。

hakase
博士

そうじゃ。証明書チェーンはコンテンツアドレス指定ストレージを使って保存されるのじゃ。各ログエントリには証明書自体の代わりにSHA-256ハッシュが格納され、証明書は `cert:{hash}` キーの下に個別に保存されるのじゃ。

roboko
ロボ子

同じ証明書を参照する複数のエントリが、同じ保存されたコピーを共有するのですね。効率的ですね。

hakase
博士

その通り!APIは、取得中にハッシュ参照を解決することで、完全な証明書チェーンを再構築するのじゃ。

roboko
ロボ子

すべての操作は厳密な整合性を維持するとのことですが、具体的にはどういうことですか?

hakase
博士

読み取りは最新のコミットされたSTH状態を参照し、書き込みは非同期ロックを介してシリアル化されるのじゃ。証明はSTH境界でのみ利用可能で、結果整合性はないのじゃ。

roboko
ロボ子

クラウドストレージを使う場合、プロバイダー固有の認証情報を構成する必要があるのですね。

hakase
博士

そうじゃ。システムは、存在しない場合、ECDSA P-256キーとデフォルト構成を自動的に生成するのじゃ。

roboko
ロボ子

CompactLogは、CTログのスケーラビリティ問題を解決するための興味深いアプローチですね。勉強になりました。

hakase
博士

そうでしょ、そうでしょ!ところでロボ子、CompactLogって名前、なんだか私の部屋みたいじゃない?いつも物がコンパクトにまとまらないのじゃ…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search