<div dir="ltr">Hi Steve,<div><br></div><div>Thanks for the quick reply.</div><div><br></div><div>That is what I had understand from my reading but wasn't sure.</div><div><br></div><div>My next question is about OpenSSH.  There is no official support in OpenSSH for FIPS at the moment right ?</div><div><br></div><div>Thanks</div><div><br></div><div>Eric</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 26, 2016 at 5:04 PM, Steve Marquess <span dir="ltr"><<a href="mailto:marquess@openssl.com" target="_blank">marquess@openssl.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 10/26/2016 04:37 PM, Eric Tremblay wrote:<br>
> Hi all,____<br>
><br>
> __ __<br>
><br>
> I have built the FIPS module into our Platform but I am stuck at the<br>
> point to enable it.____<br>
><br>
> __ __<br>
><br>
> We need FIPS to be enabled « Platform wide » not just for one<br>
> application.____<br>
><br>
> __ __<br>
><br>
> I have read the documentation and search on the web for answer but it<br>
> seem that I would have ____<br>
><br>
> to modify a package or write a small application just to enable FIPS.____<br>
><br>
> __ __<br>
><br>
> Is there another way to enable it on startup of Linux ?  or maybe<br>
> something in OpenSSH ?____<br>
><br>
> __ __<br>
><br>
> I also read about the OPENSSL_Config in the User Guide but I’m not sure<br>
> if/who and how it is called.____<br>
><br>
> __ __<br>
><br>
> I am working with OpenSSL 1.0.2j and FIPS 2.0.9.____<br>
><br>
> __ __<br>
><br>
> Thanks____<br>
><br>
> __ __<br>
><br>
> Eric<br>
><br>
><br>
><br>
<br>
<br>
Hmmm ... where to start.<br>
<br>
First there is really no such thing as "enabling FIPS" for a platform.<br>
The FIPS module is executable code that runs in the context of a<br>
process, and to be righteous FIPS-wise each process (that uses<br>
cryptography) must invoke the FIPS_mode_set() call that performs the<br>
mandatory POST (Power Up Self Test). Note that is true even when the<br>
FIPS module is embedded in a shared library (the "FIPS enabled"<br>
OpenSSL), as each process using said shared library maps writable data<br>
into its own private address space.<br>
<br>
So to make the sweeping claim that a "platform" is FIPS enabled, you<br>
must make sure that *every* process for that platform enables FIPS mode<br>
via a FIPS_mode_set() call (whether directly or indirectly). Note that<br>
for your typical general purpose (e.g. Windows or Linux-like) operating<br>
system that is an essentially unachievable goal, as not all of the many<br>
crypto-using applications are readily converted to use the FIPS enabled<br>
OpenSSL (for instance OpenSSH needs non-trivial hacks). Likewise<br>
kernel-mode crypto can't be addressed with the OpenSSL FIPS module.<br>
<br>
For that reason the wise and prudent vendor does not attempt to "enable<br>
FIPS" for an entire platform (for Level 1 validations), but rather only<br>
makes claims about specific individual applications running on that<br>
platform.<br>
<br>
In the case where all processes of interest are compatible with the FIPS<br>
capable OpenSSL (specifically, not referencing any other crypto<br>
implementations, or non-approved cryptographic operations), then<br>
OPENSSL_config() can in principle be used to indirectly call<br>
FIPS_mode_set() for each such application. That is only *after* every<br>
such application/process has *first* been modified for compatibility<br>
with the FIPS capable OpenSSL. Very few applications not already<br>
designed to support the OpenSSL FIPS module will be compatible without<br>
some degree of modification.<br>
<br>
-Steve M.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Steve Marquess<br>
OpenSSL Validation Services, Inc.<br>
1829 Mount Ephraim Road<br>
Adamstown, MD  21710<br>
USA<br>
<a href="tel:%2B1%20877%20673%206775" value="+18776736775">+1 877 673 6775</a> s/b<br>
<a href="tel:%2B1%20301%20874%202571" value="+13018742571">+1 301 874 2571</a> direct<br>
<a href="mailto:marquess@openssl.com">marquess@openssl.com</a><br>
gpg/pgp key: <a href="http://openssl.com/docs/0x6D1892F5.asc" rel="noreferrer" target="_blank">http://openssl.com/docs/<wbr>0x6D1892F5.asc</a><br>
--<br>
openssl-users mailing list<br>
To unsubscribe: <a href="https://mta.openssl.org/mailman/listinfo/openssl-users" rel="noreferrer" target="_blank">https://mta.openssl.org/<wbr>mailman/listinfo/openssl-users</a><br>
</font></span></blockquote></div><br></div></div>