https://github.com/encryption4all/postguard-tb-addon
PostGuard addon for Thunderbird
https://github.com/encryption4all/postguard-tb-addon
easy-to-use email encryption ibe
Last synced: 4 months ago
JSON representation
PostGuard addon for Thunderbird
- Host: GitHub
- URL: https://github.com/encryption4all/postguard-tb-addon
- Owner: encryption4all
- License: mit
- Created: 2021-03-02T13:35:53.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-12-08T10:42:23.000Z (over 2 years ago)
- Last Synced: 2024-04-20T08:02:05.041Z (about 2 years ago)
- Topics: easy-to-use, email, encryption, ibe
- Language: TypeScript
- Homepage:
- Size: 1.26 MB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# PostGuard addon for Thunderbird
The PostGuard addon utilizes E2E identity-based encryption to secure
e-mails. This allows for easy-to-use encryption without the burden of key
management.
Anyone can encrypt without prior setup using this system. For decryption, a
user requests a decryption key from trusted third party. To do so, the user
must authenticate using [Yivi](https://yivi.app/), a privacy-friendly
decentralized identity platform based on the Idemix protocol. Any combination of
attributes in the Yivi ecosystem can be used to encrypt e-mails, which allows for
detailed access control over the e-mail's content.
Examples include:
- Sending e-mails to health care professionals, using their professional registration number.
- Sending e-mails to people that can prove that they have a certain role within an organisation.
- Sending e-mails to people that can prove that they are over 18.
- Sending e-mails to people that can prove that they live within a country, city, postal code or street.
- Or any combination of the previous examples.
For more information, see [our website](https://postguard.eu/) and [our Github
organisation](https://github.com/encryption4all/postguard).
## Prerequisites
Node and a package manager like `yarn`, or alternatively `npm`, are required to
build the addon. Building the addon was tested on:
- node `v17.9.0`,
- yarn `v1.22.18`.
## Building
Install the dependencies and build the extension using:
```
yarn
yarn build
```
## WebAssembly
Postguard's [cryptographic
core](https://github.com/encryption4all/irmaseal/tree/main/irmaseal-core) is
implemented in Rust, which is compiled down to WebAssembly in
[postguard-wasm](https://github.com/encryption4all/postguard/tree/main/pg-wasm)
using `wasm-pack`. For this purpose, we require a `script-source 'unsafe-eval'`
directive in the Content Security Policy (CSP). Hopefully, this can soon be
replaced with `unsafe-wasm-eval` in a newer version of Firefox/Thunderbird.
## Experiments
The addon currently uses four experiments:
- the `pg4tb` experiment, which has a temporary file API and an experimental way to display messages.
- the `switchbar` experiment, which is a modification of the notificationbar API that implements a switchable toolbar inside the compose window. This experiment uses `innerHTML` to adjust the bar. This can probably be avoided, but the input is not user input, rather developer input. For now, no plans are made to publish the experiment, since it is tailored specific to our UX needs.
- the [notificationbar API](https://github.com/jobisoft/notificationbar-API) to show warning/error notifications.
## Self-distribution & updates
To self-distribute (and update the addon) make sure that the following is present in the manifest:
```json
"browser_specific_settings": {
"gecko": {
"update_url": "/updates.json"
}
}
```
At this URL a file (see, `dist/updates.json`) should be hosted. This file
contains updates consisting of a version, a download URL for this specific
version and optionally, version restrictions.
```json
{
"addons": {
"pg4tb@e4a.org": {
"updates": [
{
"version": "0.1",
"update_link": "/postguard-tb-addon-0.1.xpi"
}
]
}
}
}
```
A new version can be prepared for auto-updating by bumping the version in the
manifest and providing an extra `update` entry in `updates.json`. Make sure
that both files are publicly available at the URLs mentioned above.
## Funding
PostGuard is being developed by a multidisciplinary (cyber security, UX) team from
[iHub](https://ihub.ru.nl/) at Radboud University, in the Netherlands, funded
by NWO.