8

I've learned the theory behind the SSL/TLS protocols and how effective they are to achieve a secure communication between clients and servers.

Do all the implementations OpenSSL, PolarSSL, MatrixSSL, and Mozilla NSS use the same underlying theory of SSL and TLS? If so, does it mean that Heartbleed bug would change the degree of promise toward SSL/TLS?

Jens Erat
  • 23,446
  • 12
  • 72
  • 96
Michael
  • 403
  • 2
  • 9
  • 3
    I can't tell what exactly you're asking. The question asked in the title is very different from the question in the body. What does it mean to "use the same underlying theory of SSL and TLS"? What research have you done? What do you mean "degree of promise toward SSL/TLS"? I suggest editing the question to elaborate on what problem you are trying to solve, what research you have done, what your current thoughts are, and what specifically you are confused about. – D.W. Aug 31 '15 at 21:57
  • 4
    Have you read through the other questions in the [tag:heartbleed] tag? Your questions seem to be answered by others there. In particular, this looks like a possible dup of http://security.stackexchange.com/q/55116/971; possibly also http://security.stackexchange.com/q/55217/971 and/or http://security.stackexchange.com/q/55249/971. Also you should read http://security.stackexchange.com/q/55343/971. – D.W. Aug 31 '15 at 21:59
  • 1
    Heartbleed is an implementation bug, not a protocol flaw. From the first link posted above. *"This is not a flaw in TLS; it is a simple memory safety bug in OpenSSL."* – RoraΖ Sep 01 '15 at 11:23

2 Answers2

21

If you look at the Heartbleed summary:

The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. This weakness allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet. SSL/TLS provides communication security and privacy over the Internet for applications such as web, email, instant messaging (IM) and some virtual private networks (VPNs).

The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop on communications, steal data directly from the services and users and to impersonate services and users.

You asked:

Does it mean that Heartbleed bug would change the degree of promise toward SSL/TLS ?

No it doesn't. You can see it's specifically about openssl. Heartbleed was a software bug, a programing error. It was not a weakness in the SSL/TLS protocol itself, like for instance CRIME or BEAST. The important lesson we learned from Heartbleed is that code should be reviewed prior to its usage. The memory leak in OpenSSL was a significant one, but programing errors exist and will exist in the future. All we can do is perform regular code reviews and simplify/clean code (OpenSSL is a bit of a mess).

The other libraries (actually any piece of software for that matter) could have easily had one as well, the main threat here is human error, which is sometimes hard to mitigate.

Lucas Kauffman
  • 54,169
  • 17
  • 112
  • 196
  • 5
    It's worth noting that the description of the bug (arbitrary memory read) is sufficient to *prove* that it's an implementation bug rather than a flaw that could exist in all implementations: there is no way to express "arbitrary memory read" in most languages (even in C you can't express it; it only arises due to UB) so there is no way it could possibly be part of the protocol. – R.. GitHub STOP HELPING ICE Sep 01 '15 at 05:29
10

SSL/TLS are protocols.

OpenSSL is an implementation of these protocols. It has two libraries: libcrypto which implements a set of encryption algorithms, and libssl which implements TLS protocols and its previous SSL.

If there is an error in the implementation of a given protocol, it does not mean the problem is the protocol itself. HeartBleed is just a problem inhereted to OpenSSL but does not exist in other TLS/SSL implementations such as LibreSSL, GnuTLS, MatrixSSL and many others.

HeartBleed is a result of a wrong implementation. HeartBleed was first introduced by Stephen Henson just an hour before 2011 new year's Eve . To be more accurate it's Robin Seggelmann, who was then a Ph.D. student at Duisburg-Essen University who developed the HeartBeat extension for OpenSSL (HeartBeat was already present in SSL2.0 specification) and suggested it to the OpenSSL lead developer project Stephen Henson who failed (did he ever check ?) to find the bug and comitted it on its repository. Others suggest that this vulnerability was known and exploited long time ago before it is announced publicly.

Stephen Henson has always been the only permanent developer of OpenSSL. There has been only one peer reviewer who helped him but not permanently. All other 11 members of OpenSSL project have nothing to do with the development properly said. As you can guess, whatever smart a developer is, he is prone to errors as long as he develops alone.