Slashdot Mirror


Why Doesn't Every Website Use HTTPS?

suraj.sun writes "HTTPS is more secure, so why isn't the Web using it? You wouldn't write your username and passwords on a postcard and mail it for the world to see, so why are you doing it online? Every time you log in to Twitter, Facebook or any other service that uses a plain HTTP connection that's essentially what you're doing. There is a better way, the secure version of HTTP — HTTPS. But if HTTPS is more secure, why doesn't the entire Web use it?"

30 of 665 comments (clear)

  1. Haven’t we been here before? by Anrego · · Score: 4, Informative

    I’m no HTML technician, however I would assume it requires significantly more processing power. Your personal blog or website with 10 hits a day sure, run it over https and you probably wouldn’t notice much difference (aside from the cost of your own unique IP address). A large scale site however would probably have more hardware and bandwidth requirements to implement https on everything.

    And I don’t think it’s laziness. A lot of sites will do the login and purchasing bits over https, and have the rest of the site regular old http. It’s probably more effort to do this kind of mixed environment than just make the whole damn thing over https. The only reason for this that I can see is if there was a significant cost associated with encrypting everything un-necessarily.

    1. Re:Haven’t we been here before? by SCHecklerX · · Score: 4, Insightful

      If you are going to switch back over to http, you might as well not bother in the first place. HTTP, being stateless, one need only sniff that session ID, and they are now in. That so-called webmasters think they are guarding access by only encrypting/authenticating the login amuses me.

    2. Re:Haven’t we been here before? by EasyTarget · · Score: 4, Insightful

      "That so-called webmasters think they are guarding access by only encrypting/authenticating the login amuses me."

      ..which is why you need to let real webmasters get on with it and not try it yourself. We are protecting -something-; it's your loss if you cannot work out what that is.

      --
      "Oops, I always forget the purpose of competition is to divide people into winners and losers." - Hobbes
    3. Re:Haven’t we been here before? by fuzzyfuzzyfungus · · Score: 5, Interesting

      I suspect that some are merely clueless, and some are mostly concerned with preventing persistent "lockout" type attacks at the lowest possible cost. You'll notice, for instance, that most sites that authenticate over HTTPS, then drop back to HTTP, go back to HTTPS and demand the original password if you try to do things like change the password(and possibly certain other operations considered sensitive), even if you have the session ID.

      Obviously, that does nothing to prevent assorted public-wifi hilarity; but it makes it comparatively difficult(difficult enough that social engineering or just guessing that the password is 'password123' because they always are is easier) to permanently compromise the account and generate a customer support/being flagged as a spam host cost problem.

      Webmasters who think that this is actually good security are fools. Webmasters who think that it blocks a certain class of especially costly attacks, while being much cheaper than full HTTPS, are entirely correct. And, given how little one pays for access to many sites that do this, they probably don't care too much unless something attracts mainstream attention *cough*firesheep*cough*...

    4. Re:Haven’t we been here before? by Zorpheus · · Score: 4, Informative

      The use of encrypting the login is that the passwords are save from being sniffed. Too many people use the same password for multiple sites.

    5. Re:Haven’t we been here before? by vlm · · Score: 3, Informative

      1) Isn't SSL done on a per domain name basis?

      "HTTPS" is more or less setting up a SSL link and running plain ole HTTP over that secure link.

      No the SSL encryption layer is done before the HTTP layer does it's thing. So if you identify your vhost as part of the HTTP header, then you're not going to know your vhost name until after the SSL is already set up and working, classic chicken and egg problem.

      HTTPS/SSL a good argument for going ipv6 where there is no particular shortage of ip space.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    6. Re:Haven’t we been here before? by Sancho · · Score: 3, Insightful

      Server Name Indication has been supported by major browsers for 4 years. Browsers have supported Subject Alternative Name certs (which bypass the need for one IP per name) for nearly 8 years. At this point, the one cert per IP issue should be well addressed.

    7. Re:Haven’t we been here before? by asdf7890 · · Score: 5, Informative

      Isn't SSL done on a per domain name basis?

      No. But yes. Well, probably not quite yet.

      No: The way HTTPS works when the "recent" SNI feature is not available is that the TLS stream is created (including certificates being negotiated and verified) before any hostname information is transferred. This means that you can only have one valid certificate per publicly addressable IP address without SNI.

      But yes: With SNI (see http://en.wikipedia.org/wiki/Server_Name_Indication for info) the hostname is sent earlier, so the server can lookup the right certificate for that name and send it instead of relying on a 1-to-1 mapping between IP addresses and service names.

      Well, probably not quite yet: Unfortunately SNI is not completely supported by all common user agents, particularly any version of Internet Explorer running on Windows XP, so whether you can justify using the feature right now depends a lot on who your target audience are. If you don't have any users browsing your content/app with XP+IE or you don't mind telling such users to upgrade to FF/Chrome/other, upgrade Windows, or just put up with the certificate warnings, then using SNI will work for you. You run the risk of sending XP+IE users away though, which might not be acceptable if your bottom line relies on getting as much traffic as possible through your doors.

    8. Re:Haven’t we been here before? by nahdude812 · · Score: 4, Informative

      You cannot depend on the user's IP address not changing. Besides offering only some additional security (most people subject to having their session sniffed are using the same public WiFi as the user - so they'll actually have the same IP address), more importantly, some users have load-balanced outbound Internet access.

      On our own network, we see legitimate single sessions bridging multiple A-class networks. Page request to page request they will have an IP address from a wholly different ISP, which can even geolocate to wildly different locations. Admittedly that's the exception rather than the rule, but it's also becoming more common - especially for people on mobile networks, whose IP address is subject to whichever cell tower is giving them the strongest signal right now. Users sitting relatively equidistant from multiple towers can flip between various IP's rather frequently.

      The only things you can reliably depend on not changing in the user's request (for legitimate users) are also all spoofable by illegitimate users. For example, you can depend on a cookie not changing unless you told it to change, but it can be spoofed; you can depend on the user agent not changing, but it can be spoofed, and so forth.

      There is no way to make an unspoofable session cookie; you can only prevent interception by using a secure standard such as SSL.

    9. Re:Haven’t we been here before? by nahdude812 · · Score: 3, Informative

      It's called SNI (Server Name Indication), it's part of the SSL standard, and has been supported in Apache since 2.2.12. The virtual host name is submitted as part of the TLS negotiations so the server knows which certificate to use.

    10. Re:Haven’t we been here before? by Lennie · · Score: 3, Informative

      Actually no version of IE (that means 6, 7 or 8 or Safari) on Windows XP supports SNI. :-(

      They use the system library, it does not use SNI.

      --
      New things are always on the horizon
  2. Certificate? by Lord+Lode · · Score: 3, Interesting

    Maybe because it requires certificates that cost money and annoy users when they expire?

    1. Re:Certificate? by spinkham · · Score: 5, Informative

      Free certs are available, and every bit as (in)secure as the paid standard ssl certs.
      http://cert.startcom.org/

      The "annoying users when they expire" is a symptom of the main problem.

      Well, actually it's 2 problems.
      For small hosters, IE(any version) on XP doesn't support SSL/TLS on virtual hosts. Everybody else does. http://en.wikipedia.org/wiki/Server_Name_Indication

      For large hosters, SSL key distribution and updates becomes a problem when using large server farms or CDNs. Doing SSL in hardware on load balancers solves this for server farms, while CDNs are a more difficult problem.

      Those are the main reasons. Latency and CPU usage are not deal-breakers today, though they are a factor.

      --
      Blessed are the pessimists, for they have made backups.
    2. Re:Certificate? by spinkham · · Score: 4, Informative

      The certs from StartCom are whatever you generate for them to sign. Last year they accepted 1024 bit RSA and 2048 bit RSA. LIke the rest of the SSL vendors, in 2011 only 2048 bit RSA certs are allowed for issuance, and full transition to 2048 only certs by 2013.

      Secondly, the 128 or 256 bit symmetric crypto has nothing to do with the SSL cert or provider, that's software settings on the host. 128 bit AES is widely considered secure against attacks for the next 20 years or so, and 256 bit should be secure for the as far into the future as we can guess. http://www.keylength.com/

      The (in)security I refer to has to do with the level of checking into who you are. Basically, they just send an email to administrator type address at the site you want a cert for, and if you get the email you are assumed to be the admin. This can be attacked easily through DNS flaws or just signing up for a webmail account with an address that the SSL provider thinks sounds like an admin account. This happened to many of the large webmail providers before they started blocking the common admin accounts for registration.

      XKCD was right. The common attacks are against the humans who run your DNS or mail providers, not that the crypto is weak.
      http://xkcd.com/538/

      --
      Blessed are the pessimists, for they have made backups.
  3. Re:Holy fuck! by WrongSizeGlass · · Score: 4, Informative

    Facebook and twitter don't have secure logins?!

    That's one more reason for me to never sign up with them.

    They have secure logins, just not secure sessions after you've logged in.

  4. Because getting a signed SSL certificate is $$$ by realityimpaired · · Score: 5, Insightful

    Subject says it all. It's expensive to get a signed SSL certificate. If I'm not doing commerce through the website, and it's just a blog of some sort, I'm not going to pay extra money for a certificate when I'm not making any money off it. A self-signed cert is fine for personal use, and I use it for my webmail portal, but it doesn't exactly look professional, or even legitimate, to joe user out there.

    *most* commercial websites do actually have an SSL cert for their e-commerce operations. For most, if not all, of the sites I ever use (except Slashdot), I can simply change the http to https and the site will work fine. But I don't really see the point in a website using https for anything that doesn't involve the exchange of personal or financial information. It's unnecessary overhead, and expense, for these websites. HTTPS does add extra sever load on their systems, you know. :)

  5. Cost-benefit by Shoten · · Score: 5, Insightful

    Implementing HTTPS isn't quite as simple as just turning something on and walking away. For larger web-based infrastructure, the best practice involves use of SSL terminators to maintain performance at scale; the encryption load of doing SSL or TLS at the actual web server itself is a Very Bad Idea when you're handling a lot of traffic. But those devices are not cheap, and there's a substantial amount of effort in both architecting them into an environment and keeping them running well; it's like any other IT infrastructure, in that it adds cost and complexity. In some cases, other aspects of the environment would have to grow as well...if the IDS and/or IPS sensors, for example, wouldn't see traffic in that section that is 'in the clear' between the web servers and the SSL accelerators, the organization would have to decide between purchasing more of these (much more expensive) security devices and giving up visibility into attacks over what is likely their highest-risk bit of attack surface. For smaller sites, the complexity is lower but cost is a more significant factor, as (for much smaller sites) the challenge and uncertainty of maintaining certificates. And for what? For most sites I can think of, I would be hard-pressed to make a business case in support of ubiquitous SSL...why should the New York Times spend so much just to make sure someone else can't see what news I'm reading? Even if they sniff my account credentials off the wire, what harm could really be done with it that would justify the expense?

    Simply put, it's not free, and in most cases, the cost of security would be greater than the cost of the risk being mitigated.

    --

    For your security, this post has been encrypted with ROT-13, twice.
  6. A lot of stuff doesn't need to be secure by dkleinsc · · Score: 4, Insightful

    For instance, a large website where the primary goal is public commenting on interesting tech stories, or a public online encyclopedia - the whole point is that it's public, so encrypting it makes no sense.

    And SSL encryption has a non-zero cost: it takes cycles to encrypt and decrypt on each end, and costs something to get a certificate.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  7. It's XP's fault. by spinkham · · Score: 4, Interesting

    Today one of the major reasons is that IE on XP does not support the SSL/TLS extensions for virtual hosting.
    When he says,"it's only partially implemented" he means everywhere but IE(any version) on XP.
    http://en.wikipedia.org/wiki/Server_Name_Indication

    --
    Blessed are the pessimists, for they have made backups.
  8. SSL issues by thetagger · · Score: 3, Interesting

    It's more expensive in terms of processing power, you add latency due to negotiation, you lose caching across sessions, moving the user across servers is not as easy, you lose some amenities like sendfile() support, you have to manage certificates, you have to buy certificates, and in most real-world settings it's a minor security improvement anyway because the biggest security issue is the user's own worm-infested machine.

  9. Some reasons by jolyonr · · Score: 5, Interesting

    Ok... In reverse order of significance:

    1. Expense (at least traditionally) of SSL Certificates. Although today that's not such a big issue, and an SSL certificate costs about the same as your domain registration. However, if you have multiple subdomains you still need a more expensive certificate.

    2. Complication. It can be a highly confusing process for someone who's not an expert to do the certificate request process and the associated installation of the certificate. I know the first time I tried to do it, it went horribly wrong and I spent a day trying to sort it out.

    3. Client Performance: SSL websites are slower than non-SSL websites. Not such a big deal again these days, but I remember when I had to wait it would seem forever for the images on my online banking site to load, cursing them every time for such a graphically-intensive SSL site.

    4. IP addresses: This is a big one, if you host multiple websites on your server, and you only have a single IP address, you can't host more than one SSL certificate. So you need more IP addresses (which is not easy nowdays). Big deal for small company hosted websites, which are often on shared IPs.

    5. Server Performance: A server that can cope with one million users per day using HTTP will not be able to cope with anywhere near that number of connections over HTTPS for obvious reasons. So you not only need a certificate, you potentially need a whole new server architecture to deal with it. Scale this up for a big business like Twitter or Facebook and you're talking implementation costs in high millions of dollars.

    --


    Please read my Canon EOS tech blog at http://www.everyothershot.com
  10. Re:Correct by fuzzyfuzzyfungus · · Score: 5, Informative

    The fact that it can muck up cheap-n-cheerful 'zillion sites on one host' arrangements unless everybody's TLS ducks are in a row probably counts as a fairly significant cost, as well. Especially on the low end.

  11. Re:Correct by isopropanol · · Score: 5, Informative

    Also, HTTPS does not play well with proxy caches or load balancing.

  12. Other than the performance thing... by mmj638 · · Score: 3, Informative

    - For HTTPS to work seamlessly it requires a certificate signed by a trusted 3rd party, which usually (but not always) costs money. This would disadvantage smaller websites/businesses.

    - HTTPS also (currently) requires a separate IP address per certificate. This would mean the current practice of hosting large numbers of domains on one IP using name-based virtual hosting would not be viable, which is something the shared hosting industry really relies on. IP addresses are also a very limited resource at the moment.

    - HTTPS cannot be cached between the user's browser and the server. Even the user's browser uses more conservative caching which will further reduce performance.

  13. Re:Correct by ElusiveJoe · · Score: 4, Insightful

    True.

    Even with the mighty Google I can see the lag while using the secure version. And secure Wikipedia version stops working sometimes. Hell, I'm writing this on a website without HTTPS, maybe /. web masters could answer why is it like that, too.

  14. Re:Correct by icannotthinkofaname · · Score: 5, Funny

    Hey...1998 called

    Oh man! Did you warn them about the World Trade Center?

    --
    Let q be a radix > 1. I am in ur base-q, killing 10 d00ds.
  15. Re:Correct by JWSmythe · · Score: 4, Insightful

        But as we've seen proven, the CPU load isn't as big of an issue as is claimed.

        The reports where people said it was, were from an awful long time ago, discussing high loads and CPUs that were measured in Mhz (i.e., Ghz CPUs weren't even imagined yet).

        Right now, we have to look at a few issues.

        1) Users are familiar with typing http:/// . If you went https only, without a redirection from http:/// you'd lose traffic. Simple fix, do a redirection.

        2) Not everyone supports https still. If you include a piece from a 3rd party, you'll either get a broken lock, or the 3rd party data won't show.

        3) Google Adsense doesn't support it. Still. And people have been asking for years. They are a major revenue source for a lot of sites.

        4) Hosting https sites still require a unique IP for each site. If I, a a hosting provider, have 1000 sites on a server, I'd rather use one IP, than 1000 IPs.

        5) SSL certs must be renewed. You must have the cooperation of the provider. Certs are no longer $100/yr, if you shop around a little. Trustico has provided perfectly functional certs for $20/yr for a long time (with discounts for multi-year purchases). I've been using them for several years. For a blog that has very cheap hosting, even the $20 doesn't necessarily make sense.

        6) The time where there were huge compatibility issues with SSL implementations in browsers is gone, but you will still find the occasional app that doesn't have SSL compiled in by default, but that has become rare. At very least, all modern browsers support https:/// out of the box, regardless of where you are at.

      The biggest issue is, users don't generally care. On my site, I have a warning every page if you're viewing insecure, and encouraging you to click the link to switch to the https version. Less than 10% of the users ever switch up to the https version. The only time I enforce it is when a users logs in. When they try to log in, it forces them to https, and keeps them there for the duration of their session.

    --
    Serious? Seriousness is well above my pay grade.
  16. Re:Correct by dropadrop · · Score: 5, Interesting

    Also, HTTPS does not play well with proxy caches or load balancing.

    This is the main reason we have not been implementing it. Our environment relies heavily on caching and loadbalancing. We are trying to find ways around it though, especially to get all session-data to use HTTPS (but a requirement is that users are not scared with warnings about part of the content being unencrypted).

  17. Re:Correct by neorush · · Score: 5, Informative

    We use Pound for load balancing which makes requests to the cache servers, works great, very configurable, supports sessions, etc.

    --
    neorush
  18. Re:Correct by skelly33 · · Score: 4, Informative

    "I'm pretty sure this means you can have more than one webserver/hostname entry, all with the same IP, and use host header names (IIS) or Name-based Virtual Host Support (Apache/others) to determine which site and certificate to connect the user to."

    ... and you would be incorrect. Name-based Virtual Hosting cannot be done with HTTPS. The reason is that the name of what is being requested is also encrypted in the SSL data. The only way for a web server such as Apache to know what virtual host to use is to look at the name. In order to get the name it would have to SSL decrypt the request. In order to SSL decrypt the request it needs to know what SSL key to use. In order to know what key to use, it would need to look it up in the name-based virtual host record. In order to do that, it needs to know the name... oops.