A project of Freedom of the Press Foundation

freedom.press

The problem

Websites can change their code at any time, and HTTPS alone does not guarantee that every user receives the same, intended web application. WEBCAT addresses this by enabling signed delivery and transparency log–backed distribution of participating web applications, allowing end users to verify exactly what they received from a website.

How WEBCAT works

  1. Decentralized infrastructure records the trust configuration of participating domains.
  2. Transparency logs record signed manifests describing web applications, making changes publicly auditable and tamper-evident.
  3. The WEBCAT browser extension verifies locally: (a) that the manifest served by a domain is valid and anchored in its declared root of trust and (b) that the web application and its execution environment match the manifest.

Architecture

All the WEBCAT components are open source. Specification in progress.

How the WEBCAT components connect. The Developer CLI signs the app manifest, records the signature in the transparency logs (Rekor or Sigsum), and submits the site's enrollment through the enrollment frontend. The website serves the app together with its signed manifest. The enrollment chain, composed of 3 nodes where 2 must agree on every change, publishes a signed daily preload list of enrolled sites. The browser extension loads that list and uses its verification libraries to check every file the website serves. The Monitor API collects relevant log entries and the enrollment history; the Explorer and the Auditor CLI use it so auditors and developers can watch for unexpected changes.

Developer CLI

Builds and signs the manifest

πŸ“œ Transparency logs

Rekor v1

Rekor v2

Sigsum #1

Sigsum #2

Your website

Serves the app and its signed manifest

Enrollment frontend

Admins enroll their domain

⛓️ Enrollment chain

2 of 3 nodes must agree on every change

Node 1

Node 2

Node 3

Preload list

Signed daily list of enrolled sites

Browser extension

Verifies every file it loads

πŸ“¦ Verification libraries

sigstore-browser

Verifies Rekor entries

sigsum-ts

Verifies Sigsum proofs

cometbft-ts

Verifies chain signatures

ics23-ts

Verifies list inclusion

πŸ”­ Monitoring and auditing

Monitor API

Indexes every log entry

Explorer

Browse enrolled sites

Auditor CLI

Audits what was signed

Auditor or developer

Watches for unexpected changes

For developers and website administrators

If you want to enroll your website or adapt your web application to use WEBCAT, these resources will help you get started.

Research

  1. G. Berra. WEBCAT: Web-based Code Assurance and Transparency. Master's thesis, IACR ePrint 2025/797, 2025.
  2. G. Berra. A decentralized integrity and transparency model for web applications. Talk, Transparency.dev Summit, 2025.
  3. E. Alkotob, G. Berra, B. Beurdouche, R. Hansen, D. Huigens, D. Jackson, C. Myers, M. Rosenberg. Improving the Trustworthiness of Javascript on the Web. Talk, Real World Crypto, 2026.
  4. S. Schwarz, F. Bauckholt, L. Trampert. Trust on Reload: Securing Browser-Based End-to-End Encryption. ACM Web Conference, 2026.