3 ms·
From the linked article Avoiding Internet Centralization: 5.2. Encrypt, Always When deployed at scale, encryption can be an effective technique to reduce ma
by 0xbadcafebee 5y ago
From the linked article Avoiding Internet Centralization:
5.2. Encrypt, Always
When deployed at scale, encryption can be an effective technique to reduce many inherited
centralization risks. By reducing the number of parties who have access to content of
communication, the ability of lower-layer protocols and intermediaries at those layers
to interfere with or observe is precluded. Even when they can still prevent communication,
the use of encryption makes it more difficult to discriminate the target from other
traffic.
Note that the benefits are most pronounced when the majority (if not all) traffic is
encrypted. As a result, protocols SHOULD be encrypted by default.
They're literally describing the lack of decentralization that encryption brings. "If you encrypt, intermediaries have no control". Which means a central actor does. By encrypting communications, without an intermediary protocol to support more flexible operations, there is no way to extend functionality for networks that depend on intermediary controls.
All systems that scale HTTP-based applications require a lack of encryption on the backend. The encryption is terminated at the load balancer and the entire connection is then inspected in plaintext. Sure, the "best practice" is to encrypt between endpoints, but they must be decrypted at each hop so that load balancers, API gateways, and applications can inject or parse headers, perform rewrites, forward traffic, inspect requests (WAF), create sticky sessions, and cache media. If all HTTP connections were end to end encrypted, the web could not scale.
Another example is DNS over HTTPS. The encryption centralizes control of the protocol at the server. The encryption removes the ability of intermediate LAN/WAN DNS resolvers to cache records for a large local network, or to serve their own custom zones transparently, or do things like ad-blocking. As there are valid and necessary use cases, it means that now new "hacks" will have to be developed to accommodate the old use cases, that the protocol design intentionally ignored. The result is more centralization.
Distributed decentralized applications also suffer when PKI is used for encryption. It is very common for backend applications to stop working because they were using a private CA to encrypt backend connections and the certs expired without warning, killing all the connections. Refreshing the certs then involves re-deploying not just the servers, but all the clients that were reliant on an old client cert, and possibly an expired CA cert. This use of a private CA also breaks decentralization compared to the public CA model.