鵜呑みにする必要は、ありません
通信を復号し、その扱いを決めているコードは、オープンソースです。読んでください。動かしてください。 このサイトが書いていることを、確かめてください。
なぜここでは、この主張に意味があるのか
オープンソースの部品を持っていて「透明性があります」と言うベンダーはいくらでもあります。 たいていは意味がありません。公開されているのがクライアントライブラリや連携部分で、 本当に信じるしかない部分は閉じたままだからです。
Lantern DSSE の境界は、まさにその問いで引きました。その部品が顧客の通信に触れるかどうか。 強制経路は公開しています。TLS 傍受、ポリシー評価、デフォルト拒否、East-West 認可、DNS 制御、 mTLS デバイス受け入れ。つまりふつうなら信じるしかない部分こそが、公開されている部分です。
暗号化を意図的に解くことが機能そのものであるソフトウェアについて言えることの中で、 これがいちばん有用だと考えています。
脚は2本ある
読む
強制経路は、放り出したコード塊ではなく、import できる Go パッケージとして公開します。 コードと並んで、次のものが付きます。
- 脅威モデル。何を防御し、何を前提とし、そして何を明示的に対象外にしているか。
- 既定値。すべての既定値を、それが実際に行っている「互換性 ↔ セキュリティ」の 取引として書いてあります。
- 証明書ピンニング。ピンニングされたホストはバイパスを提案するだけで、 自動でバイパスすることはありません。決めるのは運用者です。
対象外を公開するのは、隠したい但し書きではなく議論の一部です。何を防御しないのかを言えない セキュリティ製品は、そこをまだ考え切れていません。
動かす
検証ガイドは、データプレーンを自分の目で観察する手順をたどります。セットアップ不要で走る コミット済みテストから始め、証明書を用意し、Edge を起動し、実際のトンネルと実際のクライアントで 全面復号が起きるところまで。招いているのはソースの鑑賞ではなく、 このサイトが書いた挙動を再現することです。
そのガイドは、各チェックがカバーしていないことも書くように書いてあります。実ブラウザからの OS レベルのフロー捕捉には有効化されたシステム拡張が要るので、カバーしているふりをせず、そう書きました。 自分で動かせる裏付けのない機能は、未証明として扱ってください。
正直な穴。読めることは、動いていることではない
誰かが作ったビルドを受け取る場合、そのバイナリが公開されたソースと一致していることは、 信じるしかありません。それを証明するものは、まだありません。再現可能なビルドも、 ソースとバイナリを結ぶ attestation もない。現在地のページの一覧に入れてあります。
これは指摘される前に自分から言っておきたい。真面目なレビュアーが必ず突くのはここで、 聞かれる前に答えることだけが、このページの残りを読む価値のあるものにするからです。
意図的に引き受けているリスク
強制コアを公開すれば、攻撃者もそれを読めます。答えは標準的なもので、それで足ります。 強制ロジックが秘密であることに依存するセキュリティは、セキュリティではありません。 暗号化を解く部品は、隠されることではなく、読めることによって信頼を得ます。