Skip to content

[META] Support for FIPS 140-3 enforced mode #20738

@nibix

Description

@nibix

Intro

The purpose of this meta issue is supporting the ongoing efforts for supporting FIPS 140-3 enforced mode in OpenSearch. It shall serve two core functions:

  • to document fundamental architectural decisions
  • to document open to-do items and to keep track of them

This issue shall be a living document, we should try to keep the information here up to date. Discussions in the comments section are welcome - still, any fundamental decision in the comments section should be reflected here.

Note: Unfortunately, the GitHub issue permission model only allows me and maintainers to edit this issue. I would have hoped that there would have been some way to allow more users editing, but that does not seem to be the case. I will try to do my best to keep the issue up to date. Still, if anyone has ideas on how to improve this, please speak up!

Note: This is just my first shot. There is a 200% chance that there are omissions and inaccuracies. Please comment or edit in order to complete this list.

Fundamental decisions

  • There will be only one OpenSearch distribution, which always bundles bc-fips but does not enable FIPS approved only mode by default.
  • To enable FIPS approved only mode, these actions must be performed:
    • the script opensearch-fips-demo-installer needs to be executed
    • the environment variable OPENSEARCH_FIPS_MODE needs to be set (this will be converted by the opensearch-env script into the JVM property org.bouncycastle.fips.approved_only=true).
  • The first version of this will be shipped with OpenSearch 3.6. However, enabling FIPS approved only mode will be only fully supported for the OpenSearch-min distribution (without any plugins, especially also without security plugin). Some further plugin functionality might work, but no guarantee is given.
  • Full support, including security plugin and other plugins will be delivered in a later version of OpenSearch.

Assumptions

Please speak up if these assumptions are wrong.

  • All plugins in the OpenSearch distribution have been already adapted to be aware of the bundled bc-fips library (This is only about the presence of the component, not about enabling FIPS approved only mode)
  • The OpenSearch min distribution already runs without issues in FIPS approved only mode. All necessary PRs for this have been already merged to main.

Supporting References

opensearch-project/technical-steering#77

Issues

For OpenSearch 3.6.0:

For later OpenSearch release

  • Finish adaptions of security plugin necessary for . (Note: if important decisions need to be made for these adaptions (such as not supporting SAML), let's document these here as well.)
  • Finish adaptions of other plugins (Note: If there are other plugins which require non-trivial adaptions, please let me know. We should list these individually.)
  • Automated tests for OpenSearch in FIPS approved only mode.
  • User documentation
  • Any other implementation work necessary to achieve the FIPS approved only mode support for the full distro?

Metadata

Metadata

Assignees

No one assigned

    Labels

    BuildBuild Tasks/Gradle Plugin, groovy scripts, build tools, Javadoc enforcement.MetaMeta issue, not directly linked to a PRsecurityAnything security related

    Type

    No type

    Projects

    Status

    New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions