How a banner ad for H&R Block appeared on Apple.com without Apple’s OK
arstechnica.com
arstechnica.com
This same excuse has existed for about as long as HTTPS, which dates to Netscape Navigator 1. Is it still that "rigid and costly"? Is there a technical reason that this is an unsolvable problem?
Considering the increase in computer and network speed over the last decade and a half, it seems strange that this would still be the case. Perhaps it's just that without pressure from competitors there is no pressure on the sites to solve it?
It's computationally hard to crack. To be useful, it necessarily has to be easier to use than to circumvent.
> SSL virtually requires buying certificates so
> small/hobby sites won't use it
startssl.com offers free SSL certificates valid in almost every browser, good for one year. I've been using them for my own site with no problems. Certificate cost is no excuse for continuing to use unsecured HTTP. > it involves multiple round-trips and latency is never
> going to go away
Assuming reasonable protocol design (somewhat problematic for HTTP/1.0, better in /1.1 and SPDY), additional round trips are only a factor for the initial connection setup. Later requests can re-use the existing SSL session. > part of what makes encryption work is that it's
> computationally hard on today's hardware
Encryption is based on being computationally expensive for a third party. The computational load on the communicating parties is negligible, particularly with modern CPUs. From http://www.imperialviolet.org/2010/06/25/overclocking-ssl.ht... , Google experiences CPU overheads of less than one percent: > On our production frontend machines, SSL/TLS accounts
> for less than 1% of the CPU load, less than 10KB of
> memory per connection and less than 2% of network overhead.True, but the last time I tried them the UX was a nightmare.
On the other hand, they are two orders of magnitude cheaper than Symantec (nee Verisign)...
startssl certs aren't trusted by my browser (or maybe the os?), so ssl's identity authentication for startssl is void. It's still better than no cert since ISPs can't detect what certs my browser trusts, thus wont make stupid moves, probably.
If you can use more widely recognized certificates, please do.
Which browser/OS combo are you using?
When Google went over to SSL for Gmail, they said "On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10KB of memory per connection and less than 2% of network overhead. Many people believe that SSL takes a lot of CPU time and we hope the above numbers (public for the first time) will help to dispel that. " http://techie-buzz.com/tech-news/google-switch-ssl-cost.html
That, coupled with the general availability of cheap and free CA signed certificates makes the claim pretty baseless.
I paid $10 for an SSL cert. Isn't that low enough?
If I wasn't at least a little bit clever with my spending, I would have a lot more difficulty paying my rent.
Why would I want to pay if there is alternatives offering the same product at no cost?
Because free isn't necessarily a sustainable model given the current CA environment. Any server can generate its own certificate, but this does little to verify the identity of the server you are connecting to.
My point is that CA's provide a service that can't reliably be accomplished for free (yet - the CA model has many of its own issues). If you can find one for free, I would be lead to ask "what are their motives for providing this service to me?"
Let's put it another way, would you really trust that you're talking to https://www.amazon.com if it's trivial to get a cert for www.amazon.com[1] that's signed by a CA that the browsers include and trust[2]? How is it any different if the browser doesn't tell you the current cert is of dubious reputation?
[1]: It is, I could generate one right now using openssl.
[2]: It's not, that's why the system works.
It costs them nothing more than a few seconds of server time to produce a signed certificat for me.
IPv6 should address the other problem - namely, that SSL certs are per-ip, not per-hostname, which makes hosting multiple sites a pain with IPv4. Or SNI could work, once Windows XP is truly abandoned.
HTTP/1.1 GET /
Host: mysite.com
By the time the server has decoded and read this header, you have presumably already started the secure connection, so the server has to have already selected which certificate to use for the session.Workarounds are to have multiple IP addresses on your box with one cert per IP, or run the server on multiple ports with one cert per port. In both cases this enables the server to know which certificate to use from the underlying connection properties, and not wait for the encoded traffic to start arriving.
SNI (Server Name Identification) is an extension to TLS (Transport Layer Security) that essentially adds the hostname into the SSL negotiation, so this cert can be selected by the server in advance. It made it into OpenSSL implementations in the mid-2000s and is reasonably widely adopted.
Legacy libraries, Internet Explorer <=7, and Windows <=XP won't support it so it's not quite ready for mainstream use. Give it 5 years or so...
I'm not an expert on DNSSEC, but the idea is that there is a chain of trust going back to the domain registrar. If a receive a signed DNS response, and everything verifies, then I know that it comes from the person who registered the domain. I can't add a signed entry for example.com, so if I received a signed DNS response for example.com, I know it ultimately originated (with possible caching like normal DNS) from whomever registered example.com.
You can then add what is essentially a TXT record to the DNS entries for a domain that is the fingerprint of an SSL cert. If you receive that as a valid dnssec response, you know it can be trusted.
Essentially the dnssec infrastructure replaces the CA infrastructure.
You can do the same thing with ssh key fingerprints too.
edit: cdjk - thank you - I have to edit-reply as there appears to be an increased time delay on replies. Maybe its me. Bought it.
http://blather.michaelwlucas.com/archives/1640
It's not out yet, but an nearly-complete draft is available on leanpub (with updates once he finishes copy editing):
https://leanpub.com/dnssecmastery
edit reply: I think the thread is nesting to far...
There's work underway at the IETF to define a standard for signing pages and included resources, so that caches can do their business while still providing the same authenticity features as an HSTS-compliant site. I can't seem to find a reference to an RFC right now, though, unfortunately.
It does completely disable ability for your ISP to have transparent proxies caching content a before it's sent to you, but the security and privacy gain is worth the trade off.
I (possibly mis-) understood the original comment to be claiming that you could cache the ciphertext, to which I just wanted to make sure I wasn't missing some huge piece of understanding.
SSL -> varnish -> backend varnish -> backend
[1] https://code.google.com/p/chromium/issues/detail?id=43142
[2] http://en.wikipedia.org/wiki/Server_Name_Indication#Browsers...
FTFY.
Also, I talked to GlobalSign recently, and they had a brand new solution that used SNI with an automatic fallback to multi-domain certificate for browsers that don't support SNI.
You need SSL accelerators or pretty fast hardware to handle more than a few thousand SSL handshakes per second on a single machine. This is one of the places cost comes from.
That's not true - or rather it conflates two unrelated problems.
1) HTTPS/SSL (even with larger certificates) isn't computationally expensive:
In January this year (2010), Gmail switched to using HTTPS for everything by default. Previously it had been introduced as an option, but now all of our users use HTTPS to secure their email between their browsers and Google, all the time. In order to do this we had to deploy no additional machines and no special hardware. On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10KB of memory per connection and less than 2% of network overhead. Many people believe that SSL takes a lot of CPU time and we hope the above numbers (public for the first time) will help to dispel that.[1]
2) The HTTPS initial handshake is slow. However, this isn't because of the power of the machine, or the certificates size. It's cause by round-trip overheard (See [2]). The solution for that is to reuse HTTPS connections as much as possible (which both your server and the browser should try to do for you anyway. But doing things like using the same hostname can help)
[1] http://www.imperialviolet.org/2010/06/25/overclocking-ssl.ht...
[2] http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?to...
For web applications the overhead is much less significant. Both because you can re-use connections, and because few web applications can manage 20k+ requests per second on low end hardware.
That's precisely the point, though.
The proponents of HTTPS everywhere try to sweep the significant downsides under the rug, whilst others are spreading all kinds of unfounded FUD about HTTPS.
The bottom line is that "your mileage may vary". For some applications, SSL is trivial, and there is no excuse not to do it. For other scenarios it's a nightmare with all kinds of undocumented complications.
I'm currently working on providing SSL for a SaaS service with various client domains on AWS (i.e., with a limited number of IP-addresses). Doable, but far from trivial or inexpensive.
HTTPS is manageable where needed for security. Sleazy ISPs are making it necessary even where security is not a concern -- for example, viewing Apple's homepage.
http://www.stevesouders.com/blog/2013/03/18/http-archive-jqu...
I heard on the latest This Week In Security that Comcast was apparently not just injecting JS, but injecting bad JS. Meaning that closures weren't used, so name collisions could occur with the actual sites users were visiting.
For this reason, I can see HTTPS becoming standard, even for public, non-logged in users. I'm in the process of updating my site to be all-HTTPS and recently got confirmation (as much as one could ever expect) from Google there's no SEO penalty (http://goo.gl/sbtxq).
Even if your login page posts to https, if there's a man in the middle somewhere between your server and user and your login page is HTTP, they can alter the login page to post somewhere else. If your login page is HTTPS, then they can change links to that page to something different.
Only with HTTPS for the entire site is it safe from those attacks. It is still vulnerable if there is a MITM the very first time the browser has ever visited the site, but it's a whole lot better than always being vulnerable!
The thought of an ISP having CA certs that are a part of default installs is unnerving.
[EDIT]And for the added 'told you so,' the German parliament uses precisely this certificate https://www.bundestag.de/
On OS X, you can do this from Keychain Access.
In my case it was the opposite, a gov website mandated the installation of certificates for its use
Interesting comment on that thread:
> This CA was singled out as a CA that signed an excessive number of intermediate authorities (252) which together only have issued 4164 certificates in EFFs talk at C3. This is, by far, the highest number, the next contender is GTE Cybertrust with 93.
Btw, Video of the 27C3 talk in question: https://www.youtube.com/watch?v=DRjNV4YMvHI
There are a number of ISPs that are also CAs that are installed in many browsers by default.
(1. don't listen to people telling you otherwise, it's an expensive experiment 2. redirects do not transfer all the juice, they count as links themselves, from my experience it's like not having external links to your site at all 3. If you do not depend on Google b/c you're SaaS, go for HTTPS only)
[edit] People extrapolate that 301 are different because Google tells them to use 301 when moving pages.
But in fact the same features that make transparent caching easy make this kind of shenanigans easy. There are tons of companies in this space now. Not just people like NebuAd and R66T, but lots of "subscriber messaging systems" like FrontPorch (which I've heard sells messaging data for behavioral advertising) and PerfTech (which has assured me that they do no such thing).
This should be an easy way to push back one of the last "real" arguments against using HTTPS everywhere. There's no excuse not to be running your site on HTTPS all the time - it protects you and your users from all sorts of mischief for a minimal overhead.
If I ran a website with ads, and someone was stripping those ads to replace with their own ads, I'd be annoyed. I'd be amazed if that's something Google would tolerate. We've seen plenty of stories from people saying "Google closed my ad account and froze all my money!!!" so I hope they do that to this ISP and or the company serving the ads.
But, now they've seen their ISP tampering those people might switch on encryption for their email, and everything else.
For what it's worth I was grumpy in those situations too. I wrote polite letters. Where possible I opted out.
But your point - this kind of this happens all the time, and has been going on for years, and noone is doing anything to stop it even though it's wrong - is taken.
I absolutely can not understate just how happy I am about this.
It amazes me that US Internet access has very little of either. All the drawbacks of monopoly Internet, with all the drawbacks of unregulated Internet.
Is there something about SSL/TLS that I'm fundamentally misunderstanding?
Furthermore, if the ISP has done that, they don't need you to go through a proxy. Your connection is already going directly through them.
Edit: However (as you can see by some of the responses in this thread), there's certainly the possibility that your ISP itself is an actual certificate authority recognized by browsers. That scenario is indeed quite worrying.
But I do agree with your original point that to the extent possible, there should be legislation (if there isn't already) against intercepting TLS-encrypted connections of ISP customers, in cases where the ISP is also a browser-approved CA or is actually willing to distribute its own CA cert.
Would that silently affect people like us? No. Could they do it to all their non-technical customers? Absolutely.
not sure if this has ever been tested legally though.
There are also other applications of modification of pages in transit, for example mobile connections often proxy a lower quality version of images (done transparently by the ISP) to save bandwidth. Also some proxies may block videos , ads etc which is as much modification as adding them.
This "take your business elsewhere" competitive environment is supposed to foster innovation blah blah. Many would say this is BS and more regulation is needed because of a duopoly. As a competitive ISP I have to disagree, but it is true that the duopoly providers spend more on advertising so most people aren't aware of alternatives.
One could argue that rewriting pages to insert JS makes a derivative work or something and that gives Apple grounds to sue because of copyright, but that's tough as ISPs are supposed to be finding ways to inflict the Emergency Broadcast System on users and JS insertion is generally less obtrusive than hijacking all HTTP/HTTPS until the alert clears.
My perception is that most ISPs avoid this kind of thing because we don't want to give the FCC any more excuses to mandate things like "Net Neutrality" with poorly understood policy consequences.
On the other hand inflicting one of those DNS-hijacking special offers systems can increase revenue from the typical residential user that wouldn't care by a few percent so there's always a bit of business pressure.
This is to the internet what global warming is to the earth... well that might be too far, but this is high tech pollution at its worst.
I don't like "force HTTPS everywhere" but these jerks are forcing it. It sucks, but it sucks less than this.
1. Certificate problems with embedded devices.
2. Much harder to control what's going on with your network.
http://www.bbc.co.uk/news/technology-13015194
There is a good chance that such practices may be found to be illegal in a UK court (Regulation of Investigatory Powers Act primarily with some discussion about applying the Data Protection Act or Computer Misuse Act) but they haven't been tested yet. Both companies very quickly stepped back from the 'trial' they were conducting when it became clear there might be public support for a test case.
However, a big FU to Arstechnica for prostituting the name of Apple to get more visits to the article. The headline did not need to imply that Apple.com was hacked or that Apple was somehow unaware of what's happening at their site.
It's sleazy journalism and beneath the usual ethics of Arstechnica
If anything, the Acceptable Use Policy change on the 4th was a sign that they'd be reluctant to change their stance on this issue at all. They honestly don't care.
The problem with such a bill is it will have a dozen riders for very horrible things.
http://blog.inuvi.com/wp-content/uploads/2011/01/LUMA-Landsc...
It could be a re marketing add, or a demographically targeted ad, but in that case the buyer still purchased it somewhere and some company or company is responsible.
Edit: It seems they've mapped command-back-arrow to a non-default action. Not cool.
I hate this ultra-low signal to noise style of writing anyway, but using it for a tech piece is more than ridiculous. This isn't a 1970s western movie, nor does it appear in the NYT arts & culture section.
I say "not really" because ATT provides phone service, but not DSL or U-Verse.
I, for one, welcome our new corporate master feudal lords.