OpenSSL compliance with Linux distributions

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenSSL compliance with Linux distributions

Patrick Mooc
Hello,

I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
distribution (Lenny).

Is it possible to upgrade OpenSSL version without upgrading Linux Debian
distribution ?
If yes, up to which version of OpenSSL ?

Are all versions of OpenSSL compliant with all Linux Debian distribution ?


Thank you in advance for your answer.

Best Regards,

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Kyle Hamilton
It is never recommended to upgrade you distribution's version of OpenSSL with one you compile yourself.  Doing so will often break all software installed by the distribution that uses it.

If you need functionality from newer versions of OpenSSL, your options are to upgrade your OS version, or to install a local copy of OpenSSL and manually compile and link local copies of the applications that need the newer functionality.

(Newer versions of OpenSSL do not maintain the same Application Binary Interface (ABI), which means that binaries compiled against older versions will not correctly operate or dynamically link against newer libraries. Also, distributions such as Debian can modify the ABI in such a way that nothing distributed directly by openssl.org can be compiled to meet it without source code modification.)

-Kyle H

On Wed, Aug 5, 2020, 14:49 Patrick Mooc <[hidden email]> wrote:
Hello,

I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
distribution (Lenny).

Is it possible to upgrade OpenSSL version without upgrading Linux Debian
distribution ?
If yes, up to which version of OpenSSL ?

Are all versions of OpenSSL compliant with all Linux Debian distribution ?


Thank you in advance for your answer.

Best Regards,

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Skip Carter
In reply to this post by Patrick Mooc
Patrick,

I am also supporting servers running very old Linux systems and I can
tell you that YES you can upgrade from source. I have built
  openssl-1.1.1 from source on such systems with no problems.

On Wed, 2020-08-05 at 21:49 +0200, Patrick Mooc wrote:

> Hello,
>
> I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian 
> distribution (Lenny).
>
> Is it possible to upgrade OpenSSL version without upgrading Linux
> Debian 
> distribution ?
> If yes, up to which version of OpenSSL ?
>
> Are all versions of OpenSSL compliant with all Linux Debian
> distribution ?
>
>
> Thank you in advance for your answer.
>
> Best Regards,
>
--
Dr Everett (Skip) Carter  0xF29BF36844FB7922
[hidden email]

Taygeta Scientific Inc
607 Charles Ave
Seaside CA 93955
831-641-0645 x103


signature.asc (673 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Patrick Mooc
In reply to this post by Kyle Hamilton

Thank you very much Kyle for your quick and clear answer.

The reason why I want to upgrade OpenSSL version, is that I encounter a problem with 1 frame exchange between client and server.

This frame is the first packet sent from client to server (Client Hello Packet) and the protocol used for this packet is SSLv2.
I don't understand why, because I force the use of TLSv1 (in ssl.conf file as in application software), but only for this first exchange packet, SSLv2 is used. All other packets are well using TLSv10 as configured.

I have also searched for forcing the use of TLSv10 ciphers in OpenSSL configuration and in application software, but I didn't succeed doing so.

That's why I had in idea of upgrading OpenSSL version to avoid the use of SSLv2 protocol.


Thus, if you have any idea of how to solve my problem without upgrading OpenSSL version or Linux distribution, It would be very nice.


Thank you in advance for your answer.

Best Regards,


Le 05/08/2020 à 22:10, Kyle Hamilton a écrit :
It is never recommended to upgrade you distribution's version of OpenSSL with one you compile yourself.  Doing so will often break all software installed by the distribution that uses it.

If you need functionality from newer versions of OpenSSL, your options are to upgrade your OS version, or to install a local copy of OpenSSL and manually compile and link local copies of the applications that need the newer functionality.

(Newer versions of OpenSSL do not maintain the same Application Binary Interface (ABI), which means that binaries compiled against older versions will not correctly operate or dynamically link against newer libraries. Also, distributions such as Debian can modify the ABI in such a way that nothing distributed directly by openssl.org can be compiled to meet it without source code modification.)

-Kyle H

On Wed, Aug 5, 2020, 14:49 Patrick Mooc <[hidden email]> wrote:
Hello,

I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
distribution (Lenny).

Is it possible to upgrade OpenSSL version without upgrading Linux Debian
distribution ?
If yes, up to which version of OpenSSL ?

Are all versions of OpenSSL compliant with all Linux Debian distribution ?


Thank you in advance for your answer.

Best Regards,

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Patrick Mooc
In reply to this post by Skip Carter
Dear Skip,

Thank you also very much for your quick answer.

Ok, it could then be interesting to test an upgrade of openSSL on my system.
My project is running on a Compact Flash card, so I think that I can
test the upgrade directly on a device.


Do you have some advices, some steps to follow (in order to limit risks
as much as possible) ?


Thank you in advance.

Best Regards,


Le 05/08/2020 à 22:19, Skip Carter a écrit :

> Patrick,
>
> I am also supporting servers running very old Linux systems and I can
> tell you that YES you can upgrade from source. I have built
>    openssl-1.1.1 from source on such systems with no problems.
>
> On Wed, 2020-08-05 at 21:49 +0200, Patrick Mooc wrote:
>> Hello,
>>
>> I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
>> distribution (Lenny).
>>
>> Is it possible to upgrade OpenSSL version without upgrading Linux
>> Debian
>> distribution ?
>> If yes, up to which version of OpenSSL ?
>>
>> Are all versions of OpenSSL compliant with all Linux Debian
>> distribution ?
>>
>>
>> Thank you in advance for your answer.
>>
>> Best Regards,
>>
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

OpenSSL - User mailing list
In reply to this post by Patrick Mooc
On Wed, Aug 05, 2020 at 10:28:26PM +0200, Patrick Mooc wrote:

> Thank you very much Kyle for your quick and clear answer.
>
> The reason why I want to upgrade OpenSSL version, is that I encounter a
> problem with 1 frame exchange between client and server.
>
> This frame is the first packet sent from client to server (Client Hello
> Packet) and the protocol used for this packet is SSLv2.
> I don't understand why, because I force the use of TLSv1 (in ssl.conf file
> as in application software), but only for this first exchange packet, SSLv2
> is used. All other packets are well using TLSv10 as configured.
>
> I have also searched for forcing the use of TLSv10 ciphers in OpenSSL
> configuration and in application software, but I didn't succeed doing so.
>
> That's why I had in idea of upgrading OpenSSL version to avoid the use of
> SSLv2 protocol.
>
>
> Thus, if you have any idea of how to solve my problem without upgrading
> OpenSSL version or Linux distribution, It would be very nice.

Using an "SSLv2-compatible" ClientHello is rather distinct from actually using
the SSLv2 protocol; I believe that the former is what is happening for you.

IIRC sending any TLS extension with the ClientHello suppresses the use of the
v2-compatible format, so you might be able to do that.  (I don't remember offhand
which extensions are implemented in that old of an OpenSSL version, and
whether they're enabled in the default build, though.)

-Ben
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Patrick Mooc
Thank you Ben for your answer.

I had a look today for this point, but I didin't found anything about
extension in the OpenSSL version I use (0.9.8).

Maybe I have to modify OpenSSL configuration file (openssl.conf) and
compile OpenSSL again. I will check this tomorrow.


Best Regards,


Le 05/08/2020 à 22:46, Benjamin Kaduk a écrit :

> On Wed, Aug 05, 2020 at 10:28:26PM +0200, Patrick Mooc wrote:
>> Thank you very much Kyle for your quick and clear answer.
>>
>> The reason why I want to upgrade OpenSSL version, is that I encounter a
>> problem with 1 frame exchange between client and server.
>>
>> This frame is the first packet sent from client to server (Client Hello
>> Packet) and the protocol used for this packet is SSLv2.
>> I don't understand why, because I force the use of TLSv1 (in ssl.conf file
>> as in application software), but only for this first exchange packet, SSLv2
>> is used. All other packets are well using TLSv10 as configured.
>>
>> I have also searched for forcing the use of TLSv10 ciphers in OpenSSL
>> configuration and in application software, but I didn't succeed doing so.
>>
>> That's why I had in idea of upgrading OpenSSL version to avoid the use of
>> SSLv2 protocol.
>>
>>
>> Thus, if you have any idea of how to solve my problem without upgrading
>> OpenSSL version or Linux distribution, It would be very nice.
> Using an "SSLv2-compatible" ClientHello is rather distinct from actually using
> the SSLv2 protocol; I believe that the former is what is happening for you.
>
> IIRC sending any TLS extension with the ClientHello suppresses the use of the
> v2-compatible format, so you might be able to do that.  (I don't remember offhand
> which extensions are implemented in that old of an OpenSSL version, and
> whether they're enabled in the default build, though.)
>
> -Ben
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Hubert Kario
On Thursday, 6 August 2020 21:24:32 CEST, Patrick Mooc wrote:
> Thank you Ben for your answer.
>
> I had a look today for this point, but I didin't found anything
> about extension in the OpenSSL version I use (0.9.8).
>
> Maybe I have to modify OpenSSL configuration file
> (openssl.conf) and compile OpenSSL again. I will check this
> tomorrow.

changing configuration file won't affect behaviour of OpenSSL in your
situation

I don't remember if this was behaviour for 0.9.8, but IIRC 1.0.1 would send
SSLv2 compatible Client Hello only if there were any SSLv2 compatible
ciphers

try explicitly disabling RC4-MD5 cipher, that may help

> Best Regards,
>
>
> Le 05/08/2020 à 22:46, Benjamin Kaduk a écrit :
>> On Wed, Aug 05, 2020 at 10:28:26PM +0200, Patrick Mooc wrote: ...
>
>
>

--
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Dan Kegel-2
In reply to this post by Patrick Mooc
Suggestion: get the source for the exact same version of openssl your system uses, and rebuild it with sslv2 disabled.

e.g.

sudo apt install build-essential devscripts
sudo apt build-dep openssl
mkdir tmp
cd tmp
apt source openssl
cd openssl-*
gedit debian/rules     # see below
debuild -b -uc -us
cd ..
sudo apt install *.deb

While editing debian/rules in gedit, change the line

CONFARGS  = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms

to add the no-ssl2 argument, or something like that.  See https://wiki.openssl.org/index.php/Compilation_and_Installation

But be careful!  You probably want to have the original system .deb files for its openssl in an origopenssl dir
so you can reinstall them with 'sudo dpkg -i origopenssl/*.deb' when this breaks.

- Dan


On Wed, Aug 5, 2020 at 1:28 PM Patrick Mooc <[hidden email]> wrote:

Thank you very much Kyle for your quick and clear answer.

The reason why I want to upgrade OpenSSL version, is that I encounter a problem with 1 frame exchange between client and server.

This frame is the first packet sent from client to server (Client Hello Packet) and the protocol used for this packet is SSLv2.
I don't understand why, because I force the use of TLSv1 (in ssl.conf file as in application software), but only for this first exchange packet, SSLv2 is used. All other packets are well using TLSv10 as configured.

I have also searched for forcing the use of TLSv10 ciphers in OpenSSL configuration and in application software, but I didn't succeed doing so.

That's why I had in idea of upgrading OpenSSL version to avoid the use of SSLv2 protocol.


Thus, if you have any idea of how to solve my problem without upgrading OpenSSL version or Linux distribution, It would be very nice.


Thank you in advance for your answer.

Best Regards,


Le 05/08/2020 à 22:10, Kyle Hamilton a écrit :
It is never recommended to upgrade you distribution's version of OpenSSL with one you compile yourself.  Doing so will often break all software installed by the distribution that uses it.

If you need functionality from newer versions of OpenSSL, your options are to upgrade your OS version, or to install a local copy of OpenSSL and manually compile and link local copies of the applications that need the newer functionality.

(Newer versions of OpenSSL do not maintain the same Application Binary Interface (ABI), which means that binaries compiled against older versions will not correctly operate or dynamically link against newer libraries. Also, distributions such as Debian can modify the ABI in such a way that nothing distributed directly by openssl.org can be compiled to meet it without source code modification.)

-Kyle H

On Wed, Aug 5, 2020, 14:49 Patrick Mooc <[hidden email]> wrote:
Hello,

I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
distribution (Lenny).

Is it possible to upgrade OpenSSL version without upgrading Linux Debian
distribution ?
If yes, up to which version of OpenSSL ?

Are all versions of OpenSSL compliant with all Linux Debian distribution ?


Thank you in advance for your answer.

Best Regards,

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Patrick Mooc
In reply to this post by Hubert Kario
Hello Hubert,

Thank you for your answser.

I already did this test, but also without success.

Best Regards,


Le 07/08/2020 à 18:18, Hubert Kario a écrit :

> On Thursday, 6 August 2020 21:24:32 CEST, Patrick Mooc wrote:
>> Thank you Ben for your answer.
>>
>> I had a look today for this point, but I didin't found anything about
>> extension in the OpenSSL version I use (0.9.8).
>>
>> Maybe I have to modify OpenSSL configuration file (openssl.conf) and
>> compile OpenSSL again. I will check this tomorrow.
>
> changing configuration file won't affect behaviour of OpenSSL in your
> situation
>
> I don't remember if this was behaviour for 0.9.8, but IIRC 1.0.1 would
> send
> SSLv2 compatible Client Hello only if there were any SSLv2 compatible
> ciphers
>
> try explicitly disabling RC4-MD5 cipher, that may help
>
>> Best Regards,
>>
>>
>> Le 05/08/2020 à 22:46, Benjamin Kaduk a écrit :
>>> On Wed, Aug 05, 2020 at 10:28:26PM +0200, Patrick Mooc wrote: ...
>>
>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Patrick Mooc
In reply to this post by Dan Kegel-2

Hello,

I tried to follow your procedure but I saw that I don't have same folders.

That lets me know that I forgot to give an important point concerning my problem :
the Debian distribution I use, is not on a PC, but it is an embedded one. It is a Qt project (also an old version of course, version 4.7)

I made some new tests today and it seems that there is only one case in which the SSLv2 Client Hello packet is sent.
It happens on a Soap call in a php scripting file.
Thus I have to see how to constraint this Soap call not to use SSLv2 protocol.
I guess that the php library used is also an old one, I have to check this.

When this piece of code is not called, Client Hello packet are well sent with TLSv10 protocol.

Best Regards,


Le 07/08/2020 à 18:33, Dan Kegel a écrit :
Suggestion: get the source for the exact same version of openssl your system uses, and rebuild it with sslv2 disabled.

e.g.

sudo apt install build-essential devscripts
sudo apt build-dep openssl
mkdir tmp
cd tmp
apt source openssl
cd openssl-*
gedit debian/rules     # see below
debuild -b -uc -us
cd ..
sudo apt install *.deb

While editing debian/rules in gedit, change the line

CONFARGS  = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms

to add the no-ssl2 argument, or something like that.  See https://wiki.openssl.org/index.php/Compilation_and_Installation

But be careful!  You probably want to have the original system .deb files for its openssl in an origopenssl dir
so you can reinstall them with 'sudo dpkg -i origopenssl/*.deb' when this breaks.

- Dan


On Wed, Aug 5, 2020 at 1:28 PM Patrick Mooc <[hidden email]> wrote:

Thank you very much Kyle for your quick and clear answer.

The reason why I want to upgrade OpenSSL version, is that I encounter a problem with 1 frame exchange between client and server.

This frame is the first packet sent from client to server (Client Hello Packet) and the protocol used for this packet is SSLv2.
I don't understand why, because I force the use of TLSv1 (in ssl.conf file as in application software), but only for this first exchange packet, SSLv2 is used. All other packets are well using TLSv10 as configured.

I have also searched for forcing the use of TLSv10 ciphers in OpenSSL configuration and in application software, but I didn't succeed doing so.

That's why I had in idea of upgrading OpenSSL version to avoid the use of SSLv2 protocol.


Thus, if you have any idea of how to solve my problem without upgrading OpenSSL version or Linux distribution, It would be very nice.


Thank you in advance for your answer.

Best Regards,


Le 05/08/2020 à 22:10, Kyle Hamilton a écrit :
It is never recommended to upgrade you distribution's version of OpenSSL with one you compile yourself.  Doing so will often break all software installed by the distribution that uses it.

If you need functionality from newer versions of OpenSSL, your options are to upgrade your OS version, or to install a local copy of OpenSSL and manually compile and link local copies of the applications that need the newer functionality.

(Newer versions of OpenSSL do not maintain the same Application Binary Interface (ABI), which means that binaries compiled against older versions will not correctly operate or dynamically link against newer libraries. Also, distributions such as Debian can modify the ABI in such a way that nothing distributed directly by openssl.org can be compiled to meet it without source code modification.)

-Kyle H

On Wed, Aug 5, 2020, 14:49 Patrick Mooc <[hidden email]> wrote:
Hello,

I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
distribution (Lenny).

Is it possible to upgrade OpenSSL version without upgrading Linux Debian
distribution ?
If yes, up to which version of OpenSSL ?

Are all versions of OpenSSL compliant with all Linux Debian distribution ?


Thank you in advance for your answer.

Best Regards,

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Viktor Dukhovni
In reply to this post by Patrick Mooc
On Thu, Aug 06, 2020 at 09:24:32PM +0200, Patrick Mooc wrote:
> Thank you Ben for your answer.
>
> I had a look today for this point, but I didin't found anything about
> extension in the OpenSSL version I use (0.9.8).

If I am mistaken, OpenSSL 0.9.8 shuld have support for the SNI
extension.  It also supports using SSL_CTX_set_options() to set the
SSL_OP_NO_SSLv2 option, which is likely the simplest way to ensure that
SSLv2 is not used.

These days one should probably also disable SSLv3 (via SSL_OP_NO_SSLv2),
but even with that, there are likely some unaddressed security defects
in OpenSSL 0.9.8 that make it unwise to continue using it in general.

--
    VIktor.
Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

OpenSSL - User mailing list
In reply to this post by Skip Carter
The key thing to do is to make those client applications not request the
ssl23-method from OpenSSL 0.9.x .
ssl23 explicitly requests this backward-compatibility feature while
OpenSSL 3.x.x apparently deleted the
ability to respond to this "historic" TLS hello format, which is also
sent by some not-that-old web browsers.


On 05/08/2020 22:19, Skip Carter wrote:

> Patrick,
>
> I am also supporting servers running very old Linux systems and I can
> tell you that YES you can upgrade from source. I have built
>    openssl-1.1.1 from source on such systems with no problems.
>
> On Wed, 2020-08-05 at 21:49 +0200, Patrick Mooc wrote:
>> Hello,
>>
>> I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
>> distribution (Lenny).
>>
>> Is it possible to upgrade OpenSSL version without upgrading Linux
>> Debian
>> distribution ?
>> If yes, up to which version of OpenSSL ?
>>
>> Are all versions of OpenSSL compliant with all Linux Debian
>> distribution ?
>>
>>
>> Thank you in advance for your answer.
>>
>> Best Regards,
>>


Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  http://www.wisemo.com
Transformervej 29, 2860 Soborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

Reply | Threaded
Open this post in threaded view
|

Re: OpenSSL compliance with Linux distributions

Matt Caswell-2


On 18/08/2020 05:10, Jakob Bohm via openssl-users wrote:
> The key thing to do is to make those client applications not request the
> ssl23-method from OpenSSL 0.9.x .
> ssl23 explicitly requests this backward-compatibility feature while
> OpenSSL 3.x.x apparently deleted the
> ability to respond to this "historic" TLS hello format, which is also
> sent by some not-that-old web browsers.

This capability has not been deleted from OpenSSL 3.0. It is still able
to respond to SSLv2 format ClientHellos. Although testing that does
reveal a bug (which may actually be the same one as reported by John
Baldwin in the thread "Testing TLS 1.0 with OpenSSL master").

Matt


>
>
> On 05/08/2020 22:19, Skip Carter wrote:
>> Patrick,
>>
>> I am also supporting servers running very old Linux systems and I can
>> tell you that YES you can upgrade from source. I have built
>>    openssl-1.1.1 from source on such systems with no problems.
>>
>> On Wed, 2020-08-05 at 21:49 +0200, Patrick Mooc wrote:
>>> Hello,
>>>
>>> I'm using an old version of OpenSSL (0.9.8g) on an old Linux Debian
>>> distribution (Lenny).
>>>
>>> Is it possible to upgrade OpenSSL version without upgrading Linux
>>> Debian
>>> distribution ?
>>> If yes, up to which version of OpenSSL ?
>>>
>>> Are all versions of OpenSSL compliant with all Linux Debian
>>> distribution ?
>>>
>>>
>>> Thank you in advance for your answer.
>>>
>>> Best Regards,
>>>
>
>
> Enjoy
>
> Jakob