Slashdot Mirror


Once a Forgotten Child, OpenSSL's Future Now Looks Bright

Trailrunner7 writes: Rarely does anything have a defined turning point in its history, a single day where people can point and say that was the day everything changed. For OpenSSL, that day was April 7, 2014, the day that Heartbleed became part of the security lexicon. Heartbleed was a critical vulnerability in the venerable crypto library. OpenSSL is everywhere, in tens of thousands of commercial and homespun software projects. And so too, as of last April, was Heartbleed, an Internet-wide bug that leaked enough memory that a determined hacker could piece together anything from credentials to encryption keys.

"Two years ago, it was a night-and-day difference. Two years ago, aside from our loyal user community, we were invisible. No one knew we existed," says Steve Marquess, cofounder, president and business manager of the OpenSSL Foundation, the corporate entity that handles commercial contracting for OpenSSL. "OpenSSL is used everywhere: hundreds, thousands of vendors use it; every smartphone uses it. Everyone took that for granted; most companies have no clue they even used it." To say OpenSSL has been flipped on its head—in a good way—is an understatement.

Heartbleed made the tech world realize that the status quo wasn't healthy to the security and privacy of ecommerce transactions and communication worldwide. Shortly after Heartbleed, the Core Infrastructure Initiative was created, uniting The Linux Foundation, Microsoft, Facebook, Amazon, Dell, Google and other large technology companies in funding various open source projects. OpenSSL was the first beneficiary, getting enough money to hire Dr. Steve Henson and Andy Polyakov as its first full-timers. Henson, who did not return a request to be interviewed for this article, is universally known as the one steady hand that kept OpenSSL together, an unsung hero of the project who along with other volunteers handled bug reports, code reviews and changes.

3 of 76 comments (clear)

  1. Re:A giant pile of crap by Anonymous Coward · · Score: 2, Interesting

    To be fair, EAY wrote SSLeay in the mid-90s when standards were a secondary consideration, and compilers frequently generated incorrect code - while being infrequently updated. On top of that, there were no practical cross-platform build systems. It's easy to look at 'clean' code like PolarSSL, GnuTLS, etc., and conclude that they're better. The fact is, they haven't really been tested. I don't see countermeasures for cache timing attacks in many of the come-lately SSL/TLS libraries. The GnuTLS 'bignum' code is fucking amateur hour stuff. Even the bloated and exception-unsafe GMP library has better secure functions, despite the fact that it drops dead at the first sign of trouble, and is utterly unsuitable for embedded or secure environments.

    LibreSSL is going to be another 'NIH' project that will spend the next decade being patched by people who realise that crypto software can't be left to dilettantes.

  2. Re:Paid Advertisement by Kjella · · Score: 4, Interesting

    Nah. The OpenSSL codebase will get cleaned up and become trustworthy, and it'll continue to be used. The other forks, especially LibreSSL and Google's BoringSSL, will be used, too... and that's a good thing. Three fairly API-compatible but differing implementations will break up the monoculture so bugs found in one of them (and they *will* have bugs) hopefully won't hit all three of them. It's tempting to see such apparent duplication of effort as wasteful, but it's really not. Diversity is good and competition is good.

    Has the fact that there's three major BSDs and one Linux been in BSD's favor? I have to pick an implementation and live with its bugs, either my machine is compromised or it's not. And those using other implementations will be hit with other bugs compromising their machines. Does it really provide any tangible benefit that not all of us are hit at the same time with the same bug, when we're all vulnerable some of the time? You divide the number of targets, but you also divide the number of developers and testers. For that matter, the eyes in "many eyes makes all bugs shallow" as well. And if you think the only true test is the test of time, the total value and exposure to the bad guys.

    Am I supposed to swap browsers every time a vulnerability is found in Firefox/Chrome/Safari/IE? And wouldn't that quickly lead to a monoculture as a project dies every time it screws up big? Or if not, what exactly are the other implementations going to do for me? Software isn't like experimental physics where you want independent verification that if you try the same thing you get the same result. It's more like math where you need a formal proof that the code will always do what you intend for it to do and that it stands up under scrutiny.

    We're not talking about something that must have a fail rate, if you get it right it's good. For example look at Apache and IIS, they're massively exposed yet there's very, very few exploits of significance. Okay so that's two not one implementation, but lack of diversity is mostly a problem when you have one bad product like java or flash that is a serial offender. Nobody has a problem with a monoculture that works and there's many of those. Don't allow crap in, code defensively, have reviews and fix the security bugs that get past you in a timely fashion and there won't be any need to reinvent the wheel.

    --
    Live today, because you never know what tomorrow brings
  3. What's up with the diffs? by gustygolf · · Score: 4, Interesting

    The diffs are huge every single time, despite the releases being boring bug and security fixes. Things that shouldn't need more than twenty lines each.

    % diff -rNU 0 openssl-1.0.1[lm]|wc
        675635 2681760 21556437

    Twenty-one megabytes. 675 thousand lines changed.

    Here's the changelog between 1.0.1L and 1.0.1M, for two months of bugfixes:


      Changes between 1.0.1l and 1.0.1m [19 Mar 2015]

        *) Segmentation fault in ASN1_TYPE_cmp fix
            [detailed descriptions snipped]
        *) ASN.1 structure reuse memory corruption fix
        *) PKCS7 NULL pointer dereferences fix
        *) DoS via reachable assert in SSLv2 servers fix
        *) Use After Free following d2i_ECPrivatekey error fix
        *) X509_to_X509_REQ NULL pointer deref fix
        *) Removed the export ciphers from the DEFAULT ciphers

    Twenty-one megabytes for seven fixes. What the hell are they doing with their source code to create that much churn?

    --
    "Slow Down Cowboy! It's been 58 minutes since you last successfully posted a comment" -- slashdot, driving users away.