5 ms·
Genuinely: why is anyone still using OpenSSL vs LibreSSL?
by Throwaway1771 6y ago
Genuinely: why is anyone still using OpenSSL vs LibreSSL?
- inetknght 6y agoBecause OpenSSL is everywhere and everything requires it and all instructions say `do apt-get install libopenssl-dev` or something. Or the setup script does exactly that. And changing that introduces a lot of risk.
- hannob 6y agoLibreSSL has long outlived its purpose. It was started in a situation where OpenSSL had bad security practices, a chaotic coding style and plenty of obsolete garbage. None of that is true any more. If you look at the vuln posted here it's a sign how mature OpenSSL became: They rate it HIGH, but it's a rather insignificant vuln that will barely matter in practice.
- nwmcsween 6y agoThe openssl api is still a painful, compare it with libtls which is much nicer. if I were to use something today I would probably use https://github.com/michaelforney/libtls-bearssl https://github.com/michaelforney/libtls-bearssl which is a wrapper around bearssl that exposes a libtls api.
- agwa 6y agoYou should only use BearSSL when you control the server and the certificate that it uses, since BearSSL's certificate validation implementation is intentionally limited so that it can be more efficient on embedded devices at the cost of being unable to correctly handle all publicly-trusted certificates. See https://medium.com/@sleevi_/path-building-vs-path-verifying-implementation-showdown-39a9272b2820 https://medium.com/@sleevi_/path-building-vs-path-verifying-...
- AndyMcConachie 6y agoDependencies. For example, the Python TLS library of record is based on OpenSSL. OpenSSL is old and supports lots of platforms. Some people need to use OpenSSL because of the platform they're running on. I do hope the situation gets better, and over time we have seen competing TLS libraries replace OpenSSL in more and more places. It's not an easy problem to solve.
- traceroute66 6y agoGenuinely ? Seriously ? You don't have to look far in the man page to see the distinct lack of feature parity. Its been a while since I looked, but IIRC, there's some pretty major stuff missing like PKCS11 which means you can't do the CLI smartcard stuff you can do with OpenSSL.
- da_big_ghey 6y agoOpenSSL is FIPS-certified. It supports everything and its mother. LibreSSL also breaks ABI pretty regularly. Finally, OpenSSL is the standard: no one ever got fired for buying IBM, or for using OpenSSL.
- toast0 6y agoIs FIPS certification a good thing? Does anyone actually run in FIPS mode? I mean, I wouldn't be surprised if it lets you check a box on PCI checklist; but only people who are forced to use that checklist.
- hannob 6y agoFIPS and similar certifications (Common Criteria) have a pretty bad reputation. Plenty of pretty severe crypto vulns that should've been caught by certifications were missed, and more importantly that didn't lead to any critical reflection on the side of the certification bodies. But it's common that if you work with governments that FIPS certification is a requriement.
- kjetijor 6y ago3DES is still an approved security function for FIPS 140-2 :) So yea - great stuff!
- X-Istence 6y agoYes, there are plenty of regulated environments (whether government or commercial) that require FIPS because it means the specified ciphers are all approved and the libraries are to have passed certification. It's a pain in the ass at times because it means things like Ed25519 and ECDSA not over NIST certified curves is not allowed...
- ziml77 6y agoBetter question is why use OpenSSL over the platform's native TLS library? It's incredibly annoying dealing with OpenSSL when MITMing the connection or just working internal services that I don't want to see the insecure connection warnings on.
- Natsu 6y agoYou should make and trust an internal CA to issue certs for those, at least. You just have to add your root to whatever CAfile equivalent the program uses.
- ziml77 6y agoConfiguring the internal CA is exactly the issue here. Programs that use OpenSSL don't respect the Windows cert store. I have a couple environment variables set to point to a PEM file with the cert, but that only helps in a few cases. Sometimes the easiest thing is going the risky route of using a flag to disable to cert check.
- toast0 6y agoUsing a library you control (even if it's fairly bad) instead of the platform TLS library is super useful. Some platforms don't have a TLS library, but TLS is sometimes required. Some platforms have an outdated library and no reasonable update method. Some platforms have nasty bugs in their libraries. Some platforms have very inconsistent libraries depending on version. You might want to send extensions the platform library doesn't support (SNI used to be pretty hard to use), or to manage the acceptable CA roots (which I understand you dislike). You might want more control over ciphers, so as not to offer ciphers that are outdated. Having one buggy library you ship with your code is better than dealing with a different buggy platform library for each platform.
- jesboat 6y agoOn many platforms, OpenSSL is the standard TLS library.
- asveikau 6y agoThere was an OpenBSD erratum about this today, so I think libressl was affected. I do seem to recall a few OpenSSL advisories in the last few years for which libressl was not vulnerable though.
- 1over137 6y agoThis I guess? https://marc.info/?l=openbsd-announce&m=160744667011118&w=2 https://marc.info/?l=openbsd-announce&m=160744667011118&w=2