Bug 869827

Summary: FIPS mode: Subversion fails due to MD5 attempt
Product: Red Hat Enterprise Linux 6 Reporter: jared jennings <jjennings>
Component: libgcryptAssignee: Tomas Mraz <tmraz>
Status: CLOSED NOTABUG QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-10-25 18:59:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description jared jennings 2012-10-24 22:15:00 UTC
Description of problem:

When I try to use Subversion against an https URL, and my system is in FIPS mode (booted with fips=1 on kernel command line), Subversion exits with an error:

DBG: md_enable: algorithm 1 not available
svn: OPTIONS of 'https://my-server/svn/bla/bla': SSL handshake failed: SSL error: Encryption has failed. (https://my-server)

Exitcode is 1.

When I put '0' in /etc/gcrypt/fips_enabled, Subversion works fine.


subversion-1.6.11-7.el6.x86_64
neon-0.29.3-2.el6.x86_64
libgcrypt-1.4.5-9.el6_2.2.x86_64


I expect you could reproduce without fips=1 by putting '1' in /etc/gcrypt/fips_enabled.

I've confirmed using gdb that, on my system, Subversion uses neon to talk https, and neon in turn uses libgcrypt, and "algorithm 1" is MD5.

It seems that without linking in gnutls-extra, which is GPLed not LGPLed, you can't do much with TLS < 1.2 using libgcrypt - this is according to
http://lists.gnu.org/archive/html/gnutls-devel/2008-09/msg00063.html. I assume that licensing conflicts are the reason that gnutls-extra appears not to be in play on my system.

It may be that I could rebuild neon against OpenSSL instead of libgcrypt, but I'm afraid of losing the facility with PKCS#11 that libgcrypt seems to have, because I'm using a smartcard to authenticate to the Subversion server. 

Because I don't know the right course of action, I can't provide a patch; but I do feel this is an issue that hinders RHEL from its goals of compliance and functionality, and so merits reporting as a bug.

Comment 2 Tomas Mraz 2012-10-25 08:14:49 UTC
The /etc/gcrypt/fips_enabled should not be present at all on your system. The recommended way to enable FIPS mode on your system is with fips=1 on the kernel command line. Does the problem really appear even when /etc/gcrypt/fips_enabled is not present?

Comment 3 jared jennings 2012-10-25 15:52:32 UTC
No. svn no longer exits with an error when I remove /etc/gcrypt/fips_enabled. But I do get a message in /var/log/messages: "svn: Libgcrypt warning: MD5 used - FIPS mode inactivated." That doesn't look compliant. Is it actually OK? I wrote /etc/gcrypt/fips_enabled because http://www.gnupg.org/documentation/manuals/gcrypt/Enabling-FIPS-mode.html says that turns on "Enforced FIPS mode," which it sounded like I needed.

Comment 4 Tomas Mraz 2012-10-25 16:30:13 UTC
Yes, the message is not particularly correct as usage of MD5 in TLS is and must be allowed otherwise TLS versions < 1.2 which have only one PRF that uses SHA1 and MD5 together would not work at all. Also note that the inactivated FIPS mode of libgcrypt does not mean that the operational self tests such as the pairwise tests of generated keys or RNG continuous test will not be invoked anymore. They will be still invoked.

Comment 5 jared jennings 2012-10-25 18:57:52 UTC
OK, thanks for your explanation. I'll point at it from my compliance documentation. Unless you want to use this bug to track changes to the message, it seems like NOTABUG to me.