|
1 | 1 | # Deployment considerations |
2 | 2 |
|
3 | | -This section addresses ECH deployment considerations. Where relevant, it will link to subsequent sections which details possible attacks against the protocols. |
| 3 | +This section explores ECH deployment considerations. Relevant links to additional sections will be provided, detailing potential attacks against the protocols. |
4 | 4 |
|
5 | | -## Process overview |
| 5 | +## Process Overview |
6 | 6 |
|
7 | | -This is a simplified overview of the workflow involved in the browser opening an ECH-protected website. |
| 7 | +The following is a streamlined overview of the workflow involved when a browser accesses an ECH-protected website. |
8 | 8 |
|
9 | 9 |
|
10 | 10 |  |
11 | 11 |
|
12 | | -### Client process |
| 12 | +### Client-side Process |
13 | 13 |
|
14 | 14 | <ol> |
15 | | -<li style="list-style: upper-roman;">To request a website, the browser first queries the A/AAAA record and the ECHConfig from the configured DoH/DoT server. The DoH/DoT server is either provided by the network owner or by a large CDN.</li> |
16 | | -<li style="list-style: upper-roman;">The DoH server queries the information at the autoritative DNS server via DNS, managed by the website operator.</li> |
17 | | -<li style="list-style: upper-roman;">The information is sent from the DNS server to the DoH server and potentially cached.</li> |
18 | | -<li style="list-style: upper-roman;">The information is passed on to the client</li> |
19 | | -<li style="list-style: upper-roman;">Using the A/AAAA record and the ECHConfig, the browser requests the website from the web server</li> |
| 15 | +<li style="list-style: upper-roman;">To initiate a website request, the browser first queries the A/AAAA records and the ECHConfig from the designated DoH (DNS over HTTPS) or DoT (DNS over TLS) server. This server may be provided by the network operator or a prominent Content Delivery Network (CDN).</li> |
| 16 | +<li style="list-style: upper-roman;">The DoH server then queries the authoritative DNS server for the required information, which is managed by the website operator.</li> |
| 17 | +<li style="list-style: upper-roman;">Once retrieved, the information is relayed from the authoritative DNS server to the DoH server, potentially being cached for future requests by this or other clients.</li> |
| 18 | +<li style="list-style: upper-roman;">The DoH server subsequently transmits the information to the client.</li> |
| 19 | +<li style="list-style: upper-roman;">Utilizing the A/AAAA records and the ECHConfig, the browser sends a request to the web server to access the designated website.</li> |
20 | 20 | </ol> |
21 | 21 |
|
22 | | -The DoH servers query the autoritative DNS servers mostly via traditional unencrypted UDP-based DNS (Do53), however DoT and DoH are increasingly adopted in this area too. Protocol upgrades (opportunistic or via SVCB records) are also used. |
| 22 | +Typically, DoH servers communicate with authoritative DNS servers using traditional unencrypted UDP-based DNS (Do53). Nonetheless, the adoption of DoT and DoH protocols is on the rise. Additionally, various protocol upgrades (either opportunistic or through SVCB records) are employed. |
23 | 23 |
|
24 | | -### Server process |
| 24 | +### Server-side Process |
25 | 25 |
|
26 | | -1. The server (re-)generates the ECH keys in a defined interval (e.g. every 1 hour) for each configured domain |
27 | | -2. The server publishes the public ECH keys in the WKECH directories for each domain |
28 | | -3. The Zone Factory (ZF) requests the ECK keys for each configured domain in a configured interval (e.g. more often than 1 hour) |
29 | | -4. The Client-Facing Server (CFS) answers with the ECH keys |
30 | | -5. The ZF pushes the generated ECHConfig to the DNS server |
| 26 | +1. The server regularly regenerates the ECH keys at defined intervals (for example, every hour) for each configured domain. |
| 27 | +2. The server publishes the corresponding public ECH keys within the WKECH directories for every domain. |
| 28 | +3. The Zone Factory (ZF) requests the ECH keys for each designated domain at pre-established intervals (preferably more frequent than once per hour). |
| 29 | +4. The Client-Facing Server (CFS) responds with the requested ECH keys. |
| 30 | +5. The ZF subsequently pushes the generated ECHConfig to the DNS server. |
31 | 31 |
|
32 | 32 | ## Webserver configuration |
33 | 33 |
|
34 | | -- Which component creates the ECH keys with the correct parameters? |
35 | | -- Which component rotates them, and reloads the webserver? |
36 | | -- and creates (or serves) the wkech directory, ensuring that only the pubkeys are exposed, not the private keys |
37 | | -- Triggering the ZF after every rotation (running separately, on another host) |
38 | | -- documentation: https://github.com/defo-project/ech-dev-utils#user-content-server-details |
| 34 | +- Which component is responsible for generating the ECH keys with the appropriate parameters? |
| 35 | +- Which entity handles the rotation of these keys and reloads the web server configuration? |
| 36 | +- What component creates (or services) the WKECH directory, ensuring only public keys are exposed and private keys remain secure? |
| 37 | +- How is the ZF triggered after each key rotation, ideally operating separately on a different host? |
| 38 | +- For documentation, refer to: <https://github.com/defo-project/ech-dev-utils#user-content-server-details>. |
39 | 39 |
|
40 | | -## Complexity of configuring the Zone Factory |
| 40 | +## Complexity of Configuring the Zone Factory |
41 | 41 |
|
42 | | -The ZF needs to know |
43 | | -1. which well-known sites (`wkech`) to look at |
44 | | -2. when to refresh the keys (or in a fixed interval) |
45 | | -3. which zone files (located on which server) need to be updated |
| 42 | +The ZF must be aware of the following: |
46 | 43 |
|
47 | | -The ZDF needs write access to the zone file and needs to be able to reload the nameserver. |
48 | | -All of this flow is non-trivial for a sysadmin to configure and add possible steps which may break. |
| 44 | +1. Identifying well-known sites (`wkech`) to monitor. |
| 45 | +2. Establishing a refresh schedule for the keys (either on a fixed interval or responsive to activity). |
| 46 | +3. Knowing which zone files (housed on which servers) require updates. |
49 | 47 |
|
50 | | -This sections looks at what could go wrong in case of misconfigurations or malicious attacks. |
| 48 | +The ZF requires write access to the zone files and must have the capability to reload the nameserver configuration. This setup is non-trivial for a systems administrator, as misconfigurations or oversights can introduce complications. |
51 | 49 |
|
52 | | -WKECH directory must be secured: Only public keys, not private keys |
| 50 | +It is imperative to secure the WKECH directory: it must contain only public keys, be immutable (including to any aliases), and limit access solely to the web server itself. For more information, please refer to the section on [WKECH](../../weaknesses/wkech.md). |
53 | 51 |
|
54 | | -... |
| 52 | +## DNSSEC implementation |
| 53 | + |
| 54 | +Implementing DNSSEC (Domain Name System Security Extensions) is crucial to enable clients to validate ECH-enabled domains. This not only enhances the integrity of the DNS responses but also mitigates the risk of resolvers inadvertently blocking SVCB or ECH parameters. Ensuring robust DNSSEC configuration can significantly bolster the security framework associated with ECH implementations, fostering trust and reliability in web communications. |
0 commit comments