logo
Apache Lounge
Webmasters

 

About Forum Index Downloads Search Register Log in RSS X


Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
Post new topic   Forum Index -> Building & Member Downloads View previous topic :: View next topic
Reply to topic   Topic: OpenSSL-fips for Apache 2.4.12, 2.4.16, 2.4.17
Author
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Mon 06 Oct '14 15:57    Post subject: OpenSSL-fips for Apache 2.4.12, 2.4.16, 2.4.17 Reply with quote

I have built a replacement for the OpenSSL Apache files with FIPS 140 enabled:

https://phpdev.toolsforresearch.com/openssl-1.0.2d-fips-2.4.17-x86-vc14.zip
https://phpdev.toolsforresearch.com/openssl-1.0.2d-fips-2.4.17-x64-vc14.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.17-x86-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.17-x64-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.17-x86-vc9.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.17-x64-vc9.zip

https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.16-x86-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.16-x64-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.16-x86-vc9.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.16-x64-vc9.zip

https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.12-x86-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.12-x64-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.12-x86-vc9.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1p-fips-2.4.12-x64-vc9.zip

I have used fips-2.0.9 for building it:
http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz

See the FIPS documentation:
http://www.openssl.org/docs/fips/UserGuide-2.0.pdf
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf

I have two test sites with FIPS mode on:
https://www.ssllabs.com/ssltest/analyze.html?d=ie8xp.sessiondatabase.net

If you want to disable support for IE8 on XP (and Java 7):
https://www.ssllabs.com/ssltest/analyze.html?d=fips.sessiondatabase.net

Bonus for those people that are running an OpenSSH server:
https://phpdev.toolsforresearch.com/openssl-1.0.1i-fips-cygwin-x86.zip

BTW: all my PHP builds now have the openssl-fips as well. If you do not add 'SSLFIPS on' to your config, they should behave just like openssl without fips support. Let me know if and when you experience difficulties.

Edit: changed the links to OpenSSL 1.0.1j

Edit 2015-01-12: Updated to Fips 2.0.9 and OpenSSL 1.0.1k.

Edit 2015-01-22: Updated to OpenSSL 1.0.1l.

Edit 2015-02-02: Updated to Apache 2.4.12

Edit 2015-03-20: Updated to OpenSSL 1.0.1m.

Edit 2015-07-19: Updated to OpenSSL 1.0.1p.

Edit 2015-07-19: Added the versions for 2.4.16.

Edit 2015-10-19: Added the versions for 2.4.17 and for VC14


Last edited by Jan-E on Mon 19 Oct '15 14:32; edited 9 times in total
Back to top
glsmith
Moderator


Joined: 16 Oct 2007
Posts: 2268
Location: Sun Diego, USA

PostPosted: Mon 06 Oct '14 20:29    Post subject: Reply with quote

May I ask what is the reason for running FIPS ... other than "because we can." Does it give any better encryption than OpenSSL without FIPS?

My understanding is that FIPS is a set security policy which may be required for any number of reasons. As far as the encryption end, it has a small set of elliptical curves it can use. However this policy also regulates how the OpenSSL FIPS source is obtained, built and installed onto any server. Just having FIPS does not automatically make you able to be FIPS verified.

https://www.openssl.org/docs/fips/UserGuide-2.0.pdf
https://www.openssl.org/docs/fips/SecurityPolicy-2.0.pdf
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Tue 07 Oct '14 16:48    Post subject: Reply with quote

If you read the security policy, it is not hard to build a FIPS validated module for Windows. See the 2.0.8-version here:
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf

In fact, the hardest part was unpacking openssl-fips-2.0.8.tar.gz. 7Zip does not do the job because that file contains symlinks. I used 'tar xvf fips-2.0.8.tar.gz', using Cygwin's tar.exe for that. After that, running (W2) ms\do_fips.bat or (W1) ms\do_fips.bat no-asm in a VCx prompt will give you the desired fipscanister.lib

Linking that module into OpenSSL is done by configuring OpenSSL with perl Configure VC-WIN32 fips (no-asm) or perl Configure VC-WIN64A fips (no-asm). Not hard at all if your are used to building OpenSSL on Windows.

If you follow the rules, this validation and certificate applies:
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-all.htm#1747
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140crt/FIPS140ConsolidatedCertList0018.pdf
Note: somebody that downloads my openssl-fips build cannot know for sure that I followed the rules, so he cannot claim FIPS validation. He will have to build openssl-fips for himself to be sure.

I will not claim certification either, but it is not a 'because we can' issue. The sites we build for our US customers might contain patient data, so HIPAA comes into play. HIPAA does not require FIPS validation. but requires a 'business associate' to implement a mechanism to encrypt electronic protected health information whenever deemed appropriate. See http://www.hipaa.com/2009/07/transmission-security-encryption-what-to-do-and-how-to-do-it/

From the same page:
Quote:
Rather, an addressable implementation specification means that a covered entity must use reasonable and appropriate measures to meet the standard.

The easiest way to 'meet the standard' is to install and activate FIPS support in OpenSSL.
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Wed 15 Oct '14 22:37    Post subject: Reply with quote

I have upgraded the x86 vc9 version to OpenSSL-fips 1.0.1j

https://phpdev.toolsforresearch.com/openssl-1.0.1j-fips-2.4.10-x86-vc9.zip

The others will follow.
Back to top
glsmith
Moderator


Joined: 16 Oct 2007
Posts: 2268
Location: Sun Diego, USA

PostPosted: Thu 16 Oct '14 0:30    Post subject: Reply with quote

Jan-E wrote:
The easiest way to 'meet the standard' is to install and activate FIPS support in OpenSSL.

One thing it does make perfectly clear;

Quote:
ii) “Valid encryption processes for data in motion are those that comply with the requirements of Federal Information Processing Standards (FIPS) 140-2. These include, as appropriate, standards described in NIST Special Publications


It points to SP 800-52 which was revised in June 2014.
http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf

Section 3.3.2 says it must be FIPS validated modules, which is only validated when the security policy is met in it's entirety, not partially.

Obviously we are treading into legal areas here best dealt with by lawyers. But if it were my company, I'd hire someone to follow the security policy to the letter thereby reducing my exposure to lawsuit.
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Thu 16 Oct '14 5:31    Post subject: Reply with quote

glsmith wrote:
Obviously we are treading into legal areas here best dealt with by lawyers. But if it were my company, I'd hire someone to follow the security policy to the letter thereby reducing my exposure to lawsuit.

If our client(s) require formal certificates, they will have to pay the auditor Wink

We will not say we are validated. But in the mean time I have compiled all flavours of OpenSSL FIPS 1.0.1j:

https://phpdev.toolsforresearch.com/openssl-1.0.1j-fips-2.4.10-x86-vc9.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1j-fips-2.4.10-x86-vc11.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1j-fips-2.4.10-x64-vc9.zip
https://phpdev.toolsforresearch.com/openssl-1.0.1j-fips-2.4.10-x64-vc11.zip

See the report by dev.ssllabs:
https://dev.ssllabs.com/ssltest/analyze.html?d=sessiondatabase.net

There are 2 items on Poodle near the bottom:

POODLE attack No, SSL 3 not supported
Downgrade attack prevention Yes, TLS_FALLBACK_SCSV supported
Back to top
gman8321



Joined: 01 Dec 2014
Posts: 1
Location: US, Madison

PostPosted: Mon 01 Dec '14 19:14    Post subject: Error running FIPS module with Apache Lounge HTTPD build Reply with quote

Jan-E. Appreciate you work on this. I'm testing your openssl-1.0.1j-fips-2.4.10-x64-vc11 module prior to attempting my own build. I receive the following errors:

httpd.exe: Syntax error on line 17 of path/conf/httpd.conf: Cannot load path/modules/mod_ssl_fips.so into server: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or us .

Activation context generation failed for "path\modules\mod_ssl_fips.so". Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.

I copied openssl-1.0.1j-fips-2.4.10-x64-vc11\bin files to the Apache bin folder. Replaced the default mod_ssl.so with your mod_ssl.

Any thoughts on this?
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Tue 02 Dec '14 12:51    Post subject: Reply with quote

Looking at the error message either your Apache or your mod_ssl_fips.so is VC9 X86. To check mod_ssl_fips.so open it for instance in Notepad++ and search for MSVC. There should be a reference to MSVCR110.dll there (and not to MSVCR90.dll) if you are using a VC11 Apache.
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Fri 20 Mar '15 8:04    Post subject: Reply with quote

Updated to openssl-fips-1.0.1m-
Back to top
puertoblack2003



Joined: 31 Jul 2009
Posts: 121
Location: U.S

PostPosted: Wed 25 Mar '15 5:55    Post subject: Reply with quote

thank you
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Sun 19 Jul '15 19:20    Post subject: Reply with quote

I updated the 2.4.12 versions to OpenSSL 1.0.1p and added 2.4.16 versions.

The VC11 versions can be used with Apachelounge's builds:
https://www.apachelounge.com/download/VC11/

The VC9 versions can be used with Gregg's builds on Apachehaus:
http://www.apachehaus.com/cgi-bin/download.plx

The 2.4.16 versions contain a OpenSSL FIPS, built with ASM. OpenSSL 1.0.2d cannot be built with FIPS support yet:
http://thread.gmane.org/gmane.comp.encryption.openssl.devel/29763/focus=29823

I am using two references for the ciphersuites:
https://cipherli.st/ (with a special warning for Dutch visitors)

But somewhat more authoritative:
https://wiki.mozilla.org/Security/Server_Side_TLS
This Wiki page has an Modern compatibility and a Intermediate compatibility suite
https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility

Benefit of using the Wiki page is that it will be updated once in a while.
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Mon 20 Jul '15 17:02    Post subject: Reply with quote

Jan-E wrote:

I am using two references for the ciphersuites:
https://cipherli.st/ (with a special warning for Dutch visitors)


That config offers for some browser only 128 bit encryption ( see the test result from ssl labs). That is why I use a different SSLCipherSuite set. https://mariobrandt.de/archives/apache/apache-http-strict-transport-security-with-long-duration-817/
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Mon 20 Jul '15 17:24    Post subject: Reply with quote

Your cipherlist has one nasty thing. Open your site in Chrome, click on the lock symbol, then on the Connection tab.

In Dutch it tells me:
Quote:
Je verbinding met mariobrandt.de is versleuteld met verouderde cryptografie


I guess I do not have to translate that into German...
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Wed 22 Jul '15 12:04    Post subject: Reply with quote

It seems that chrome uses still the SHA1 which I tought I replaced ... I look into that.
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Wed 22 Jul '15 12:20    Post subject: Reply with quote

it might tells "old" and not modern, however it is 256 bit vs 128 bit.

I managed to get it working with 256 except Chrome

Code:

SSLCipherSuite  ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:kEDH+AESGCM:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Mon 10 Aug '15 23:13    Post subject: Reply with quote

Chrome might barf about a not modern config, hoever the encryption is not 256 in all cases. That is why I switched back to

Code:
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS


The SSL Test lab result on Cipher Strength went up again from 90 to a 100.
Back to top
Cy4n1d3



Joined: 22 Apr 2013
Posts: 17

PostPosted: Mon 14 Nov '16 22:56    Post subject: Reply with quote

Hey Jan-E,

do you by chance have a compiled version of the needed Apache 2.4.23 files with OpenSSL FIPS?

Regards Chris
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Tue 15 Nov '16 2:19    Post subject: Reply with quote

https://phpdev.toolsforresearch.com/openssl-1.0.2j-fips-2.4.23-x64-vc14.zip
https://phpdev.toolsforresearch.com/openssl-1.0.2j-fips-2.4.23-x86-vc14.zip

I also have VC9 and VC11 versions of the same, but I suppose you are looking for the VC14 ones. These files also contain mod_fcgid.so, mod_http2.so and mod_proxy_http2.so, but the OpenSSL files are there as well.
Back to top
Cy4n1d3



Joined: 22 Apr 2013
Posts: 17

PostPosted: Tue 15 Nov '16 13:57    Post subject: Reply with quote

VC14 is perfect, thanks alot!

Smile
Back to top


Reply to topic   Topic: OpenSSL-fips for Apache 2.4.12, 2.4.16, 2.4.17 View previous topic :: View next topic
Post new topic   Forum Index -> Building & Member Downloads