4

1

Quoting this question on Kiln Stackexchange:

We are being forced by the Information Assurance group to turn on the system security policy in Windows Server 2008 R2 that enables the use of FIPS compliant algorithms for encryption, hashing, and signing. The enablement of this policy causes Fogbugz/Kiln to fail to operate and is preventing us from using this product even though we had been using it for years with no issues until now. They are using the STIG as the bat to beat us with.

The answer to this question indicates that Kiln is entirely FIPS-compliant. If this is the case, then what we need is for Fogbugz to also comply. Specifically, we need to be able to run Fogbugz on a Windows 2008 Server with the FIPS-compliant encryption algorithms group policy enabled.

To be clear, this policy will almost certainly be enforced across the Department of Defense.

Fog Creek Case FC2080693

flag
This is going to be a big deal for us too very soon. – JohnFx Jun 4 at 20:57

1 Answer

0

Currently, FogBugz uses algorithms that are not FIPS-compliant (namely, MD5) and will throw exceptions when run on a server that is configured to enforce the use of FIPS-compliant algorithms.

Areas of FogBugz that use MD5

As of FogBugz 8.7.61, these are the areas in FogBugz that make use of the MD5 algorithm.

  • Search
    • FogBugz currently uses Lucene.NET for search. Part of Lucene uses MD5 to compute hashes.
    • The search store buffer use MD5 to compute a hash string.
    • The search index uses MD5 to compute a database hash
  • Fragment Cache - FogBugz uses MD5 as part of our HTML fragment cacher, which also is used as a function memoization tool.
  • (On Demand Only) Plugins - FogBugz hashes the hosted plugins using MD5
  • Plugins - FogBugz hashes database connection strings using MD5
  • (On Demand Only) AB Test - Part of the AB Testing code for FogBugz On Demand uses MD5.
  • ActionTokens - MD5 is used when generating action tokens, which are used to help prevent cross site forgery requests.
  • Password Encryption - FogBugz uses MD5 to encrypt a user's password (this is salted and then heavily iterated; full implementation details are intentionally withheld).
    • NOTE: Using an alternative form of authentication (LDAP or AD) will not use this are of FogBugz code.
  • Licensing - FogBugz licensing code uses MD5 to verify licenses.
  • Gravatar - FogBugz can use Gravatar for user icons. Gravatar requires using MD5 to hash a user's email address.
  • Tests - Several unit tests use MD5.

FIPS-compliance in future versions of FogBugz

While Fog Creek is considering producing a version of FogBugz that uses FIPS-compliant algorithms exclusively, this is not something that is currently scheduled to ship.

Alternative Configurations

If FIPS compliance is a major concern and you intend to use FogBugz, you might consider running FogBugz on Linux, which does not throw blanket exceptions for MD5 algorithm usage. Your organization may require a manual audit, in which case you may wish to use the outline above to understand where MD5 is being used. If using MD5 within password hashing is a concern, consider switching to using LDAP or AD authentication to avoid this issue.

If you are also using Kiln, it may be possible to use a FIPS-compliant version of Kiln on Windows combined with FogBugz running on Linux. We haven't tested this, so we're not sure of everything that would be required in order to get this to work. If FIPS is a major requirement and you are considering this configuration, please contact us.

Note that FogBugz performs best running on Windows using SQL Server as the database.

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.