Code Verifyは、もともとはWhatsAppユーザがブラウザに提供されるWhatsAppコードの真正性を検証するために作成されたものである。これは、Chrome、Edge、Firefoxに対する新たなオープンソース拡張機能であり、他のWebサービスに対しても同レベルのセキュリティを提供できるとMetaは述べている。
Code Verifyでは、自動のサードパーティコードの検証を使って、特にこのスケールで、新しい分野を開拓しています。より多くのサービスがオープンソースバージョンのCode Verifyを使って、サードパーティの検証済みのWebコードを使うことが新たな標準となることを願っています。
Code Verifyは、サブリソースの整合性の考えに基づいて構築されており、その考えは、個々のファイルレベルからWebページ全体まで提供される。サブリソースの整合性はW3C勧告であり、ブラウザに配信されているコンテンツが操作されていないことの保証を目的としている。TLS、HSTS、あるいは他のメカニズムによる安全なチャネルを使うことで、このリスクを軽減することを理解することが重要である。これは、コンテンツを提供するサーバが実際に期待されるものであることを保証することによって実現される。ただし、配信されたコンテンツが正当なソースサーバ上で侵害された場合には保護されない。
サブリソースの整合性のために、2つのHTML要素のscript
とlink
が拡張されている。また、期待されるリソースの暗号化ハッシュを送信するintegrity
属性が追加されている。例を以下に示す。
<script src="https://example.com/example-framework.js"
integrity="sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7"
crossorigin="anonymous"></script>
Code Verifyでは、WhatsAppライブラリなど、所定リソースの新しいバージョンごとに、その発行元が対応するハッシュを信頼できるサードパーティのソースと共有する必要がある。次に、Code Verify拡張機能は、特定の監査エンドポイントからそのハッシュをフェッチし、フェッチしたものと、受信したリソースからローカルで計算したものと比較する。WhatsAppの場合、Code VerifyはCloudFlareによって信頼できるサードパーティのソースとして機能する。全体的な情報の流れを下の画像に示す。
(画像提供:Meta)
Metaによると、拡張機能はデータ、メタデータ、ユーザデータをログに記録せず、暗号学的ハッシュ以外の情報をWhatsAppやCloudFlareと共有しない。