Bug 869827 - FIPS mode: Subversion fails due to MD5 attempt
FIPS mode: Subversion fails due to MD5 attempt
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libgcrypt (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Tomas Mraz
BaseOS QE Security Team
Depends On:
  Show dependency treegraph
Reported: 2012-10-24 18:15 EDT by jared jennings
Modified: 2012-10-25 14:59 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-10-25 14:59:51 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description jared jennings 2012-10-24 18:15:00 EDT
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.


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 04:14:49 EDT
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 11:52:32 EDT
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 12:30:13 EDT
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 14:57:52 EDT
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.

Note You need to log in before you can comment on or make changes to this bug.