Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIPS support in Fluentd #3121

Closed
javsalgar opened this issue Sep 3, 2020 · 11 comments · Fixed by #4720
Closed

FIPS support in Fluentd #3121

javsalgar opened this issue Sep 3, 2020 · 11 comments · Fixed by #4720
Labels
enhancement Feature request or improve operations

Comments

@javsalgar
Copy link

Check CONTRIBUTING guideline first and here is the list to help us investigate the problem.

Is your feature request related to a problem? Please describe.

I would like to confirm that it is possible to configure Fluentd to only use FIPS-validated cryptography. I saw that starting with 0.14.12 there is support for SSL when forwarding. Would using a FIPS-validated OpenSSL be enough or there are other encryption functions that need to be configured in order to be FIPS-compliant (https://docs.pulsesecure.net/WebHelp/PCS/9.1R4/AG/Content/PCS/PCS_AdminGuide/Supported_Cipher_Suites_When_2.htm)

Describe the solution you'd like

A confirmation on whether using a FIPS-validated OpenSSL is enough.

Describe alternatives you've considered

n/a

@repeatedly
Copy link
Member

What changes are needed in fluentd core?
Need to call some OpenSSL APIs"?

@agup006
Copy link
Member

agup006 commented Oct 29, 2020

@javsalgar I'd love to better understand the use case for FIPS

@kenhys kenhys added feature request *Deprecated Label* Use enhancement label in general waiting-for-user Similar to "moreinfo", but especially need feedback from user labels Dec 1, 2020
@OferPRTZ
Copy link

OferPRTZ commented Jul 4, 2021

Hi, any progress on this? couldn't find any other topics discussing this thread

@nandu1508
Copy link

@javsalgar Please share your findings on this

@seanorama
Copy link

@javsalgar I'd love to better understand the use case for FIPS

Most governments require FIPS-validation. It's an absolute requirement by the US government.

@sfc-gh-stopchiy
Copy link

+1

1 similar comment
@gauravphagrehpe
Copy link

+1

@cosmo0920
Copy link
Contributor

cosmo0920 commented Feb 16, 2024

To support OpenSSL FIPS on Fluentd, users must install openssl library with FIPS support. This module sometimes isn't provided for non-commercial distribution such as Ubuntu.
Ubuntu does not support FIPS on non-Pro clients:
https://ubuntu.com/security/certifications/docs/fips

So, users ought to compile it with fips support by themselves if users don't use commercial distributions.

I found the some hints to enable FIPS mode:

If the FIPS enabled libraries are installed, users must enable FIPS module as follows:

config_diagnostics = 1
openssl_conf = openssl_init

.include /usr/local/ssl/fipsmodule.cnf

[openssl_init]
providers = provider_sect
alg_section = algorithm_sect

[provider_sect]
fips = fips_sect
base = base_sect

[base_sect]
activate = 1

[algorithm_sect]
default_properties = fips=yes

The current status of FIPS support on ruby/openssl is here:
ruby/openssl#603

Any thoughts, @ashie @kenhys @daipom?

@kenhys
Copy link
Contributor

kenhys commented Feb 28, 2024

According to ruby/openssl#603 and https://github.com/ruby/openssl/releases/tag/v3.2.0, all of FIPS support effort is not fully merged in v3.2.0, so need to wait newer ruby/openssl release. (e.g. ruby/openssl#694 was fixed after v3.2.0)

As it depends on user environment, so it seems that there is few space to deal in Fluentd side, isn't it?

If it is easy to detect whether running FIPS compliant openssl from Fluentd side, checking it in Fluentd side may be reasonable. (e.g. OpenSSL.fips_mode)

@cosmo0920
Copy link
Contributor

cosmo0920 commented Feb 28, 2024

If it is easy to detect whether running FIPS compliant openssl from Fluentd side, checking it in Fluentd side may be reasonable. (e.g. OpenSSL.fips_mode)

Yup. It's reasonable. We're only able to switch on/off or to detect whether FIPS is enabled or not.
Under this circumstance, we're able to provide switch on/off for FIPS module with a certain parameter and decline to launch Fluentd with OpenSSL.fips_mode.

@kenhys kenhys added enhancement Feature request or improve operations and removed feature request *Deprecated Label* Use enhancement label in general labels Jul 31, 2024
@ira-gordin-sap
Copy link

Hi, any update on this enhancement?

kenhys added a commit to kenhys/fluentd that referenced this issue Nov 28, 2024
ensure_fips option checks whether FIPS mode is
enabled by OpenSSL side.
If FIPS is not enabled in OpenSSL side, it raise an error
when ensure_fips true.

NOTE: If FIPS mode is enabled, ensure_fips does nothing.

Closes: fluent#3121

Signed-off-by: Kentaro Hayashi <[email protected]>
kenhys added a commit to kenhys/fluentd that referenced this issue Nov 28, 2024
ensure_fips option checks whether FIPS mode is
enabled by OpenSSL side.
If FIPS is not enabled in OpenSSL side, it raise an error
when ensure_fips true.

NOTE: If FIPS mode is enabled, ensure_fips does nothing.

Closes: fluent#3121

Signed-off-by: Kentaro Hayashi <[email protected]>
kenhys added a commit to kenhys/fluentd that referenced this issue Nov 28, 2024
ensure_fips option checks whether FIPS mode is
enabled by OpenSSL side.
If FIPS is not enabled in OpenSSL side, it raise an error
when ensure_fips true.

NOTE: If FIPS mode is enabled, ensure_fips does nothing.

Closes: fluent#3121

Signed-off-by: Kentaro Hayashi <[email protected]>
daipom pushed a commit that referenced this issue Nov 28, 2024
ensure_fips option checks whether FIPS mode is
enabled by OpenSSL side.
If FIPS is not enabled in OpenSSL side, it raise an error
when ensure_fips true.

NOTE: If FIPS mode is enabled, ensure_fips does nothing.

Closes: #3121

Signed-off-by: Kentaro Hayashi <[email protected]>
@daipom daipom removed the waiting-for-user Similar to "moreinfo", but especially need feedback from user label Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature request or improve operations
Projects
None yet
Development

Successfully merging a pull request may close this issue.