|
|
Log in / Subscribe / Register

OpenSSL 1.0.0 released

OpenSSL 1.0.0 released

Posted Mar 30, 2010 7:09 UTC (Tue) by rsidd (guest, #2582)
In reply to: OpenSSL 1.0.0 released by patrick_g
Parent article: OpenSSL 1.0.0 released

Perhaps the OpenSSL source is written deliberately to keep average programmers away? Cryptography is hard. Remember when Debian's ill- considered patch compromised millions of SSH servers?

It is not clear to me at all why the guy was messing with the OpenSSL source.


to post comments

OpenSSL 1.0.0 released

Posted Mar 30, 2010 7:13 UTC (Tue) by dlang (guest, #313) [Link] (7 responses)

The guy found a real bug in the source. His fix was wrong, but it was a real bug he was trying to fix.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 8:03 UTC (Tue) by rsidd (guest, #2582) [Link]

What bug?

OpenSSL 1.0.0 released

Posted Mar 30, 2010 8:10 UTC (Tue) by hppnq (guest, #14462) [Link] (2 responses)

Hmm. This guy spent eight hours on producing three scripts with messed up hashbangs to perform the most basic of all SSL operations, and another full day on looking for main() in openssl(1).

So, I just skimmed over the rant, but I would be very surprised if this guy actually found a bug in OpenSSL. What is it?

OpenSSL 1.0.0 released

Posted Mar 30, 2010 13:46 UTC (Tue) by jond (subscriber, #37669) [Link] (1 responses)

The OP was replying to a comment about the Debian SSL debacle. s/he was
referring to the Debian patch as attempting to fix a real bug in openssl,
not the rant.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 14:13 UTC (Tue) by hppnq (guest, #14462) [Link]

Ah yes, thanks for pointing that out, I misread the "guy" references. ;-)

OpenSSL 1.0.0 released

Posted Mar 30, 2010 13:49 UTC (Tue) by jbardin (guest, #54917) [Link] (2 responses)

A real bug only as reported by valgrind. OpenSSH was purposely using a chunk of unallocated memory as part of its source of entropy.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 14:36 UTC (Tue) by mpr22 (subscriber, #60784) [Link]

To my mind, if it didn't have a suitably forceful comment attached to it, it was a bug even if it was deliberate. ("Yes, we really do mean to use uninitialized memory as an entropy source. Yes, we know code validation tools will whine about it.")

OpenSSL 1.0.0 released

Posted Mar 30, 2010 16:53 UTC (Tue) by vonbrand (guest, #4458) [Link]

"Uninitialized memory" != "random contents". This was not a valid entropy source.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 7:56 UTC (Tue) by MisterIO (guest, #36192) [Link]

This argument is so wrong!

OpenSSL 1.0.0 released

Posted Mar 30, 2010 8:36 UTC (Tue) by mpr22 (subscriber, #60784) [Link] (5 responses)

Your argument fails for the simple reason that it clearly didn't keep that guy away. (I'm inclined to say that it also amounts to advocating security through obscurity.)

My recollection that guy did find something that could fairly be called a bug (something along the lines of an array being algorithmically transformed without first being initialized to a state of known quality) and fix it. Unfortunately, another piece of (entirely correct) code looked sufficiently like the buggy code that he thought it was broken in the same way and "fixed" it, resulting in the Debian keystrength fiasco.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 9:39 UTC (Tue) by rsidd (guest, #2582) [Link] (4 responses)

The Debian guy was a different guy. (I hope.) I was, partly, being
facetious. But though OpenSSL can't stop random people poking around in
their code (it is open source, after all), the high level of expertise
required would hopefully deter local modifications downstream (like the
Debian incident).

OpenSSL 1.0.0 released

Posted Mar 30, 2010 10:38 UTC (Tue) by patrick_g (subscriber, #44470) [Link] (3 responses)

>>> the high level of expertise required would hopefully deter local modifications downstream (like the Debian incident).

Well Marco Peereboom (author of the text "OpenSSL is written by monkeys") is an OpenBSD hacker so he must have the knowledge to change the code.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 11:49 UTC (Tue) by hppnq (guest, #14462) [Link] (2 responses)

You may want to reconsider.

Unhindered by what can only be called a limited grasp of the delicate material at hand, Mr Peereboom wrote a library that apparently is supposed to replace OpenSSL, called assl (forget that name), which currently targets a dazzling two platforms. It does not seem to add anything useful, but it does contain roughly 10% goto statements, 90% of those in a macro.

I am not sure whether this code is in OpenBSD. Certainly, it does not belong there. Oh, and I forgot to congratulate the OpenSSL team on an excellent piece of work!

OpenSSL 1.0.0 released

Posted Mar 30, 2010 12:07 UTC (Tue) by rsidd (guest, #2582) [Link] (1 responses)

I just looked it up. It's not supposed to replace OpenSSL. It's a wrapper
offering an alternative API. And there's nothing wrong with GOTO statements
when used appropriately: the linux kernel has plenty of those too. It is
often the cleanest and most readable way to break out of nested loops.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 14:09 UTC (Tue) by hppnq (guest, #14462) [Link]

From the project webpage and the source code, I can only conclude that the assl API is definitely meant to replace the OpenSSL API, which you are quite strongly encouraged not to use.

Not even the author would dream of replacing the OpenSSL implementation with his own. It speaks volumes that the quite trivial problem he set out to solve has, of course, not been implemented in his library. Instead, he chose to partially implement what was already there, poorly. The multiple goto's in every subroutine are indicative of the general quality of the code.

I would recommend that newbie SSL application programmers take some time and learn to use the OpenSSL API -- it is not that hard and you will come away with precious knowledge. For a quick and dirty job, read the sample code that comes with OpenSSL instead, and live happily.

OpenSSL 1.0.0 released

Posted Mar 30, 2010 16:51 UTC (Tue) by vonbrand (guest, #4458) [Link]

If cryptography is hard to get right, don't make it even harder to follow by obfuscated programming. I'd very much want to be able to read the code and check it is doing it right myself.

OpenSSL 1.0.0 released

Posted Mar 31, 2010 4:39 UTC (Wed) by njs (subscriber, #40338) [Link] (2 responses)

> Perhaps the OpenSSL source is written deliberately to keep average programmers away?

It's an interesting thought, but if you pick an average awesome programmer and an average awful programmer, I'm pretty sure it's the latter that is more willing to work with horribly ugly code (certainly they produce the bulk of it).

OpenSSL 1.0.0 released

Posted Mar 31, 2010 4:49 UTC (Wed) by rsidd (guest, #2582) [Link] (1 responses)

I think ugliness is in the eye of the beholder. Take a look at the getopt macros in old version of FreeBSD's chat.c (sadly replaced with "real" getopt since 2008).

OpenSSL 1.0.0 released

Posted Mar 31, 2010 13:12 UTC (Wed) by nix (subscriber, #2304) [Link]

Even the commit comments describe them as 'IOCCC-worthy'. They are. Ow. I
like the way that every single bit of whitespace was removed, perhaps
because the code runs faster without all those annoying spaces in the
source code.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds