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
Copy file name to clipboardExpand all lines: README.md
+27-27Lines changed: 27 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# wolf Key Manager
1
+
# wolf Key Manager for Enterprise Transport Security (ETS)
2
2
3
-
This is a secure service for Key management based on ETSI Enterprise Transport Security specification. Provides middle-box decryption of TLS traffic.
3
+
This is a secure key management service for providing middle-box decryption of TLS traffic.
4
4
5
5
The library includes examples to demonstrate full passive decryption of an HTTPS server. We also have a demo package for Apache httpd available by request.
6
6
@@ -23,11 +23,11 @@ Based on:
23
23
24
24
* keymanager.c: The main entry point
25
25
* sock_mgr.c: The libevent socket manager
26
-
* svc_[]: Services exposed (ETSI)
27
-
* mod_[]: Modules for support (HTTP, TLS, Socket, ETSI and Vault)
26
+
* svc_[]: Services exposed (ETS)
27
+
* mod_[]: Modules for support (HTTP, TLS, Socket, ETS and Vault)
28
28
* wkm_[]: Generic wolf / KeyManager functions
29
29
30
-
## ETSI Design
30
+
## ETS Design
31
31
32
32
Server Side
33
33
1) KeyGen (Gen Key)
@@ -36,7 +36,7 @@ Server Side
36
36
4) Key expiration and notification of new key to peers
37
37
38
38
Client side
39
-
1) Encoding ETSI HTTP request
39
+
1) Encoding ETS HTTP request
40
40
2) Parsing HTTP response
41
41
3) Unbundling asymmetric key
42
42
@@ -106,7 +106,7 @@ installed, then proceed to the next step.
106
106
107
107
## Examples
108
108
109
-
The wolf Key Manager includes examples for ETSI client tests, HTTPS server / client and middle-box decryption.
109
+
The wolf Key Manager includes examples for ETS client tests, HTTPS server / client and middle-box decryption.
110
110
111
111
All test parameters for these examples are in the `examples/test_config.h`.
112
112
@@ -136,22 +136,22 @@ wolfKeyManager 1.0
136
136
137
137
To exit the key manager use ctrl+c.
138
138
139
-
### ETSI Test client
139
+
### ETS Test client
140
140
141
-
This demonstrates secure interactions with the key manager service using the ETSI HTTPS GET/PUT commands for different key types.
141
+
This demonstrates secure interactions with the key manager service using the ETS HTTPS GET/PUT commands for different key types.
142
142
143
143
```sh
144
-
$ ./examples/etsi_test/etsi_test -?
145
-
etsi_test 1.0
144
+
$ ./examples/ets_test/ets_test -?
145
+
ets_test 1.0
146
146
-? Help, print this usage
147
147
-e Error mode, force error response
148
148
-h <str> Host to connect to, default localhost
149
149
-p <num> Port to connect to, default 8119
150
150
-t <num> Thread pool size (stress test), default 0
151
151
-l <num> Log Level (1=Error to 4=Debug), default 4
* Use the thread pool "-t" to spin up more threads.
167
-
* Use the ETSI test client "-r" to make additional requests per thread.
167
+
* Use the ETS test client "-r" to make additional requests per thread.
168
168
* Use the "-F" argument to get key for specific fingerprint (hex string of hash of public key - first 80 bits / 10 bytes)
169
169
* Use the "-C" command to include context string (used for multiple servers).
170
170
171
-
#### ETSI Fingerprint
171
+
#### ETS Fingerprint
172
172
173
173
The fingerprint is a SHA-256 hash of the ephemeral public key with the first 80 bits (10 bytes) in big endian format. If the fingerprint is blank the current active key for that TLS group will be returned (assuming it is within the expiration and use count restrictions).
174
174
175
175
The fingerprint is used to lookup an ephemeral key based on public key using the following scheme:
176
176
* ECC: Public X and Y hashed with SHA256 (first 10 bytes)
177
177
* DH: Public key hashed with SHA256 (first 10 bytes)
178
178
179
-
#### ETSI Context String
179
+
#### ETS Context String
180
180
181
181
The context string is used to specify additional information to the key manager to distribute keys for multiple servers.
182
182
183
183
### HTTP Server / Client
184
184
185
-
We have included a simple HTTPS server to show getting the static ephemeral key using the ETSI client and key manager.
185
+
We have included a simple HTTPS server to show getting the static ephemeral key using the ETS client and key manager.
186
186
187
187
```
188
188
./examples/https/server
189
189
190
190
HTTPS Server: Port 443
191
191
192
-
Jun 15 14:26:54 2021: [INFO] Connected to ETSI service
192
+
Jun 15 14:26:54 2021: [INFO] Connected to ETS service
193
193
Jun 15 14:26:54 2021: [INFO] Sent get request (117 bytes)
Jun 15 14:27:01 2021: [DEBUG] Accept-Encoding: : gzip, deflate, br
216
216
Jun 15 14:27:01 2021: [DEBUG] User-Agent: : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15
Copy file name to clipboardExpand all lines: docs/README.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,32 +1,32 @@
1
-
# wolf Key Manager ETSI Reference
1
+
# wolf Key Manager ETS Reference
2
2
3
3
Based on [ETSI TS 103 523-3 V1.3.1](https://www.etsi.org/deliver/etsi_ts/103500_103599/10352303/01.03.01_60/ts_10352303v010301p.pdf)
4
4
5
5
## Components
6
6
7
-

7
+

8
8
9
9
* Key Manager (`src/wolfkeymgr`)
10
10
* Enterprise Transport Security Server (`examples/https/server` or Apache httpd, nginx, etc...)
11
11
* Middlebox Decryption (`examples/middlebox/decrypt` using wolfSSL sniffer)
12
12
* TLS v1.3 client (browser or `examples/https/client`)
13
13
* Asymmetric Key Package (RFC 5958 - PKCS8)
14
14
15
-
## ETSI Security
15
+
## ETS Security
16
16
17
-
All communication between consumer and ETSI Key Manager will use TLS v1.3 with mutual authentication.
17
+
All communication between consumer and ETS Key Manager will use TLS v1.3 with mutual authentication.
18
18
19
19
The Enterprise Transport Security profile does not provide per-session forward secrecy. Knowledge of a given static private key can be used to decrypt all sessions encrypted with that key, and forward secrecy for all of those sessions begins when all copies of that static private key have been destroyed.
20
20
21
21
Typically an organization will use standard TLS 1.3 to connect with external clients to the enterprise network or data centre. For connections within its own data center and could deployments the Enterprise Transport Security profile can be used.
22
22
23
23
An organization can rotate their keys as frequently as they choose.
24
24
25
-
The use of X.509 Visibility Information in the TLS server certificate should be used, but is not required for private internal use. The visibility information OID 0.4.0.3523.3.1 provides a public way to indicate the ETSI security profile is being used.
25
+
The use of X.509 Visibility Information in the TLS server certificate should be used, but is not required for private internal use. The visibility information OID 0.4.0.3523.3.1 provides a public way to indicate the ETS security profile is being used.
@@ -64,7 +64,7 @@ GET /.well-known/enterprise-transport-security/keys?groups=0x0018,0x001d&certs=0
64
64
Accept: application/pkcs8
65
65
```
66
66
67
-
### ETSI Push (HTTPS PUT)
67
+
### ETS Push (HTTPS PUT)
68
68
69
69
The key consumer shall support receiving a key package via an HTTP PUT request to a request-target, given here in origin-form, of:
70
70
`/enterprise-transport-security/keys`
@@ -88,7 +88,7 @@ in the Asymmetric Key Package shall have the following fields set as follows:
88
88
89
89
### Server Certificate Visibility
90
90
91
-
The ETSI specification part 3 section 4.3.3 requires the TLS server to present a "visibility" information field indicating "Enterprise Transport Security" is being used.
91
+
The ETSI ETS specification part 3 section 4.3.3 requires the TLS server to present a "visibility" information field indicating "Enterprise Transport Security" is being used.
0 commit comments