-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #106 from rodolfomiranda/readme1
Add documentation
- Loading branch information
Showing
5 changed files
with
51 additions
and
5 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,34 @@ | ||
# Signify Browser Extension | ||
# Signify Browser Extension | ||
This browser extension was initially developed as part of Provenant's [Bounty PB311.1](https://docs.google.com/document/d/1mq82RDRGfoOMCs8sR8Cuj_hMC5i1_aP7e6DVqp8o13g/edit?usp=sharing) | ||
|
||
This browser extension, initialy implemented for Chromium browsers, uses [sifnify-ts](https://github.com/weboftrust/signify-ts) to connect to a [KERIA](https://github.com/weboftrust/keria) agent and retrieve user AIDs and their associated keys and credentials. Those AIDs and credentials are use to signin into enabled websites. Once a signin is asociated with a website, it's stored in chrome store for future use. | ||
|
||
The primary goal of this extension is to provide a secure way to signin into websites without disclosing private keys to untrusted websites. Websites developers should adopt [polaris-web]() library to send messages to the extension requesting signed headers that are needed to authenticate in a backend service. Additionally to the signed headers, the website may request to provide a credential (ACDC). | ||
|
||
This browser extension adopts [Manifest V3](https://developer.chrome.com/docs/extensions/develop/migrate/what-is-mv3) to take advantage of the new security features and performance improvements. | ||
|
||
## Architecture | ||
The browser extension is composed of the following components: | ||
|
||
### Background | ||
The background script, knwon as service worker in Manifest v3, is responsible for handling messages received from the content script, popup, and external webpages that were alredy allowed to request signed headers from the extension. The background script is also responsible for handling the communication with the KERIA agent. | ||
|
||
### Popup | ||
It's the user interface of the browser extension. It can be accessed by clicking on the extension action icon in the browser toolbar. | ||
|
||
### Content Script | ||
The content script is injected in the active web page and is responsible for handling messages from the website, the background script and the popup. | ||
|
||
### Dialog | ||
The dialog is a html that is injected by the content script in the active web page. It's used to display messages to the user and request user interaction. | ||
|
||
## Security considerations | ||
The following rules are enforced by design to ensure the security of the extension: | ||
* The extension only sends signed headers to the website if the user has previously create a signing asociation with that website. | ||
* The extension only sends signed headers to the website if the website is the active tab on the browser. | ||
* The passcode is temporarry stored in the extension and is zeroed out after a few minutes. | ||
* Messages from content script are allowed if the content script belongs to the active tab. | ||
* Direct messages from the website to the background script are only allowed for the active tab and if a signing asociation exists with the auto-singin flag enabled. | ||
* Request minumin permision in the Manifest. | ||
* All sesitive data is only accessed by the background script and popup, and never reaches the content script. | ||
* Never run external scripts in the extension (`eval()`). |
This file contains 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
This file contains 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
This file contains 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