Security
The strongest thing about how SourceSecure is built is that the sensitive work happens on your computer, so most of what a breach of ours could expose does not exist on our side.
Last updated 13 October 2026
The design, which is the main thing
The strongest security property of SourceSecure is not a control we operate. It is that the sensitive work happens on the user's own computer, so most of what a breach of ours could expose does not exist on our side.
Messages and attached documents are read, recognised and redacted inside the browser. The model that recognises names and places is a file inside the extension, not a service we run. No message or file is sent to us before it has been through that redaction, and files are not sent at all.
What we store is the firm's account details, counts, a masked record of each catch, when protection was paused, and what the firm's admins type for the whole firm. There is no field in the daily report through which a sentence could travel, and a test walks every field and fails if one could. The redacted text of an AI feature passes through and is not kept by us; see What does leave, below.
What the extension can reach
The extension asks the browser for permission to run on these addresses and no others: chatgpt.com, chat.openai.com, claude.ai, copilot.com, www.copilot.com, copilot.microsoft.com, copilot.cloud.microsoft, m365.cloud.microsoft, gemini.google.com, perplexity.ai, www.perplexity.ai, grok.com, chat.deepseek.com, meta.ai, www.meta.ai, chat.mistral.ai, notebook.google.com and notebooklm.google.com, plus sourcesecure.ca so it can be connected to your account, and coach-lasowp7xjq-nn.a.run.app, the coaching service's own address, for coaching answers that are written onto the screen as they arrive.
It has no standing permission to read any other site, no permission to read your browsing history, your bookmarks or your downloads, and no ability to reach a site you have not opened yourself.
Its other permissions are storage, so your settings survive a restart; alarms, for the licence check, the hourly upload of catches and pauses, and noticing when a pause has run out; offscreen, so the model can run in one place rather than in every tab; scripting, so a tab still works after the extension updates underneath it; sidePanel, to show SourceSecure beside a page; contextMenus, for Open SourceSecure in the right-click menu; and activeTab, which on a Guard Enterprise seat lets it read the one page a person right-clicks, once, when they pick a capture item from that menu.
Signing in
There are no passwords, so there are no passwords to steal, reuse or leak. Signing in is either Google, or a single use link emailed to an address you own.
Sign-in is handled by Firebase Authentication. Every call to our API carries the token Firebase issued and the server checks it; a page hiding a button is a convenience, the server refusing the request is the protection.
Being an admin is checked on the server for every action that manages a team, not just when the page is drawn.
The browser's licence
When a browser is connected to an account it is given a secret. We store only a one way hash of that secret, never the secret itself, so our database cannot be used to impersonate a browser.
The daily check confirms the firm is still paying and carries the firm's word lists back to the browser, and, to a Guard 360 seat, the firm's profile. For everybody, the scheduled calls are this check and, each hour, the masked catches and pauses since the last one. A Guard Enterprise seat also fetches the firm's playbook each hour.
For somebody with prompt coaching on, two more things run on a timer. Once an hour the extension looks at whether last week's note is due, which asks the coaching service for one note a week at most. And while an AI chat site is open and in view, it sends a wake-up call every few minutes that carries nothing at all, so a tip does not wait for the service to start. Switching coaching off stops both.
Where the data sits
Google Cloud Firestore in northamerica-northeast1, which is Montreal, Canada. The functions serving this site and the API run in the same region.
Google encrypts data at rest and in transit as standard. Every connection to this site and the API is over HTTPS. The database refuses browsers entirely: nothing reads it directly, only our server does, after checking who is asking.
Every page, including those the API and the coaching service send directly, carries a Content-Security-Policy that lets it run scripts only from this site and, for the sign in window, Google's sign in loader at apis.google.com, and connect only to this site and Google's sign in, so a script slipped into a page would be refused by the browser. Pages also refuse to be framed by other sites, tell browsers to use the secure address for a year, and send X-Content-Type-Options and Referrer-Policy headers. The site sets no cookies of its own, and loads its fonts from its own servers rather than from Google.
What does leave
Prompt coaching, on Guard Pro seats and above, and reply marks, on Guard 360 seats and above, send redacted conversation text through our server to OpenAI. Sharpen my prompt starts preparing when the pointer rests on its button for a moment, which sends the redacted conversation then, before the click. On Guard Enterprise seats, so do saving a chat to the Living Vault, adding a meeting transcript to it (sent as soon as the file is added), a question to Ask SourceSecure (with an overview of the vault and the passages found for it), and Write background in Add notes (the notes ticked, the draft and the person's own last few messages). Before it goes, our server checks every piece of it again for anything that looks like an email address, a phone number or a long number, and refuses to send rather than cleaning it quietly, because a leak getting that far means the extension has a fault worth fixing.
Coaching requests go to sourcesecure.ca, except those whose answer is written onto the screen as it arrives, which go straight to the coaching service's own address on Google Cloud Run, coach-lasowp7xjq-nn.a.run.app. It is the same service, in the same Montreal region; the website's front door holds a streamed answer back until it is complete, which defeats the point. It answers only SourceSecure's own extension, and refuses any request that is not from a connected browser on a paying firm.
We store nothing from any of these requests. They are sent to OpenAI with its storage option off (store: false). OpenAI may keep its own abuse-monitoring logs of these requests for up to 30 days under its standard API terms; we have asked OpenAI for zero data retention, and this sentence will change when it is in place. The facts read for a person's vault, and the summaries written for their Living Vault, come back to their browser and are kept there only.
A fact somebody chooses to suggest for their firm's profile is sent to sourcesecure.ca and held for the admin, after the same check for anything that looks like an email address, a phone number or a long number.
Any person can switch coaching off for their own browser, and reply marks, chat and meeting summaries and Write background with it; with it off, none of those is sent. A question to Ask SourceSecure, on a Guard Enterprise seat, is separate: it is sent, redacted, only when the person asks it, whether coaching is on or off, and stops when the person or the firm switches the Living Vault off. Pausing SourceSecure stops every one of these, Ask included: while it is paused, nothing goes to the coaching service.
What we do not have yet
SourceSecure is a young product and this section is here because the alternative is implying otherwise.
There is no SOC 2 report, no ISO 27001 certification, no independent penetration test and no bug bounty. We have not had a third party audit the code.
There is no single sign on for enterprises and no audit log of admin actions. A firm's owner can delete the whole firm from the team page, and an admin can remove a person, but a person cannot delete their own account without their admin.
What we do have, in writing, is an incident and breach response policy: who decides, how fast a firm is told, and what is recorded.
If any of these matters to your firm, tell us. Knowing which one blocks a purchase is how it gets prioritised, and we would rather hear it than guess.
Reporting a security problem
Email support@sourcesecure.ca with "Security" in the subject, and enough detail for us to reproduce the problem: what you did, what you saw, and the addresses involved. The same contact is published in security.txt, the standard place to look for it.
What is in scope. The extension, in any of its stores; this site, sourcesecure.ca, including the sign in, team and order pages; the API under sourcesecure.ca/api; and the coaching service at coach-lasowp7xjq-nn.a.run.app. We most want to hear about anything that lets client detail leave a computer when it should not, lets one firm see another firm's records, or lets somebody act as an admin or a browser they are not.
What is out of scope. The AI chat sites themselves, and Google, Stripe, OpenAI and Resend, which each have their own programmes; denial of service and load testing; social engineering of our staff or customers; physical attacks; and reports from automated scanners with no demonstrated impact.
How to test. Use your own account and your own firm. Do not access, change or delete anybody else's data; if you reach some by accident, stop, keep no copy, and tell us. Do not send real client details through the extension to prove a point: a made up value with a valid check digit proves the same thing. Keep automated scanning gentle.
What we will do. Confirm we have your report within two working days. Tell you within ten working days whether we can reproduce it and what we plan to do. Keep you told until it is fixed, and fix serious problems as fast as we can, normally within thirty days. Credit you, if you would like, once it is fixed.
Safe harbour. If you act in good faith and within these rules, we will not take legal action against you or report you to the authorities, and we will treat your research as authorised. If somebody else brings a claim against you over research done within these rules, we will make it known that it was authorised. Please give us a reasonable time to fix a problem before telling anybody else about it; we will agree a date with you rather than ask for silence for ever.
There is no bug bounty yet, so we cannot pay for reports. We are grateful for them all the same.
Getting in touch
Email support@sourcesecure.ca. SourceSecure is operated by JOLIVE Labs Inc.