Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Encryption Security

30-Day Status Update On LibreSSL 164

Posted by Soulskill
from the all-the-hyperlinks-you-can-handle dept.
ConstantineM writes: "Bob Beck — OpenBSD, OpenSSH and LibreSSL developer and the director of Alberta-based non-profit OpenBSD Foundation — gave a talk earlier today at BSDCan 2014 in Ottawa, discussing and illustrating the OpenSSL problems that have led to the creation of a big fork of OpenSSL that is still API-compatible with the original, providing for a drop-in replacement, without the #ifdef spaghetti and without its own "OpenSSL C" dialect.

Bob is claiming that the Maryland-incorporated OpenSSL Foundation is nothing but a for-profit front for FIPS consulting gigs, and that nobody at OpenSSL is actually interested in maintaining OpenSSL, but merely adding more and more features, with the existing bugs rotting in bug-tracking for a staggering 4 years (CVE-2010-5298 has been independently re-discovered by the OpenBSD team after having been quietly reported in OpenSSL's RT some 4 years prior). Bob reports that the bug-tracking system abandoned by OpenSSL has actually been very useful to the OpenBSD developers at finding and fixing even more of OpenSSL bugs in downstream LibreSSL, which still remain unfixed in upstream OpenSSL. It is revealed that a lot of crude cleaning has already been completed, and the process is still ongoing, but some new ciphers already saw their addition to LibreSSL — RFC 5639 EC Brainpool, ChaCha20, Poly1305, FRP256v1, and some derivatives based on the above, like ChaCha20-Poly1305 AEAD EVP from Adam Langley's Chromium OpenSSL patchset.

To conclude, Bob warns against portable LibreSSL knockoffs, and asks the community for Funding Commitment. The Linux Foundation has not yet committed support, but discussions are ongoing. Funding can be directed to the OpenBSD Foundation."
Update: 05/18 14:28 GMT by S : Changed last paragraph to better reflect the Linux Foundation's involvement.
This discussion has been archived. No new comments can be posted.

30-Day Status Update On LibreSSL

Comments Filter:
  • by ConstantineM (965345) on Saturday May 17, 2014 @06:02PM (#47028377)
    • by Anonymous Coward on Saturday May 17, 2014 @06:14PM (#47028445)

      Go go go LibreSSL, you guys have my complete support!!! I've filed four bugs and two enhancements with OpenSSL over the years, and all of them have been ignored by the OpenSSL devs. That's lame. I knew OpenSSL was a festering crock of shit, but what were we to do. Now we have LibreSSL and I would encourage everyone to send support, even if only just a pizza, and use LibreSSL.

    • Thank you for posting this. Very insightful and enjoyable to see real world solutions that got me thinking about forking options vs sticking with and fixing initial project. Will be very interesting, my hope is libressl gets enough funding to have some positive competition and/or some cooperation with openssl folks. That way the greater community/ecosystem will win in the end. Love seeing open soure community working to resolve this complex problem. Its the embodiment of principles raised in "The cathe
  • by Antique Geekmeister (740220) on Saturday May 17, 2014 @06:28PM (#47028501)

    If you clear out the various multi-platform work for OpenSSL, _of course_ it can progress more quickly and more securely. The multi-platform work is where so much of the work has been done.

    • Re: (Score:3, Insightful)

      by sulfide (1382739)
      if its a festering insecure pile of shit who cares if it runs on more platforms? got to start over at some point, maybe work on a better foundation before more platforms...
      • Oh its insecure? Heatbleed is fixed. What *useful* exploit do you know about that the rest of us don't?

    • Like the big-endian x86 support in OpenSSL?

      OpenBSD's OpenSSH has a separate portability layer, and they're doing just fine without the extra malloc wrappers. And no big-endian x86 support, either!

    • by kiddygrinder (605598) on Saturday May 17, 2014 @06:43PM (#47028555)
      they're mostly throwing out really old multi-platform stuff, like dos, vms, ebcdic, win16 etc.
      • by ron_ivi (607351)
        Wonder if the OpenSSL guys have a good consulting business maintaining exactly those ports for ancient government projects.
    • by Warren Parker (3658033) on Saturday May 17, 2014 @06:56PM (#47028621)
      The goals of LibreSSL include preserving API/ABI compatibility (keeping LibreSSL as a drop-in replacement).
      • by Antique Geekmeister (740220) on Saturday May 17, 2014 @09:13PM (#47029317)

        API/ABI compatibility is not the same as cross platform compatibility: the difficulties with 'malloc' incompatibility that led to replace a core libc function clal are precisely the sort of thing that the LibreSSL developers can simply throw out. Replacing it for cross-platform is an excellent example of the difficulties of just such cross compatibility work: preserving the ABI for some of the odder platforms on which OpenSSL currently works is precisely the cross-platform work that the LibreSSL developers can discard. And yes, it will speed the performance of the code. (Rewriting and replacing malloc for cross-compatibility is _guaranteed_ to be slower than native libc functions.)

        I'm not suggesting that OpenSSL did not need a stripping of debris and a rewrite. I'm suggesting that if you ignore cross-compatibility and the installled user base, it's much easier to clean up old code.

    • by rev0lt (1950662)
      I'm assuming you're running a system with full blown CGA or EGA drivers, then. 1990 called and they want their DOS floppy back.
    • by unixisc (2429386)

      If you clear out the various multi-platform work for OpenSSL, _of course_ it can progress more quickly and more securely. The multi-platform work is where so much of the work has been done.

      Interestingly enough, that principle doesn't apply to OpenBSD itself, which considers it important to support dead platforms like the Alpha.

      • by ld a,b (1207022) on Saturday May 17, 2014 @10:59PM (#47029711) Journal

        This is because the C standard is full of crap such as undead(maybe it was half-unsigned?) chars and non-zero NULL and Harvard architecture hacks. If you want to be sure your program will work as intended when some starry-eyed clang/gcc developer reasons he can optimize away your security code because it is undefined behavior, you must support all the brain-dead architectures that motivated the standard, in order to serve as canaries.
        This is not related to supporting non-standard shitty libcs and OSes which run on 64-bit architectures and yet do not support 64-bit pointers.

        • Why is your security code depending on undefined behavior? And why would you port to other architectures to serve as canaries for the architecture you're presumably running on? How about a test suite instead? Do you you tie your shoes in the morning, or do you have an elaborate Rube Goldberg machine try to will them onto your feet?

      • by the_B0fh (208483) on Saturday May 17, 2014 @11:21PM (#47029779) Homepage

        They are re-writing LibreSSL for *OPENBSD* across all the hardware platforms OpenBSD runs on.

        Once they have stabilized it, another team, the Portability team, will then add a portability layer for other OSes.

        What is so difficult to understand, and why is everyone getting their knickers up in a bunch over it?

        If you like OpenSSL, continue to use it. If you want a safe, secure ssl implementation, you wait for them to finish LibreSSL and use OpenBSD. If you want a safe, secure ssl implementation on other OSes, you wait for the Portability team to finish its work. To help speed it up, donate $$ so that they can bring in more programmers.

        Any other bitching just shows what an idiot you are (not saying you're bitching, just pointing that out to the general peanut gallery).

    • by gnasher719 (869701) on Sunday May 18, 2014 @04:44AM (#47030447)

      If you clear out the various multi-platform work for OpenSSL, _of course_ it can progress more quickly and more securely. The multi-platform work is where so much of the work has been done.

      As a person making their living writing software for MacOS X and iOS, do I care about this code running in MacOS 9? I don't care one bit.

      They explain it very well: You don't need to be "multi-platform" if you are standard. Instead of "we have thirteen implementions of SSL_memcpy that run on a dozen completely outdated platforms that nobody cares about", they use memcpy and say "if your platform doesn't support a standard C function correctly, fuck you and your platform". Which is the correct approach.

      • by cnettel (836611)

        If you clear out the various multi-platform work for OpenSSL, _of course_ it can progress more quickly and more securely. The multi-platform work is where so much of the work has been done.

        As a person making their living writing software for MacOS X and iOS, do I care about this code running in MacOS 9? I don't care one bit. They explain it very well: You don't need to be "multi-platform" if you are standard. Instead of "we have thirteen implementions of SSL_memcpy that run on a dozen completely outdated platforms that nobody cares about", they use memcpy and say "if your platform doesn't support a standard C function correctly, fuck you and your platform". Which is the correct approach.

        A slightly more pragmatic approach is to keep those implementations, at least the most crucial ones, but please make sure that you use memcpy etc directly on any sane modern platform.

      • Actually, they don't even say "fuck you". They suggest you use your resources to implement that feature within your OS. Which, makes sense. I have a friend who runs tons of stuff on some Alpha servers he got in exchange for helping the university port off those systems. Basically what libreSSL is suggesting to him is a decision tree. If underlying library or function that we assume the OS should handle is not available on your system. Here are some suggestions: 1). Fund adding/implementing those nee
    • If you check the slides, there are a few areas that they failed hard on. I don't know if you're a C developer, but I've coded a bit, and the slides scared me a bit.

      Yeah, there was the "cross platform" stuff. Do we really need EBCDIC support? There's a simple rule about code. If you can't test it, you should pull it. Do you have a machine you can test on? They had Win32 Winsock code, which is a special case. But all modern Windows computers have a Berkely sockets type stack. This doesn't need special code, w

  • Multiplatform? (Score:1, Insightful)

    by im_thatoneguy (819432)

    I had read early on that most of the code they had stripped out was code supporting Windows and OSX. Is that true or was that just the initial pass? Dumping hundreds of thousands of lines of code is impressive--but if it comes at the cost of multiplatform support it's not surprising.

    • Re:Multiplatform? (Score:5, Informative)

      by _merlin (160982) on Saturday May 17, 2014 @06:35PM (#47028525) Homepage Journal

      They removed support for OpenVMS, Pyramid, Tandem classic MacOS, and other stuff like that. I don't know if they removed Windows and OSX support, but it'd be pretty silly if they did.

      • Re: (Score:2, Informative)

        by Anonymous Coward

        They did, this is BSD compatible only.

        • Re:Multiplatform? (Score:5, Informative)

          by radarjd (931774) on Saturday May 17, 2014 @07:34PM (#47028835)

          It does indeed appear to be OpenBSD only at present (from http://www.libressl.org/ [libressl.org] ):

          Multi OS support will happen once we have

                  Flensed, refactored, rewritten, and fixed enough of the code so we have stable baseline that we trust and can be maintained/improved.
                  The right Portability team in place.
                  A Stable Commitment of Funding to support an increased development and porting effort.

          • Re:Multiplatform? (Score:4, Interesting)

            by Too Much Noise (755847) on Sunday May 18, 2014 @01:45AM (#47030099) Journal

            It does indeed appear to be OpenBSD only at present (from http://www.libressl.org/ [libressl.org] ):

            ... and not really that multiplatform for future development, either, since it requires (as per the linked slide)

            Modern C string capabilities (strl[cat,cpy]) asprintf etc.

            None of the quoted functions are standard C and strl* are BSD-only - yay for GNU-BSD strn*/strl* string function wars :(

            It's all nice and good practice that they want to use the best tools available to them on OpenBSD, but not caring for what's available on other platforms is not really how one does portability and *will* produce forks, regardless how much the LibreSSL authors want to 'discourage' it.

            • by GuB-42 (2483988)

              Modern C string capabilities (strl[cat,cpy]) asprintf etc.

              None of the quoted functions are standard C and strl* are BSD-only - yay for GNU-BSD strn*/strl* string function wars :(

              It's all nice and good practice that they want to use the best tools available to them on OpenBSD, but not caring for what's available on other platforms is not really how one does portability and *will* produce forks, regardless how much the LibreSSL authors want to 'discourage' it.

              If you really want to be clean you shouldn't even use strl*/strn* functions. Either you know exactly what the strings will be and it is safe to use strcat/strcpy or you should check beforehand that you won't overflow and report an error if it happens.
              Something like this :
              size_t src_len = strlen(src) + 1;
              if (src_len > dst_len) goto error;
              memcpy(dst, src, src_len);

              strl*/strn* may be good at limiting the risks (a truncated string is better than a buffer overflow) but it shouldn't be your first line of defe

        • by rev0lt (1950662)
          From the presentation, its not. Its POSIX-compatible. I'm not sure if Windows provide an adequate entropy source they mention, but I'd assume so. They explicitly removed dead architectures (hence the VC++ reference).
          • by ld a,b (1207022)

            No it's not, it is stated quite clearly that it is written for OpenBSD. OpenBSD is mostly "POSIX-compatible" but they aren't too shy to extend libc when there isn't a good alternative. The slides and the talk mention strlcpy/cat(unfortunately ignored by C11 but widely adopted everywhere but GLIBC) and reallocarray. Only obliquely referenced is a proper kernel API (P)RNG which is not available in most platforms(using /dev/*.random instead, which has many issues[1]).
            However, like OpenSSH, you can expect the L

            • by ld a,b (1207022)

              Sorry I posted the wrong link.

              [1] http://insanecoding.blogspot.j... [blogspot.jp]

            • Re:Multiplatform? (Score:5, Insightful)

              by serviscope_minor (664417) on Sunday May 18, 2014 @03:54AM (#47030363) Journal

              using /dev/*.random instead, which has many issues[1]

              I must say, I really, really don't understand most of those issues, or more specifically, most of them seem like pointless fussing non issues.

              So a large number of them are "what if someone fucks with /dev/random". Since those are protected by permissions that basically translates as "what if someeone gets root and fucks with /dev/random" which to me translates as "what if someone gets root". My general answer to that would be "j00 r pwn3d!". As far as I can see, if someone gets root, you're completely fucked anyway, since the can do something like:

              * Simply read the local unencrypted data you're trying to send or are saving
              * Open /prov/pid/mem and read your program memory
              * Same, but writing it to compromise the RNG
              * Do the same to the /dev/kmem to compromise the RNG for builtin crypto
              * Load a kernel module
              * Screw with /vmlinuz or whatever and reboot
              * Replace the binary you believe you are running with one with compromised crypto
              * Monkey with LD_PRELOAD to bring in a compromised libcrypto
              * Replace the dynamic loader so you're not running the binary you believe you are.

              and so on. In other words it seems that once the person has the ability to compromise /dev/random, you're already fucked six ways to sunday.

              But I'm not 100% sure I've missed something in my assessment.

              • Besides the "what if someone fucks with /dev/random" issues, there are problems like "what if the sysadmin forgets to create /dev/random in chroot" (ok, sysadmin failure but it can be protected against - and better to fail hard than fallback to a bad entropy source) and especially "what if an attacker holds open a bunch of FDs so opening /dev/random fails". This last one is perhaps the most worrying.
                • Besides the "what if someone fucks with /dev/random" issues, there are problems like "what if the sysadmin forgets to create /dev/random in chroot"

                  OK, that's an interesting one I hadn't thought about. I suppose, opening /dev/random would fail (ENOENT) if the sysadmin had failed to create it. Unless the sysadmin has got the wrong permissions on /dev then one can't create a fake /dev/random.

                  I agree it is a good idea to protect against whichever sysadmin mistakes you can, though if a bad sysadmin is sufficient

            • by rev0lt (1950662)
              I was referencing this specific slide http://www.openbsd.org/papers/... [openbsd.org] They clearly state their portability goal is mostly POSIX-compatible, but after a second read it is not obvious it its being used as a base reference, as you point out.
      • Re: (Score:2, Informative)

        by Anonymous Coward

        I don't know if they removed Windows and OSX support, but it'd be pretty silly if they did.

        They removed Windows and Mac OS pre-10 ("Classic"). Mac OS X should be fine, as it's basically Unix/BSD in the user land.

        • by unixisc (2429386)

          I don't know if they removed Windows and OSX support, but it'd be pretty silly if they did.

          They removed Windows and Mac OS pre-10 ("Classic"). Mac OS X should be fine, as it's basically Unix/BSD in the user land.

          Even for userland, ain't there a divergence b/w OS-X and OpenBSD? Since the former derives from FreeBSD

      • by unixisc (2429386)

        They removed support for OpenVMS, Pyramid, Tandem classic MacOS, and other stuff like that. I don't know if they removed Windows and OSX support, but it'd be pretty silly if they did.

        Given that this is the OpenBSD team that's working on it, why should they retain support for anything else? If other people want Windows or OS-X versions of LibreSSL, let them get programmers to work on it, or get Microsoft & Apple to do it.

    • by Anonymous Coward

      The portability approach of openssl was wrong. The idea is drop all multi platform support in order to recreated in a proper way.

    • Re:Multiplatform? (Score:5, Informative)

      by Anonymous Coward on Saturday May 17, 2014 @07:40PM (#47028867)

      Partially true but...
      A key issue is that the LibreSSL developers have a different approach to portability than OpenSSL has.
      - OpenSSL keeps support for very very old platforms, old compilers, old platform and compiler bugs, etc, etc.
      - OpenSSL implements this support by sprinkling the code with different code paths, depending on which platform it's being compiled to.

      LibreSSL, like OpenSSH, takes a different approach:
      - Aim at a modern platform (OpenBSD) and a modern C dialect.
      - Support other platforms by providing implementations of whatever functions are missing on those platforms.

    • Re:Multiplatform? (Score:5, Informative)

      by thegarbz (1787294) on Saturday May 17, 2014 @07:51PM (#47028927)

      It's in the slides. They stripped out code supporting Win16 (which won't run on modern Windows anyway), and they dropped support for pre OSX versions of Mac OS.

      That said currently they are cleaning up and perfecting the code with one and only one sane target in mind, OpenBSD. The goal is to have a very good very secure fork of OpenSSL running on OpenBSD that is fully POSIX compliant. Once that has been achieved porting should be relatively pain free.

      Give them time.

      • by thegarbz (1787294)

        Replying to self: The slides actually say "mostly POSIX compliant". There's a few things which will need to be ported to make it work on other systems. But in any case dropping support for ancient systems and doing everything yourself assuming the OS provides nothing was a bad idea, maybe not in the 70s but certainly now.

    • I had read early on that most of the code they had stripped out was code supporting Windows and OSX. Is that true or was that just the initial pass? Dumping hundreds of thousands of lines of code is impressive--but if it comes at the cost of multiplatform support it's not surprising.

      Code for MacOS is thrown out. That's from MacOS 1 released in 1984 to MacOS 9, where Apple ceased all development in 2001. And there is no need for OS X code. They are writing POSIX code, and POSIX runs just fine on MacOS X and iOS.

  • There have always been security bugs, but it seems like it's only in the last couple when it's actually cost enough people enough money for people to invest in it.

  • What is this "C dialect" of which you speak? Last I checked, they are using standard compilers for the various platforms.

    Writing cross-platform code is tricky, and you need to avoid using some things that appear fine, but work differently on different platforms. That will make your code look a tad peculiar to the regular single-platform programmer; but I'd hardly call it a "dialect".

    • by TheSunborn (68004)

      It's most likely the subset of C, which was supported by most compilers 10 years ago.

    • by ConstantineM (965345) on Saturday May 17, 2014 @07:10PM (#47028681)

      OpenSSL has basically wrote their own version of libc, and all the functions they've introduced differ is some very subtle ways from what appears in libc used by the rest of the world.

      Rest assured, OpenBSD is no stranger to portable code. Just take a look at the number of platforms they support -- http://www.openbsd.org/plat.ht... [openbsd.org].

      • by cbhacking (979169) <been_out_cruisin ... OLo.com minus la> on Saturday May 17, 2014 @07:18PM (#47028729) Homepage Journal

        Yep. In fact, this was actually one of the reasons Heartbleed was so bad. Normally, anybody repeatedly attempting to read 64k chunks of heap space would hit an unallocated page pretty quickly, causing a crash alerting the victims to something being wrong. However, OpenSSL uses their own funky versions of malloc and free which pre-allocate large chunks of memory from the OS (as in, many pages), then implement their own in-process memory management on top of that. They don't free those pages back to the OS either, at least not anywhere near as soon as a sane memory manager would. This doesn't actually mean huge amounts of wasted memory - the library can mostly re-use the memory it has already requested, rather than grabbing more from the OS - but it does mean that just because something is freed doesn't mean it isn't still mapped into that process. The end result is that Heartbleed had no externally-visible evidence for the vast majority of its victims, so people didn't even know there was something to look for until the news broke.

        • OpenSSL uses their own funky versions of malloc and free which pre-allocate large chunks of memory from the OS (as in, many pages), then implement their own in-process memory management on top of that. They don't free those pages back to the OS either, at least not anywhere near as soon as a sane memory manager would.

          Common for modern allocators to snatch more than immediately requested and hang on to freed memory longer than necessary. This is the basis by which optimized/fragmentation avoidant allocators are able to function.

          • Re: (Score:2, Insightful)

            by Anonymous Coward

            Common for modern allocators to snatch more than immediately requested and hang on to freed memory longer than necessary. This is the basis by which optimized/fragmentation avoidant allocators are able to function.

            Which is why a library like OpenSSL shouldn't be doing the same thing. If the OS already does this, you end up duplicating the functionality. Also, "modern" allocators often try to have the memory space after it not be valid so they cause exceptions on reads beyond the buffer and put a canary at the end of the allocation and warn if it disappears so buffer overflows also get spotted even if they are tiny. OpenSSL failed to implement this.

      • OpenSSL has basically wrote their own version of libc

        The language you use and the libraries you use are different concepts.

        C - especially in the (most excellent) Whitesmiths compilers done by completely separated the compiler itself from the libraries; the ones they supplied were completely and totally different from what is now called libc, but everything worked. [wikipedia.org]

        This model has been (sadly) broken by things like c99 and c++.

        • by seebs (15766)

          Don't blame C99, that was true in C89 as well, and generally for pretty carefully-considered reasons.

        • by thogard (43403)

          Software Tools by Brian W. Kernighan and P. J. Plauger is a great book for understanding the concepts that are deep in the Unix philosophy.

    • by tlambert (566799) on Saturday May 17, 2014 @07:33PM (#47028823)

      What is this "C dialect" of which you speak?

      The code is largely in a subset of C; there are certain language features that make it intrinsically harder to do static analysis and checking, and which you avoid in order to avoid introducing certain classes of problems into the code. Examples include unspecified array lengths for arrays declared at the ends of structures (a c99 feature first defined with a slightly different syntax by gcc), use of function pointers that don't end up with a const qualifier after initialization, serialization and deserialization of data objects containing pointers, variant length arrays, varradic functions, with or without in-band format strings for interpretation of arguments subsequent to the format strings, etc.. For a given compiler technology, it can also include dynamic scoping, locally scoped variable, and basic block replications which introduce issues when using some code constructs. Typically, there is also a requirement for single entry/single exit, and similar techniques that can use runtime assertions (statically or optionally compiled in) in order to test on larger data sets, although by definition, such things are relative Ad Hoc, and therefore not provable in terms of code coverage.

      Similar dialects are defined by standards, such as "MISRA C" (Motor Industry Software Reliability Association), but of course, it costs money to get that standard, and it's not disclosed, so there's no open source compliance checkers, and there's no open source static analysis tools that can check the compliant code based on compliance related assumptions. One of the disclosed requirement is use of sized type everywhere, so fundamental C types are eschewed in favor of them; so you don't use "char", "short", "int", "long", and "long long", you use things like "uint8_t" and "int32_t", and so on. Another is that there are limits to allowed cyclomatic complexity, as determined by static analysis tools.

      What it pretty much comes down to is that C by itself lets you get away with things that, if you are allowed to get away with them, makes the outcome of running the program indeterminate. It's still not possible to solve/prevent the halting problem in these dialects, but it's easier to avoid getting into a situation where you have to, if you use the constrained dialect and programming style in your code.

      It's really be handy if some day MISRA or something similar became an open standard so that we could raise the level of discourse on these things, particularly as they apply to life support systems, since some people place both privacy, security of financial transactions, and so on, on an equal footing with straight life support.

  • These guys are just awesome!!! I am so grateful to the OpenBSD team for taking this on. I'm going to back up being grateful by supporting this team in any manner that I am able to, and also try to find a way to support their efforts. Be it pizza, donating cash, or maybe even help them test their latest patches and provide any feedback I can.

  • I have met many security "Gurus" over the years who's primary skill is convincing Baby boomer management types that only they can save them. They then start spouting all the usual things like PKI infrastructure. Military grade encryption, Don't roll your own, industry standard, certified, obfuscation is not security, end to end encryption, and so on with little regard to properly implementing this stuff and generally no regard as to the business needs.

    They will do an audit that will show that Russians an
    • by rev0lt (1950662) on Saturday May 17, 2014 @08:11PM (#47029007)

      Military grade encryption

      I've actually been in the military (more than a decade ago), and had contact with "top of the line" encryption systems. At the time, I was already using for myself OpenBSD and actual strong encryption. "Military Grade" is like the "Bio" sticker in food - a way of charging more for worthless shit.

      I could see being an OpenSSL guy would be a huge one

      I don't. OpenSSL has always been the disaster waiting to happen. The codebase is messy, no one really understands it, and there is no real criteria when adding stuff. I have no experience with it and I knew it was a big pile of stinking poo (its not like this hasn't been a probem before), so I hardly doubt that saying you're an OpenSSL dev would give anyone any credit.

      Usually have a Novell certification in some drawer and will defend Novell to this day.

      I'm not Novell certified (nor a security expert), but Novell DID have his awesomeness - at some level, unmatched today.
      I do agree with most of what you said, but the problem is two-fold: actual security experts are either matematicians or hardcore developers, and more often than not, cannot communicate with regular people. And no, this is not a feature. Transmiting a concrete idea to a peer without noise is the ultimate developer experience - you need to develop a subset of the language that allows you to carry your own message without being subject to change on the endpoint; And because most of the guys entwined with computers are too tied in the digital all-or-nothing approach, they think its not their fault they cannot operate on an analog world. Which, by itself, is hilarious, because "digital computers" are actually a subset of the computing field.
      In short, the problem is the nerd type. Get rid of them, have them behave and communicate like regular people, and all these bs types are out of a job. And for Pete's sake, its not like most of what is CS is hard.

      • by EmperorOfCanada (1332175) on Saturday May 17, 2014 @09:49PM (#47029503)
        Bang on. I have looked at the OpenSSL code and what I saw was terrible. It was a laundry list of not just bad coding practices but bad coding so bad that people don't even have terms for it. But as for communications I would think that upper management would be better with bad communications than with lies and over billing.

        The real problem is that truly great security is invisible. But it is easier to look cool with heroic security. It is like people believing that medicine has to taste bad and have nasty side effects to work.

        One of my favorite complaints about fake good security is when IT department implement complicated password regimes. Basically H@v1ng C0mp1icAted passwords is not actually mathematically sound. Long passwords are the real key. So complicateddogpassword is a zillion times better than insisting upon upper/lower/special characters. And then insisting upon changing the password regularly is about the stupidest thing ever. For one this costs a lot of money. The time wasted across a large company can easily be massive and a business decision not a technical one. Also companies that have frequent password changes then have frequent password forgetting, this then opens up a huge social networking hole.

        I made a bet with a relative who works for government where they recently implemented monthly password changes that I could socially hack his password with only the contents of his wallet and his last pay stub. First I looked around his desk, under his keyboard, etc, Then I phoned into IT and said that I was him and that I forgot my password. They then walked me through inputting a new one no questions asked. I asked how they knew I was him and they said, because of what number I was phoning from. I then asked but what if I called from home and they said, oh they would have asked maybe my birthdate or something.

        Then we walked around the office (it was a Sunday) and found some passwords on post-it notes and written on the bottom of keyboards. BTW his office processes documents that would be financially worthwhile for unscrupulous parties to obtain.
      • by sjames (1099)

        I don't. OpenSSL has always been the disaster waiting to happen. The codebase is messy, no one really understands it, and there is no real criteria when adding stuff. I have no experience with it and I knew it was a big pile of stinking poo (its not like this hasn't been a probem before), so I hardly doubt that saying you're an OpenSSL dev would give anyone any credit.

        Sure, many developers know that. But prior to the publicity of heartbleed, few others did. These security consultants didn't need to impress developers, they needed to impress the managers that hold the purse strings. THEY did not know what a mess OpenSSL code was. All they knew is that it was everywhere and was important to security so anyone involved simply must be an expert's expert.

        • by rev0lt (1950662)
          Most of those security consultants you talk about don't even know what OpenSSL is. They know its the certificates thinggy that its used by several packages, that's it.
  • by Megan Woods (2920951) on Saturday May 17, 2014 @07:01PM (#47028629)
    The thing about OpenSSL et al is that everyone who used it had exactly the same opportunity to review the code and make a decision about its use.
    What actually happened was that, for the most part, was that it was just used blindly as its the case with most cryptographic systems and API's.
    Whatever the motivators for the OpenSSL group were, whatever the decisions that were made or not made, the simple fact of caveat emptor still applies.

    Its good that LibreSSL is getting created, and thanks.. Seriously though, stop bashing the OpenSSL project, it is just as much the product of its community as its developers.
    • by Anonymous Coward

      If you watch the video, you'll notice Bob starts exactly by stating that: we're all guitly.

      • Re: (Score:3, Informative)

        by VortexCortex (1117377)

        Not me. I'm not guilty. Even responses to requests for help in compiling against OpenSSL were a huge red flag: "If you're not compiling from source, we won't help you." Asking to clarify behavior about things in their API you're linking against was frowned upon, so I go get get the sources, and then I see why they don't want to help anyone -- they don't know how. Told the 3rd party I was contracting for at the time that I would not recommend OpenSSL for future projects, and to use GnuTLS, Mozilla's Netw

    • Re: (Score:2, Insightful)

      by Anonymous Coward
      the bashing is legitimate when you consider that they themselves admit so much of their time was devoted to private & for-profit projects that they couldn't give the codebase proper attention and person-power, allowing it to get so bad that experienced coders had a difficult time deciphering it (no pun originally intended) If they were able to admit that themselves, then responsibly they should have immediately slammed the brakes for a proper code review, and told all clients "X amount of your money wi
      • Yea ok, I took a look at the code about a decade ago and decided I would not use it unless I was completely stuck with it. I agree with your observations it was clearly mismanaged. Thanks..
    • by rev0lt (1950662)

      The thing about OpenSSL et al is that everyone who used it had exactly the same opportunity to review the code and make a decision about its use.

      Yeah, including the OpenBSD team. (As the video mentions) And they bitched about it for years, regardless of their "proactive" approach. It took a huge vulnerability to make them take the step. Meanwhile, work is being done, yet Linux Foundation is trying to cash in on it and is probably still deciding the logo sizes for the new joint task-force or whatever to "save" OpenSSL.

      eriously though, stop bashing the OpenSSL project, it is just as much the product of its community as its developers.

      Well, its not. If there was some vague quality control, it wouldn't be the mess it is today. If it was developed by competent develope

    • Bob Beck has a pretty healthy track record of throwing verbal grenades with regards (but not limited) to open source licenses, security, and other people's code.

      That said, looking at published vulnerabilities (CVEdetails.com), OpenSSH and OpenBSD have a tremendous record for fixing (or simply not having) serious security bugs. The total number of vulnerabilities in OpenSSH (application) since 1999 is 61 (11 being DOS) and NONE have known exploits. OpenBSD (an entire OS) has 136 (57 being DOS) since 1999 wit

      • by Bert64 (520050)

        This is a very poor comparison to make...

        OpenBSD is a relatively minimal OS compared to AIX, Solaris or HPUX... There's bound to be less issues found.
        Conversely these systems (with the partial exception of solaris) are entirely closed source and developed behind closed doors, so many more security holes may have been found and fixed but never disclosed.
        Similarly finding and fixing security holes is a primary goal of OpenBSD, and they do so in an open and transparent manner.

    • by jhol13 (1087781)

      We should not stop bashing OpenSSL, ever (although I do admit it is "product of the community").
      Just to remind people that this kind of development is not acceptable, not "even" in FOSS world.

  • Comic Sans WTF? (Score:2, Redundant)

    by wiredlogic (135348)

    Who the hell writes up slides with Comic Sans as the font.

    • by feranick (858651)
      The same guy that wrote on libressl website, proudly, this:

      This page scientifically designed to annoy web hipsters. Donate now to stop the Comic Sans and Blink Tags
      http://www.libressl.org/
  • Unfortunately the summary gets several important facts wrong, including the status of support from the linux fooundation -- last status is ongoing discussions, not total ignore as the post summary says. And you can see what Bob actually said in the video jason Tubnor uploaded to youtube The real Bob Beck on OpenSSL talk [youtube.com]
    • by Anonymous Coward on Saturday May 17, 2014 @11:17PM (#47029767)

      Yes, I am extremely annoyed at the misquoting of my presentation, and my slides, by the person who wrote this summary for Slashdot. As I said in the talk, and in the slides, the Linux Foundation has not *yet* committed to support us. Discussions with them are ongoing. Saying that they have somehow "Ignored" us is both slanderous and wrong, and shows exactly what is wrong with Slashdot when they let garbage like this go up. If you have some sort of beef with the Linux Foundation, please take it up on your own time, and use your own name. Don't use mine, or LibreSSL's.

      But hey, it's slashdot, everybody expects you to be a dumbass...

      -Bob Beck

      • Thanks.
      • by Soulskill (1459) Works for Slashdot

        I've updated to fix. Thanks.

      • I clicked on the link of the post's submitter, advised them of the error and a link to this thread, and less than three hours from sending the email it was fixed. I don't pretend to understand the politics between /. and the Linux Foundation or yourself, but it might be worth telling /. directly when they make such an error.

  • by WayCool (107037) on Sunday May 18, 2014 @01:14AM (#47030013) Homepage

    I was in this talk, actually the person behind this camera and at no time did Bob state the following above:

    Linux Foundation is turning a blind eye to LibreSSL

    This is totally incorrect and should be removed. The slide doesn't even state that. Slashdot editorial committee needs to review their posts a lot closer prior to posting in a public space.

    • by rainer_d (115765)

      Slashdot editorial committee needs to review their posts a lot closer prior to posting in a public space.

      You're new here, right?

  • by VGPowerlord (621254) on Sunday May 18, 2014 @01:24AM (#47030031)

    I think people forget that GNU has their own communications library for secure sockets... [url=http://www.gnutls.org/]GnuTLS[/url].

    I know why OpenBSD won't use it (because it's LGPL), but why won't anyone else?

    • by RR (64484) on Sunday May 18, 2014 @02:07AM (#47030153)

      You mean this GnuTLS? [arstechnica.com] (It had a "goto cleanup" bug similar to Apple's "goto fail" bug.) It isn't API compatible with OpenSSL, and OpenSSL came first. OpenSSL has first mover advantage, and more people are paranoid about GPL, even if it's LGPL.

      The consensus among security experts seems to be that TLS (the protocol itself) sucks, OpenSSL sucks, GnuTLS sucks, NSS sucks, and TLS has horrible compatibility problems between implementations. They aren't giving us a lot of options, here.

      So, I find it fascinating that OpenBSD is taking OpenSSL (which sucks) and trying to make LibreSSL into something that doesn't suck. I wish them the best of luck and funding.

      • The consensus among security experts seems to be that TLS (the protocol itself) sucks, OpenSSL sucks, GnuTLS sucks, NSS sucks, and TLS has horrible compatibility problems between implementations.

        Blah blah blah ... sucks ... ... blah is shit ... blah is horrible... ad nauseam.

        Too easy to invoke. Concurrently too difficult in typical context free usage to falsify... saying "x sucks" ... just ... sucks...

  • Has anyone looked at source code for any staple unix program or library?

    These things are universally teeming in preprocessor defs for every platform you could imagine. Autotools enshrines defacto standard operating procedures with entire header files, replacement libraries, #ifdef's and funky meta programs for virtually every function and historical errata imaginable.

    Existence of these things in and of themselves is not a problem if managed properly. When I see commit comments full of snark and rage while

In seeking the unattainable, simplicity only gets in the way. -- Epigrams in Programming, ACM SIGPLAN Sept. 1982

Working...