blog: TLSNotary plugins — permissions and safeguards - #59
Merged
Conversation
0xtsukino
force-pushed
the
blog/plugin-permissions
branch
from
May 13, 2026 07:49
1188697 to
035f389
Compare
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
force-pushed
the
blog/plugin-permissions
branch
from
May 13, 2026 07:50
035f389 to
b43d466
Compare
heeckhau
self-requested a review
May 18, 2026 09:38
heeckhau
requested changes
May 18, 2026
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
force-pushed
the
blog/plugin-permissions
branch
from
June 9, 2026 10:08
3f57e60 to
17df2af
Compare
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
force-pushed
the
blog/plugin-permissions
branch
from
June 9, 2026 12:20
17df2af to
9a23728
Compare
- 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
self-requested a review
June 10, 2026 14:21
heeckhau
approved these changes
Jun 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
webRequest,<all_urls>, andextraHeaders, including the dual role of<all_urls>for both webRequest and content script injectionpermissionValidator.tsenforcement, and the approval UIApprovalMode(all-session/manual/rejected) with screenshotstsukinotoauthors.ymlNotes
🤖 Generated with Claude Code