A tale of software maintenance: OpenSSL and EVP_CHECK_DES_KEY
marc.info
marc.info
The LibreSSL solution is the correct one here: if your code is old and unused, just delete it ffs. The argument that "we might still need it in the future!" is such a lame one. No you don't, and even if you do it'll be easier to just rewrite it than to try and make years-old code work in a modern environment. In the meantime you've only succeeded at cluttering your code with garbage that has no relevance whatsoever.
I sort of suspect that the OpenSSL developer just fixed the compilation error, because it's actually easier than deleting code completely.
/ sw_vers
ProductName: Mac OS X
ProductVersion: 10.11
BuildVersion: 15A282a
/ /usr/bin/ssh -V
OpenSSH_6.9p1, LibreSSL 2.1.7
I guess it is ready for productionSo given that we live in a world of imperfect code, it's a question of what's least-bad. OpenSSL is known to be a horrific mess of crufty under-maintained code, which is a big part of why it keeps having major security breaches. Like this article points out - nobody has bothered to compile this option for more than a decade. Options lead to internal complexity which leads to crap code that nobody can/will maintain, which is the wrong path for security-critical software. If nobody uses it then get rid of it - if someone wants it they can dig it out of revision history.
The OpenBSD folks are happy enough with LibreSSL that they released it with OpenBSD 5.6, which is good enough for me. I'm sure there's some esoteric vulnerabilities lurking and maybe the cleanup introduced a few new ones, that's just the nature of non-trivial software. But in the big picture I just can't see it as being any more vulnerable than OpenSSL, and that seems to have been borne out in their respective track records recently.
See, for example, shellshock, which was in a piece of software that's been battletested by most people who use a command-line for the past, oh, twenty years or so.
Whether or not the developers actually know what they're doing with respect to writing secure software in the language of the project and are sufficiently OCD in their process to catch most mistakes before they reach production is very, very much more important than "battle tested for X number of years".
I started testing nginx compiled against LibreSSL from before portable was official[0].
If your goal is security, as far as I'm concerned it's met that goal since day one. If the goal is stability, the slimmer codebase is certainly no less stable than OpenSSL.
There were however, several occasions places where code didn't compile for various reasons. Some were fixed by nginx, and some were fixed with PRs I sent LibreSSL. Key to this is that there were situations where newer releases of LibreSSL broke my build process.
If you were on a project less ubiquitous than nginx, you may find that sort of hacking a waste of time.
If you have the resources to use it, it's posts like this that strongly turn me in the direction of LibreSSL.
1) 11 years. The code in question was 11 years old. Another example not to rely on "given enough eyeballs, all bugs are shallow". 11 freakin years.
2) Security off by default is yet another example indicating how security receives lower priority - in a library whose main aim is to secure data transport no less!
It all adds up to security debt - at some point it will be paid.
But I don't remember any new facts about debian weakening PRNG since.
PS: Ok, I also missed debian infortunately also weakening the openSSL PRNG until 2008.
https://www.schneier.com/blog/archives/2008/05/random_number...
OpenBSD could forgot one day. As if 50 core devs pretending to know their jobs could do better than 10000 devs with tremenduous amounts of guidelines and administrative rules and a fair amount of political commissars.
Lol. Bureaucracy will always beat amateurs.
Trying to paper over it and pretending it was no big deal is the best way to ensure that similar things will happen again.
Very funny way of writing ... Thank you so much for this :D