> On Sep 10, 2015, at 8:44 AM, Jayalakshmi bhat <[email protected]>
> wrote:
>
> Hello all,
>
> I have a question on FIPS. We have OpenSSL FIPS module integrated with our
> product. We have an option to enable/disable FIPS at run time. We are
> executing the following openSSL API's every time when FIPS status changes.
Typically, this is not allowed; you must restart your application in order to
switch in or out of FIPS approved mode. Your customer’s auditor (or your
auditor) may believe differently, but my former employer had auditors make it
very clear that an application must never switch into or out of FIPS approved
mode without restarting the application (and most of the auditors wanted us to
require the user to reboot their entire system to make the switch; fortunately
they were willing to allow the application with just an extra note recommending
the user reboot after modifying the setting).
> {
> We have mapped OpenSSL crypto locks to mutex intenally. Hence we delete
> it and create it every time when FIPS status changes.
> ERR_free_strings()
> ERR_remove_state(0);
> EVP_cleanup();
> SSL_library_init()
> SSLeay_add_all_algorithms()
> }
>
> Without executing this we are hitting the error,
> error:0409A09E:lib(4):func(154):reason(158). I wanted to know if our approach
> is correct?
IIRC you should be able to switch in and out of FIPS appoved mode by simply
calling FIPS_mode_set() with the appropriate argument. I know this worked with
the FIPS 1.2 module, but I never bothered to try it with the 2.0 module (see
above about allowed uses). I wouldn’t recommend trying to uninitialize and
re-initialize OpenSSL, though — while probably safe, it seems like a bad idea.
If this is a long-running program that can do multiple things at a time, it’s
definitely a bad idea to allow a toggle like that — someone might’ve started a
task, then turned on FIPS approved mode — if the task hasn’t done anything with
OpenSSL yet, it’ll probably be done with FIPS approved mode, but was that the
user’s intent? I’d recommend that when a user changes the setting, you store
the setting and inform the user that the new setting will take affect only
after restarting the application.
I really doubt you’ll be allowed to switch FIPS approved mode on and off with
just a simple toggle (even if it works technically).
> Regards
> Jayalakshmi
> _______________________________________________
> openssl-users mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users