OpenSSH use of OpenSSL in FIPS Mode
Stan Kladko
kladko at aspectlabs.com
Mon Mar 5 12:13:10 EST 2007
>From our experience working on FIPS 140-2 conformance testing of IT products
when a decision is made on whether a particular IT solution is FIPS 140-2
compliant multiple factors need to be taken into account, including the FIPS
Pub 140-2 standard, FIPS 140-2 Derived Test Requirements, CMVP FAQ and
Implementation Guidance. The ultimate authority in this process belongs to
the CMVP. The CMVP provides its current interpretations and guidelines as to
the intepretation of the FIPS 140-2 standard and the conformance
testing/validation process on its public web site
http://csrc.nist.gov/cryptval/
In particular, the official CMVP FAQ available at
http://csrc.nist.gov/cryptval/140-1/CMVPFAQ.pdf
discusses incorporation of another vendor's cryptographic modules in a
subsection of Section 2.2.1 entitled "Can I incorporate another vendor's
validated cryptographic module". In particular, the following is specified:
"
Yes. A cryptographic module that has already been issued a FIPS 140-1 or
FIPS 140-2 validation certificate may be incorporated or embedded into
another product. The new product may reference the FIPS 140-1 or FIPS 140-2
validated cryptographic module so long as the new product does not alter the
original validated cryptographic module. A product which uses an embedded
validated cryptographic module cannot claim itself to be validated; only
that it utilizes an embedded validated cryptographic module.
There is no assurance that a product is correctly utilizing an embedded
validated cryptographic module - this is outside the scope of the FIPS 140-1
or FIPS 140-2 validation. "
Note that the CMVP FAQ does specify that a FIPS 140-1/2 validated module may
be incorporated into another product. It then specifies that making a
decision on whether a product is correctly utilizing an embedded module is
outside of the scope of the FIPS 140-1 or FIPS 140-2 validation.
A subsection of Section 2.1 of the CMVP FAQ entitled
"A vendor is selling me a crypto solution - what should I ask?"
specifies in particular:
"Verify with the vendor that the application or product that is being
offered is either a validated cryptographic module itself (e.g. VPN,
SmartCard, etc) or the application or product uses an embedded validated
cryptographic module (toolkit, etc). Ask the vendor to supply a signed
letter stating their application, product or module is a validated module or
incorporates a validated module, the module provides all the cryptographic
services in the solution, and reference the modules validation certificate
number."
Note that it is specified that the validated module shall provide "all the
cryptographic services in the solution". A typical IT solution may provide a
variety of services. From such a set of services all the cryptographic
services shall be provided by a validated cryptographic module.
A typical network protocol, such as IPSec/IKE, TLS, SSH, S-MIME or 802.11
protocol family may provide a complex variety of services. Some of such
services may have cryptographic nature and utilize Approved or allowed for
use cryptographic algorithms, such as encryption, decryption, signatures,
hashes, message digests and others. Other services provided by a network
protocol may be of non-cryptographic nature, such as packet routing, packet
assembly/disassembly, defragmentation, radio and link layer communications,
firewalling, network address translation, address resolution, quality of
service, re-transmission and others. While the ultimate verdict for a
particular solution belongs to the CMVP, it is generically logical to assume
that non-cryptographic services of a particular network protocol or a set of
protocols may be implemented outside of a validated cryptographic module.
This is also logical having in mind that in many cases non-cryptographic
services of a particular protocol may be delegated to other devices in the
IT solution. For instance, in some wireless LAN access systems an
implementation of the 802.11 protocol set is provided jointly by a wireless
access switch and a wireless access point, where the wireless access point
may provide non-cryptographic services of the 802.11 protocol set such as
radio transmissions, frequency and signal strength control, initial wireless
client association and others. Another widely used example is a web server
offloading cryptographic functionality of the HTTPS/TLS protocol to a FIPS
140-2 validated cryptographic accelerator card (many such cards are
available on the market).
It is then also important to consider industry-wide interpretation patterns
and precedents in this field. After performing a review of the FIPS 140-2
validated products list http://csrc.nist.gov/cryptval/140-1/140val-all.htm
one may conclude that implementing non-cryptographic services of a
particular network protocol outside of a validated cryptoraphic module can
in many cases be considered as an industry trend. There are multiple
examples which illustrate such a trend. For illustration purposes only we
can take a look at the example of the Microsoft Kernel Module
http://csrc.nist.gov/cryptval/140-1/140sp/140sp241.pdf
Here I would like to re-iterate that there are many other modules which
follow a similar trend, the module is just one example out of many. The
analysis here is generic, applies to a large number of validated modules,
and is not intended to make any specific statements as to the validation of
this particular module.
As specified by the vendor, the Kernel Module is used by the vendor
impelementation of the IPSec/IKE protocol
http://www.microsoft.com/technet/archive/security/topics/issues/fipseval.mspx?mfr=true
In particular it is stated that
"Both IPSEC and EFS in Windows 2000, XP, and Server 2003 use the FIPS-140-1
or FIPS 140-2 (as appropriate) evaluated Kernel Mode Cryptographic Module to
encrypt the traffic packet data and file contents respectively if configured
appropriately with the selections of FIPS compliant algorithms."
A review of the Kernel Module Security Policy then shows that the module's
services are specified as services performing cryptographic algorithms
supported by IPSec/IKE(such as encryption/decryption and key agreement) and
not as providing a full IPSec/IKE protocol impelementation. This could again
serve as an illustration of the fact that non-cryptographic services of a
particular protocol are in many cases implemented outside of a cryptographic
module. A similar analysis could be performed for other protocols specified
in
http://www.microsoft.com/technet/archive/security/topics/issues/fipseval.mspx?mfr=true
such as S/MIME (used in Outlook), TLS (used in Explorer), Remote Desktop
Protocol and Encrypting File System.
While the example discussed here does not directly consider to the SSH
protocol, it bears significant degree of similarity to the question
considered in this e-mail thread. Other examples can be discussed by
analyzing the list of historically validated products
http://csrc.nist.gov/cryptval/140-1/140val-all.htm .
To conclude, both the historical perspective and the current CMVP guidance
point to a possibility of non-cryptographic services in an IT solution being
impemented outside of a validated cryptographic module. We are not aware of
any CMVP regulations explicitely denying use of embedded validated
cryptographic modules to satisfy the requirements of FIPS 140-2 statement,
provided that the set of conditions specified in the CMVP FAQ and other
relevant documentation is satisfied. With this in mind, the ultimate
decision for a particular product/protocol belongs to the CMVP and the
analysis presented in this e-mail can serve for discussion purposes only.
With best regards,
Stan Kladko, Aspect Labs FIPS 140-2 Lab
www.aspectlabs.com
>> > Does it much matter?
>Bill Colvin responded:
> Yes it definitely does matter, particularly to government agencies (and
> more and more businesses) that are required to use FIPS certified crypto
> algorithms.
[...]
> The whole point behind getting FIPS certification for the OpenSSL source
> library is so that other open source applications (e.g. Apache or
> OpenSSH) can take advantage of it and provide applications that are only
> using FIPS Certified algorithms for those users that require it in their
> environments.
>My point is that the OpenSSL validation does not accomplish the generally
>desired end. In order for a US federal agency to use hardware or
>software to protect certain types of information, all the relevant crypto
>functionality of that hardware or software needs to be covered by a FIPS
>140 certificate. The crypto functionality explicitly includes _all_
>key establishment functionality, including the implementation of the
>key establishment and data protection protocols (e.g., TLS and SSHv2).
The portion of the OpenSSL library that was actually evaluated only
include the cryptographic algorithms, and a bit of additional logic.
Thus, any product that includes the FIPS validated OpenSSL component,
and additionally includes some other crypto functionality (for example,
an implementation of the TLS protocol, the SSHv2 protocol, or really
almost anything else that is likely to be built on top of this particular
validated module) will need to go through its own separate FIPS 140
validation process.
Josh
More information about the openssh-unix-dev
mailing list