mirror of
https://github.com/apache/httpd.git
synced 2026-10-23 22:49:01 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/fips-dev@190416 13f79535-47bb-0310-9956-ffa450edef68
62 lines
2.6 KiB
Plaintext
62 lines
2.6 KiB
Plaintext
SANDBOX httpd/branches/fips-dev explained:
|
|
|
|
This sandbox is for development around the FIPS 140-2 standard as implemented
|
|
by Ben Laurie and team of OpenSSL with the 0.9.7 verisons. The effort for
|
|
OpenSSL FIPS certification is coordinated by the Open Source Software
|
|
Institute. OpenSSL 0.9.7 is in the process of certification testing. See:
|
|
|
|
http://oss-institute.org/index.php?option=content&task=view&id=109
|
|
|
|
The crypto layer, itself, is the object of certification. In this case,
|
|
that is encompased in libcrypto.so. But libcrypto.so needs to be told to
|
|
enforce FIPS 140 policy, and mod_ssl needs to be adjusted to the FIPS 140
|
|
subset of permitted cryptography.
|
|
|
|
This effort is initially coordinated by Ben Laurie and Will Rowe; of course
|
|
all voulenteers and feedback are welcome!
|
|
|
|
It is something of the cart before the horse; meant to demonstrate both the
|
|
need for the NIST to certify OpenSSL, and the proper application of a fips
|
|
build of the OpenSSL library.
|
|
|
|
Note this branch includes apr and apr-util, while the authors figure out what
|
|
to do about apr MD5 and other fips issues are resolved. That work will be
|
|
submitted to the apr project, once the least distruptive change is
|
|
ascertained.
|
|
|
|
Note also that even with FIPS mode is off, operations using MD5 are
|
|
not possible.
|
|
|
|
Stuff FIPS requires
|
|
-------------------
|
|
|
|
Random number seeding: strangeness about the FIPS PRNG means that at
|
|
least one random source must supply at least 24 bytes of randomness in
|
|
a single chunk (note that this could be relaxed at the cost of more
|
|
code).
|
|
|
|
Certificates: must be signed using SHA-1.
|
|
|
|
Passwords: must be SHA-1 hashed.
|
|
|
|
httpd.conf:
|
|
|
|
SSLProtocol +TLSv1
|
|
|
|
SSLCipherSuite DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHAEXP1024-DHE-DSS-DES-CBC-SHA:EXP1024-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA
|
|
|
|
The cipher suites can, of course, be a subset of the above.
|
|
|
|
General: All crypto should be done via OpenSSL (or another FIPS
|
|
certified package). Any external packages using crypto must enable
|
|
FIPS mode in OpenSSL. The OpenSSL FIPS security policy must be
|
|
followed.
|
|
|
|
Note that because Apache sets FIPS mode in OpenSSL, other libraries or
|
|
modules using OpenSSL that coexist may exhibit unexpected behaviour
|
|
because of the restrictions FIPS mode imposes.
|
|
|
|
In particular, only DES, AES, RSA, DSA/DSS and SHA-1 can be
|
|
used. There is a special exception that permits the use of MD5 within
|
|
TLS, but not elsewhere.
|