Skip to content

blog: TLSNotary plugins — permissions and safeguards - #59

Merged
0xtsukino merged 8 commits into
masterfrom
blog/plugin-permissions
Jun 10, 2026
Merged

blog: TLSNotary plugins — permissions and safeguards#59
0xtsukino merged 8 commits into
masterfrom
blog/plugin-permissions

Conversation

@0xtsukino

Copy link
Copy Markdown
Contributor

Summary

  • New blog post: "TLSNotary Plugins: What They Can Access and How You Stay in Control"
  • Explains why the extension needs webRequest, <all_urls>, and extraHeaders, including the dual role of <all_urls> for both webRequest and content script injection
  • Walks through four safeguard layers: QuickJS sandbox, PluginConfig permission declarations, runtime permissionValidator.ts enforcement, and the approval UI
  • Covers handler-based selective disclosure (REVEAL / HASH per field)
  • Describes the new strict-mode ApprovalMode (all-session / manual / rejected) with screenshots
  • Also covers the mobile WebView equivalent (CookieManager, injected JS, User-Agent spoofing)
  • Adds tsukino to authors.yml

Notes

  • Images are hosted on GitHub user-attachments CDN (permanent URLs, already verified accessible)
  • Post is dated 2026-05-13

🤖 Generated with Claude Code

@0xtsukino
0xtsukino force-pushed the blog/plugin-permissions branch from 1188697 to 035f389 Compare May 13, 2026 07:49
New post explaining why the extension needs broad permissions
(webRequest, <all_urls>, extraHeaders), the four safeguard layers
(QuickJS sandbox, PluginConfig declarations, runtime validator,
approval UI), handler-based selective disclosure, and the new
strict-mode ApprovalMode feature.

Also adds tsukino to authors.yml.
@0xtsukino
0xtsukino force-pushed the blog/plugin-permissions branch from 035f389 to b43d466 Compare May 13, 2026 07:50
@heeckhau
heeckhau self-requested a review May 18, 2026 09:38

@heeckhau heeckhau left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the flow. Good work.

Comment thread blog/2026-06-10-plugin-permissions/index.md
Comment thread blog/2026-05-13-plugin-permissions/index.md Outdated
Comment thread blog/2026-06-10-plugin-permissions/index.md
Comment thread blog/2026-05-13-plugin-permissions/index.md Outdated
Comment thread blog/authors.yml Outdated
0xtsukino and others added 4 commits May 21, 2026 16:05
Co-authored-by: Hendrik Eeckhaut <hendrik@eeckhaut.org>
- Mark mobile section as under development (not yet officially released)
- Promote Selective Disclosure to Layer 5 (Four → Five Layers of Safeguards)
- Fix tsukino author URL/avatar to use 0xtsukino GitHub handle
Address PR review feedback that the "What the TLSNotary Browser
Extension Actually Does" section was too hard to parse and that a
diagram would carry the conceptual load better than prose.

- New ExtensionFlowDiagram component: a 9-step walkthrough where the
  five architectural actors (Sandbox / Managed window / Prover inside
  the extension umbrella, plus Server and Verifier outside) stay
  visible the whole time and the active boxes and arrows highlight per
  step. CSS module + [data-theme='dark'] so the same SVG/HTML renders
  in both Docusaurus themes; keyboard arrows and clickable step dots
  for navigation.
- Rewrite the intro section around three concrete use cases and the
  diagram, replacing the prose-only explanation.
- Embed the actual Chrome permission popup at the top of "The
  Permissions, One by One" so the abstract webRequest / <all_urls> /
  extraHeaders discussion has a concrete anchor.
- Correct the protocol description: the extension itself does not see
  TLS plaintext at any point. The Prover holds the connection to the
  server (raw TCP on mobile; via a WebSocket-to-TCP proxy in the
  browser) and the Verifier co-signs the TLS handshake under MPC
  without ever seeing the plaintext.
@0xtsukino
0xtsukino force-pushed the blog/plugin-permissions branch from 3f57e60 to 17df2af Compare June 9, 2026 10:08
heeckhau added 2 commits June 9, 2026 14:02
Distinguish plugin responsibilities from extension host/sandbox role,
reframe the Verifier as witnessing the whole TLS session under MPC
rather than co-signing, and tidy the flow diagram actor labels.
- Correct description metadata (five layers, not four)
- Remove storage permission reference (removed upstream in tlsn-extension#355)
- Clarify extraHeaders is a listener flag, not a manifest permission
- Standardize on 'proof' over 'attestation' in the flow diagram
- Rename intro section to reflect the plugin/extension split
- Add a user-facing 'Try It Yourself' CTA
@heeckhau
heeckhau force-pushed the blog/plugin-permissions branch from 17df2af to 9a23728 Compare June 9, 2026 12:20
- Rewrite approval section to match the extension: modes are chosen on
  the plugin-start approval screen (manual recommended), not set on the
  Options page; drop the nonexistent 'strict mode' term
- Host the two approval screenshots locally via Figure instead of
  GitHub user-attachments links
- Rename folder to the actual publish date (2026-06-10)
- Minor: manifest snippet formatting, US spelling
@heeckhau
heeckhau self-requested a review June 10, 2026 14:21
@0xtsukino
0xtsukino merged commit 207cc01 into master Jun 10, 2026
1 check passed
@0xtsukino
0xtsukino deleted the blog/plugin-permissions branch June 10, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants