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

Analyze FIPS support #7781

Closed
rikatz opened this issue Oct 9, 2021 · 12 comments
Closed

Analyze FIPS support #7781

rikatz opened this issue Oct 9, 2021 · 12 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. needs-priority needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@rikatz
Copy link
Contributor

rikatz commented Oct 9, 2021

Some folks reached me about FIPS support / compliance specifically when ingress-nginx is used with govt stuff.

I'm not aware on how to deal with this yet (as far as I read we can use some openssl module from specific distro, or compile using BoringSSL) and there is also an nginx inc module to verify this compliance.

Not sure what we should look into here yet, but seems like something that will be requested more in a future :)

/help

/kind feature

@rikatz rikatz added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 9, 2021
@k8s-ci-robot
Copy link
Contributor

@rikatz:
This request has been marked as needing help from a contributor.

Guidelines

Please ensure that the issue body includes answers to the following questions:

  • Why are we solving this issue?
  • To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
  • Does this issue have zero to low barrier of entry?
  • How can the assignee reach out to you for help?

For more details on the requirements of such an issue, please see here and ensure that they are met.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

Some folks reached me about FIPS support / compliance specifically when ingress-nginx is used with govt stuff.

I'm not aware on how to deal with this yet (as far as I read we can use some openssl module from specific distro, or compile using BoringSSL) and there is also an nginx inc module to verify this compliance.

Not sure what we should look into here yet, but seems like something that will be requested more in a future :)

/help

/kind feature

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 9, 2021
@k8s-ci-robot
Copy link
Contributor

@rikatz: This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@aledbf
Copy link
Member

aledbf commented Oct 15, 2021

@rikatz for inspiration :) aledbf@ead3cba
Without OpenSSL 3, the only option is to use 1.0, which is hard to justify, like no tls1.3 support. That said, the other awful thing is the size of the image :(
Have fun!

@aledbf
Copy link
Member

aledbf commented Oct 15, 2021

Also check this rancher/rke2#659 (comment)

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 13, 2022
@rikatz
Copy link
Contributor Author

rikatz commented Jan 13, 2022

/lifecycle frozen
/assign

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 13, 2022
@stanhu
Copy link

stanhu commented Apr 25, 2022

See #3543 for discussions on this. I already have changes that can be upstreamed to provide FIPS support, but we would have to decide whether to make UBI the default base image, or provide a separate image.

stanhu added a commit to stanhu/ingress-nginx that referenced this issue Apr 30, 2022
UBI offers a number of advantages, though the image size is a bit
larger:

* Makes it possible for NGINX to run in a FIPS environment. The
OpenSSL libraries are FIPS-validated.

* Provides more security over Alpine. Red Hat addresses security
issues faster Than Alpine.

* Alpine's use of musl may cause slightly different behavior than
glibc (e.g. with DNS).
@slimm609
Copy link

Openssl 3.0 is now certified and also available in alpine 3.16 or later. Nginx also supports openssl 3 in 1.22+ and the go code would just need compiled using goboring.

/ # apk search openssl3
openssl3-doc-3.0.5-r0
openssl3-dev-3.0.5-r0
openssl3-libs-static-3.0.5-r0
openssl3-3.0.5-r0
libcrypto3-3.0.5-r0
openssl3-dbg-3.0.5-r0
libssl3-3.0.5-r0

@mitchnielsen
Copy link

Also check this rancher/rke2#659 (comment)

Thanks for linking to this, I see this FIPS fork has been well maintained so far:

So to check in as an update to Stan's PR that was closed in April 2022: are there currently any plans to upstream these changes to provide more native FIPS support?

@rikatz
Copy link
Contributor Author

rikatz commented Feb 26, 2024

So, something here:
I know there is an image from NGINX INC that builds alpine with FIPS support: https://github.com/nginxinc/alpine-fips/blob/main/Dockerfile

I'm not sure the implication on it, and also probably we need boringcrypto also for Go builds.

On the PR, I'm not sure we want to move away from Alpine, instead I would like to:

  • Have an official Openssl FIPS build from Alpine (maybe someone can reach them and check)
  • Verify what else we would need to make ingress-nginx FIPS compliant
    I'm right now all heads down on releasing with NGINX v1.25 + some huge backlog of things we need to fix, but I would be very happy and glad if someone can pick this issue and do some experiments with Alpine :)

@rikatz
Copy link
Contributor Author

rikatz commented Jul 14, 2024

/close

We don't have ppl willing to maintain this, and I wont be able to work on it.

@k8s-ci-robot
Copy link
Contributor

@rikatz: Closing this issue.

In response to this:

/close

We don't have ppl willing to maintain this, and I wont be able to work on it.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. needs-priority needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

7 participants