Would there be a problem if all Internet traffic was encrypted with HTTPS or some other protocol?
What are the tradeoffs for using encryption all the time? Is the speed of the connection reduced or are there other complications?
|
Would there be a problem if all Internet traffic was encrypted with What are the tradeoffs for using encryption all the time? Is the speed of the connection reduced or are there other complications?
| ||||
|
show 24 more comments
feedback
|
This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion. See the FAQ for guidance on how to improve it.
|
The biggest problem is that you must be able to verify that you're encrypting to the correct key. Without it, encryption would be practically useless, as anyone could perform a man-in-the-middle attack on the connection and remain undetected. In typical SSL/TLS, as well as other protocols using X.509, this verification is performed by "certification authorities", which are explicitly marked as "trusted" by web browsers and operating systems. Unfortunately, these CAs usually charge a decent amount of money even for the simplest, automated checks. They also get hacked often (see also: DigiNotar, Comodo). You can make a self-signed certificate, of course, but then others cannot verify it against any trust anchor. Some browsers already support verifying self-signed certificates against information published in DNSSEC, but in some ways it is even worse than the current PKI – would you rather trust VeriSign or... GoDaddy? The "Web-of-trust" model of PGP and TLS-PGP has other problems: getting one's key1 signed by enough people is often tricky, [especially for those living in a small town in Europe...] Without those signatures, again, it's relatively easy for an attacker to substitute his own keys. Another problem is that not all programs and protocols were designed with encryption in mind. While many of them have had TLS retrofitted (HTTP, SMTP, IMAP, ...), it's not always possible to update the programs themselves. Even though SMTP can enable encryption for server-server links, very few servers advertise or request it. (Out of the major email providers, Gmail is probably the only one which supports this.) This issue can be solved somewhat by using encryption on lower layers, using protocols such as IPsec, but then you hit the verification issue again. For example, IPsec can use pre-shared keys (obviously infeasible for any larger network), Kerberos (better, but still doesn't scale to a global Internet), and X.509 certificates (which were already discussed). Hence, even if IPsec weren't so tricky to configure and use, it wouldn't work well for securing "all internet traffic". Finally, we have political issues. Some companies insist on logging all traffic generated by employees (or at least all websites browsed), and potentially blocking "bad" websites. Since they can't see through HTTPS, often they break HTTPS. There already are commercial devices which act as filtering proxy servers for HTTPS, performing an officially-sanctioned MITM attack. (You don't even notice it, since the device issues certificates using a locally managed CA, which is pre-installed on all company's computers.) Governments are not much different: there have been many attempts to regulate secure crypto (especially the USA export regulations), to introduce crypto algorithms or devices which the gov't could bypass (the most widely known is probably the Clipper chip), to block encrypted data (Iran), or, even, to outlaw it partially (Russia) or entirely. 1 OpenPGP certificate, technically. | |||||||||||||||||||||
feedback
|
|
Chris's argument is not entirely true (but close). Since most "encryption methods" (technically block ciphers, etc.) are one-to-one functions, they do not need to add extra bits for every bit encrypted (and there's no need to do so by information theory). They just need to pad the original data to fill the block cipher's blocks. Normally the padding is very small (128 bits). The real problem of encryption is performance penalty. I can think of at least three aspects:
| |||||||||||||||||||
feedback
|
|
To encrypt the internet traffic (using HTTPS), host providers use SSL certificates that are provided by third party authorities (such as VeriSign) and checked with these authorities. Getting one of these certificates costs money ("Authoritatively signed certificates may be free or cost between US$13 and $1,500 per year" --Wikipedia). Another problem is that when using HTTPS is that the transmitted content must be encrypted (which is an additional load on the CPU) | |||||||||||||||||||||
feedback
|
|
All Internet traffic is not encrypted because:
| ||||
|
feedback
|
|
Encrypting all Internet traffic is overkill. Here are some of the reasons:
Note: Effectively, the bandwidth required for encrypted data is greater, though encryption takes n bits and returns n bits. This is because encryption without integrity protection is virtually useless --- and integrity protection takes extra bytes. Without integrity protection an attacker can replace the data with some other bits and as decryption never 'fails' it will return a bunch of bits. Now if this is some text that a human is reading he/she can see that it is garbage and drop it. But if is streaming audio/video data consumed by a media player you will hear/see garbage. Note: cryptography hardware is getting cheaper and processors are getting faster. You can even browse wirelessly using smartphones which are able to handle the encryption required by access points using WPA/PSK. This was not the case a few years ago. When WPA standard was introduced a while back, because the routers of the day couldn't handle AES encryption, a simpler scheme (to be used in the interim) called TKIP was introduced. Now all routers can handle AES. So handling the crypto load should not be a problem as long as hardware advances are able to keep up with increasing data rates. Note: Eventually everyone (including every fridge and toaster) will have an IPv6 address. IPsec is mandatory in IPv6. So there may come a time when everyone is given an IPv6 address and certificate by the government just like the way passports are issued :-) | |||||||||||||||||||
feedback
|
|
Tradition. If it were done over again from the start, most traffic (other than open web pages) would be encrypted. Definitely email would be. | |||||||||||||||||||
feedback
|
|
One big reason is most ad networks (I'm looking at you, AdSense) don't serve encrypted ads... meaning that ad-supported sites can't use SSL. https://www.google.com/adsense/support/bin/answer.py?hl=en&answer=10528 | |||
|
feedback
|
|
Encrypting all the internet traffic would require an enormous amount of processing power and therefore would cost a lot of money. Daniel Bernstein has done some research in this field, for example: "High-speed high-security cryptography: encrypting and authenticating the whole Internet." EDIT: Found a video of Bernstein's lecture. | |||||||||||||||||||||
feedback
|
|
This is an opinion question, and perhaps doesn't belong on this site... . Above answers saying SSL isn't all that secure fail to acknowledge that it's still better than HTTP. Google did an analysis of where the remaining chokepoints are in internet traffic, and concluded that in fact all traffic should be encrypted: http://www.chromium.org/spdy/spdy-whitepaper One benefit of encrypting everything is it eliminates modern browsers' problem where they cache identical files twice: Once for HTTP and once for HTTPS. Today this means you might cache all the scripts and CSS on a site on the homepage, click around, then visit the HTTPS login page and be forced to download all the same files all over again. The reasons most traffic still isn't encrypted:
Digging deeper into the performance problems:
| |||
|
feedback
|
|
Another factor is the bandwidth required for encrypted data is greater than for plain text (as grawity points out, it's mostly key exchanges) - and a lot of the time the data being sent isn't really important enough to be encrypted, for example cats doing crazy things on Youtube. | |||||||||||||||||||||
feedback
|
|
The traditional internet protocols place much emphasis on easy debugging (they're not easily debuggable just by chance, it was a goal). Encryption tends to get in the way of tcpdumping packets and figuring out what's wrong. I venture to suggest that above all, encryption didn't get done in e.g. RFC 791 because it was a difficult task, could be deferred until after stuff worked, and was in conflict with debuggability. | |||||
feedback
|
|
Several reasons which you may summarise in: money, technical limitations, standards, human limitations. Let me try to explain in layman terms.
And the list may get longer, so why do you need to encrypt that email from your Aunt inviting you for dinner? | |||||||||
feedback
|
assert { internet != web }– dmckee Oct 15 '11 at 18:41