You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WebCrypt is a serverless Web App that integrates with [OnlyKey](https://crp.to/p/) and [keybase.io](https://keybase.io/) to provide PGP encryption everywhere on-the-go.
6
+
WebCrypt is a serverless Web App that integrates with [OnlyKey](https://onlykey.io) and [keybase.io](https://keybase.io/) to provide PGP encryption everywhere on-the-go.
7
7
8
-
Supports Google Chromeand Firefox!
8
+
Supports Firefox, Google Chrome, Brave, and Edge (new) browsers!
9
9
10
-
**Still in early development available for testing only.**
10
+
Supports macOS, Windows, Linux, Chrome OS, and Android!
11
11
12
-
[Try it out here!](https://apps.crp.to/encrypt-test)
12
+
[Try it out here!](https://apps.crp.to/encrypt)
13
13
14
14
## How it works
15
15
16
-
With Keybase user/key management is made easy and with OnlyKey private keys remain offline and protected. Private keys are not accessible to the browser or even the local computer. By using U2F as a secure communication channel the web application can send messages to OnlyKey that are decrypted and signed offline. This provides similar function to a token/smart card but no drivers or software required. All that is needed is a browser that supports U2F and an OnlyKey to send secure messages using Windows, Mac, Linux, Chromebook, and Android (with OnlyKey Android app [here](https://play.google.com/store/apps/details?id=to.crp.android.onlykeyu2f&hl=en_US)).
16
+
With Keybase user/key management is made easy and with OnlyKey private keys remain securely offline. Private keys are not accessible to the browser or even the local computer. By using FIDO2 as a secure communication channel the web application can send messages to OnlyKey that are decrypted and signed offline. This provides similar function to a token/smart card but no drivers or software required. All that is needed is a browser that supports FIDO2 and an OnlyKey to send secure messages and files.
17
+
18
+
{% include callout.html content="**Step 1. Find a Keybase User -** The first step in sending a secure message or file is to identify who to send it to. Browse to [https://apps.crp.to/search](https://apps.crp.to/search) to use our custom Keybase search tool to search Keybase users by:<br>
19
+
- Twitter, Github, Reddit, or Hackernews Usernames<br>
20
+
- Web domains<br>
21
+
- PGP fingerprint<br>
22
+
- Or Automatically search for best match" type="default" %}
23
+
24
+
{% include image.html file="user-search.jpg" %}
25
+
26
+
{% include callout.html content="**Step 2. Send a user encrypted message or file -** Click the link in the search results to send the selected user encrypted message/file. You can also browse to [https://apps.crp.to/encrypt](https://apps.crp.to/encrypt) to send a secure message or browse to [https://apps.crp.to/encrypt-file](https://apps.crp.to/encrypt-file) to send a secure file if you already know the recipient. To encrypt files for yourself just use your Keybase username as the recipient. " type="default" %}
27
+
28
+
{% include image.html file="webcrypt1.png" %}
29
+
30
+
{% include callout.html content="**Step 3. Receive an encrypted message or file -** To decrypt a message or file browse to [https://apps.crp.to/decrypt](https://apps.crp.to/decrypt) or [https://apps.crp.to/decrypt-file](https://apps.crp.to/decrypt-file). You can also create a unique link which allows anyone, with or without an OnlyKey to send you and encrypted file. This may be used in places such as an email signature to receive secure messages. The format is:
After configuring your OnlyKey following [these instructions](#generating-keys) you can browse to the [Webcrypt app](https://apps.crp.to/encrypt) to send secure messages.
45
+
46
+
- Enter a message to encrypt
47
+
{% include image.html file="encrypted-message.jpg" %}
48
+
49
+
- Enter the shown challenge code on the OnlyKey (i.e. 1,5,2)
50
+
{% include image.html file="encrypted-message2.jpg" %}
51
+
52
+
- Encrypted message shown, by clicking the button again it will be copied to clipboard
53
+
{% include image.html file="encrypted-message3.jpg" %}
54
+
{% include image.html file="encrypted-message4.jpg" %}
55
+
56
+
- Paste the message into any email or chat (Sending via Gmail shown)
57
+
{% include image.html file="encrypted-message5.jpg" %}
58
+
59
+
- When the recipient receives the message (email or chat) they can paste it into Webcrypt app to decrypt
60
+
{% include image.html file="encrypted-message6.jpg" %}
61
+
62
+
- Enter the shown challenge code on the OnlyKey (i.e. 2,2,1)
63
+
{% include image.html file="encrypted-message7.jpg" %}
64
+
65
+
- Decrypted message shown, if the sender signed the message you will see the sender's name (i.e. t) and their key ID.
66
+
{% include image.html file="encrypted-message8.jpg" %}
67
+
68
+
- By clicking the button again the message will be copied to clipboard
69
+
{% include image.html file="encrypted-message9.jpg" %}
70
+
71
+
{% include note.html content="Messages sent via Webcrypt are never sent over the internet. The way it works is the necessary files are downloaded to your browser and all processing is done in your browser. Read more about [Webcrypt security here](https://docs.crp.to/webcrypt.html#security-goals)" %}
72
+
73
+
## Benefits
74
+
75
+
- This revolutionary approach makes PGP encryption easy and secure with OpenPGP keys securely stored on OnlyKey, not accessible to the app or to the browser. This is in contrast to for example PGP/GPG software, webmail (i.e. Protonmail), and smartphone apps.
76
+
- Physical user presence is required to process secure messages/files. This is in contrast to Smart Cards which only require a PIN code that can be captured and replayed without physical user presence.
77
+
- WebCrypt even allows Kebase user’s to receive secure messages and files from non-OnlyKey users. Anyone can use WebCrypt to send encrypted messages/files and can create a unique link to receive secure messages and files.
78
+
- With WebCrypt’s Keybase integration its easy to find Keybase users and send secure messages/files with the click of a button - https://apps.crp.to/search.
79
+
17
80
18
81
## Setup
19
82
20
83
**Before using this app you must follow these instructions to generate PGP keys and load them on OnlyKey:**
21
84
-[Generate keys](https://docs.crp.to/usersguide.html#generating-keys) using Keybase
If using Firefox, U2F must be enabled by completing the following steps in your browser:
25
-
26
-
- Type about:config into the Firefox browser.
27
-
- Search for “u2f”.
28
-
- Double click on security.webauth.u2f to enable U2F support.
29
-
30
87
## Sending secure messages
31
88
32
89
To create encrypted PGP message just:
33
-
- Browse to https://apps.crp.to/encrypt-test
90
+
- Browse to https://apps.crp.to/encrypt
34
91
- Enter the recipient's Keybase ID in the first box
35
92
- Enter your Keybase ID (for the key you loaded onto OnlyKey) in the second box
36
93
- Enter your secure message in the third box
@@ -46,7 +103,7 @@ The encrypted message will be displayed and you can paste it into an email, IM,
46
103
## Receiving secure messages
47
104
48
105
To decrypt PGP message just:
49
-
- Browse to https://apps.crp.to/decrypt-test
106
+
- Browse to https://apps.crp.to/decrypt
50
107
- Enter your Keybase ID (for the key you loaded onto OnlyKey) in the first box
51
108
- Paste your encrypted PGP message in the second box
52
109
- Click "Decrypt and Verify"
@@ -58,7 +115,9 @@ The decrypted message will be displayed. Read it and then close the browser tab
58
115
59
116
## Security Goals
60
117
61
-
**Empower the people**: Give people the ability to securely send and receive messages using any computer with no complicated software/drivers required and no worrying about compromise of user's private identity.
118
+
**Make PGP easy**: Traditional PGP makes journalists angry, we think you shouldn't have to be technologically savvy to use PGP so we built WebCrypt.
119
+
120
+
**Empower the people**: Give people the ability to securely send and receive messages using any computer or Android device with no complicated software/drivers required and no worrying about compromise of user's private identity.
62
121
63
122
**Serverless**: All processing done via javascript in users own browser locally (no server to hack).
64
123
@@ -70,17 +129,17 @@ The decrypted message will be displayed. Read it and then close the browser tab
70
129
71
130
**Open source & audit-able** - What you see is what you get this repository is a Github page hosted directly on Github.
72
131
73
-
Please, feel free to commit fixes!
132
+
We are always working to make WebCrypt better, pull requests welcome!
74
133
75
134
## Protocol
76
135
77
-
The protocol outlined below utilizes existing communication channel via U2F. More information is available on U2F protocol [here](https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html).
136
+
The protocol outlined below utilizes existing communication channel via FIDO2.
78
137
79
138
### Communication Channel Overview (Advanced)
80
139
81
-
U2F utilizes registration and authentication message types. To send data to the OnlyKey, messages are encoded in the Key Handle of the authentication message type. To receive data back, messages are encoded in the signature of the authentication response. This method provides a reliable form of communication that is supported anywhere U2F is supported including Chrome, Chromium, Opera, and Firefox (Quantum or w/plugin).
140
+
FIDO2 utilizes registration and authentication message types. To send data to the OnlyKey, messages are encoded in the Key Handle of the authentication message type. To receive data back, messages are encoded in the signature of the authentication response. This method provides a reliable form of communication that is supported anywhere U2F is supported including Firefox, Chrome, Chromium, Opera, Brave, and Edge (new).
82
141
83
-
The outline below visualizes the use of onlykey-api.js and u2f-api.js to communicate via browser to OnlyKey over USB.
142
+
The outline below visualizes the use of onlykey-api.js and FIDO2 to communicate via browser to OnlyKey over USB.
84
143
85
144
```
86
145
┌──────────────┐ ┌─────────┐
@@ -91,23 +150,20 @@ INITIALIZE - SET TIME, SET APP PUBLIC NaCl KEY, GET ONLYKEY PUBLIC NaCl KEY, GET
91
150
92
151
1. Authentication Request Message:
93
152
94
-
Encode a *packet in U2F Key Handle field that contains current epoch time and application public key.
Once the challenge code is entered correctly, the decryption / signing is completed and the result is encrypted via AES-GCM and stored on the OnlyKey (After 25 seconds unretrieved messages are automatically wiped from OnlyKey).
0 commit comments