Hi Jorge,

While doing some research on OpenSSL and FIPS for this SRU,
apparently it is not a good idea to have the FIPS provider
loaded with providers other than 'base' (which provide only
non-crypto functions that can be used in FIPS mode). 

For example, the 'default' and 'legacy' providers do provide
algorithms that are *not* FIPS certified -- therefore if the
application uses any algorithm from these providers, it is no
longer FIPS compliant.

        "... you will have both the FIPS and the default provider loaded at the 
same time.
        It is unspecified which implementation of an algorithm will be used if 
multiple
        implementations are available and you have not explicitly specified via 
a property query ..." [0]

Now, the proposed patch seems to (IIUIC) allow the algorithms
in the FIPS provider to continue to be available _after_ the
'default' and 'legacy' providers are loaded. *This* seems to
be a problem, if my understanding above is correct.

        "OSSL_PROVIDER_try_load() functions like OSSL_PROVIDER_load(),
        except that it does not disable the fallback providers if ...
        or if retain_fallbacks is nonzero." [2] 

So, if that is correct _and_ the FIPS provider is automatically
loaded in FIPS mode, perhaps the fix for FIPS mode instead may
be _not_ loading the 'default' and 'legacy' providers at all?
(since this would not disable the fallback provider, and it
seems the FIPS provider [3] is used as a fallback provider?)

That is, to make such loads conditional on `fips_enabled` as
several packages have done? Some examples in [4].

I'd recommend you check this with Tobias Heider and/or Henry
Coggill, which have provided help with FIPS & Ubuntu Archive
multiple times.

Can you please discuss both approaches with them, before we
progress with this SRU?  The reason is we want to make sure
there is no risk that openvpn in FIPS mode fails to select
only FIPS compliant algorithms.

(I'll mark the bug task as Incomplete for that, this time.)

Thanks!
Mauricio

[0] https://github.com/openssl/openssl/blob/master/README-PROVIDERS.md
[1] 
https://docs.openssl.org/master/man7/fips_module/#programmatically-loading-the-fips-module-default-library-context
[2] https://docs.openssl.org/3.0/man3/OSSL_PROVIDER/#functions
[3] https://docs.openssl.org/master/man7/OSSL_PROVIDER-FIPS/
[4] 
https://codesearch.debian.net/search?q=%2Fproc%2Fsys%2Fcrypto%2Ffips_enabled&literal=1

** Changed in: openvpn (Ubuntu Jammy)
       Status: In Progress => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2077769

Title:
  fips-preview break openvpn ciphers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openvpn/+bug/2077769/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to