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

Adding wolfSSL FIPS Ready Docs #117

Merged
merged 1 commit into from
Dec 21, 2023

Conversation

night1rider
Copy link

Adding wolfssl fips ready guide documentation based on: https://www.wolfssl.com/docs/fips-ready-user-guide/

Copy link
Contributor

@douzzer douzzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some grammar suggestions, and a couple fixes.

@@ -0,0 +1,60 @@
# wolfSSL FIPS Ready

Do you have a project you'll need for a FIPS approved cryptographic library at
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't quite say what you mean -- you want something like "Do you have a project that will need a FIPS approved cryptographic library".

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to:
"Do you have a project that will need a FIPS approved cryptographic library at a later date, but want to be ready for it now? "

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

Do you have a project you'll need for a FIPS approved cryptographic library at
a future date and want to be ready for it now? wolfSSL FIPS Ready is exactly
what you need. It is the wolfSSL Inc FIPS enabled cryptography layer code
included in the wolfSSL source tree that one can enable and build. You do not
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bit of a run-on sentence here -- better something like "It is the cryptography layer from the public wolfSSL source tree, with the FIPS tooling ready to enable and build."

Copy link
Author

@night1rider night1rider Dec 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to:
"wolfSSL FIPS Ready includes the cyrptography layer from the public wolfSSL source tree, along with the FIPS tooling enabled for a FIPS Ready build."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, spelling. LGTM otherwise.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed spelling of "cyrptography " to "cryptography "

included in the wolfSSL source tree that one can enable and build. You do not
get a FIPS certificate, you are not FIPS approved, but you will be Ready to go
through the FIPS process when the time comes. FIPS Ready means that you have
included the FIPS code into your build and that you are operating according to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to be careful and specific here: "FIPS Ready means that you have included the FIPS tooling into your build, and are accessing the cryptography according to the FIPS requirements for applications."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to:
"FIPS Ready means that the FIPS tooling is included in the build, and is accessing the cryptography according to the FIPS requirements for applications."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The point is that the application is guaranteed to be accessing the crypto per FIPS reqs. Your phrasing says that the tooling is accessing the crypto per FIPS reqs, which goes without saying.

Copy link
Author

@night1rider night1rider Dec 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes A few things based on our discussions and my misunderstanding of fips-ready.
Change initial sentence to:
"FIPS Ready allows application developers to assure that they have correctly integrated the necessary FIPS setup, and are correctly using the API and underlying protocols, providing for a seamless transition to the full FIPS certified wolfSSL library for an application."

Along with adding this to the bottom of section 1.1:
"The FIPS boundary provides confirmation about multiple aspects of your application. The processing
of private key access that will assure proper unlocking and relocking of keys according to the FIPS
specification. The assurance that no FIPS-forbidden modes or key sizes are being used, along with
proper entropy source setup. FIPS Ready also helps discover conflicts with outside sub-system integration your application needs, for example determining if other applications or devices on a network support your new FIPS Ready cipher suites for communication between each other"

algorithm self-tests (CAST) that came with FIPS 140-3. When the time comes,
you can get your operating environment tested and added to the wolfSSL Inc
FIPS 140-3 certificate for wolfCrypt or submit for a brand new FIPS 140-3 cert
from scratch and all the coding work will have been done.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need a little more run-on sentence cleanup, something like: "When the time comes, we will shepherd your operating environment through testing, and get it added to the existing wolfCrypt FIPS 140-3 certificate. In some situations, a new FIPS 140-3 certificate will be required, and we will work with you through the testing and certification process. In both scenarios, FIPS Ready assures that your application will be fully functional with wolfCrypt as certified."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to:
"When the time comes, we will shepherd your operating environment through testing and add it to the wolfCrypt FIPS 140-3 certificate. In special situations, a new FIPS 140-3 certificate will be required, but we are ready to provide guidance through the testing and certification process. In both scenarios, FIPS Ready assures that your application will be fully functional with wolfCrypt as certified."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

wolfSSL-FIPS-Ready/src/section01.md Outdated Show resolved Hide resolved
wolfSSL-FIPS-Ready/src/section01.md Outdated Show resolved Hide resolved
wolfSSL-FIPS-Ready/src/section02.md Outdated Show resolved Hide resolved
## Configure the build.

```
$ ./configure --enable-fips=ready[a]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've never seen this "[a]" before -- it doesn't work. It's just --enable-fips=ready.

Copy link
Author

@night1rider night1rider Dec 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a Copy paste mistake, [a] refers to a footnote on the original webpage. I couldn't find a good way to create a footnote that would work for both the pdf version and html so I decided to include it in section.

New text for section 2.2:

$ ./configure --enable-fips=ready CFLAGS="-DNO_STRICT_ECDSA_LEN"

This configure with the -DNO_STRICT_ECDSA_LEN CFLAG set should be considered, the strict len check causes issues with vector tests, however it is not known how it will work out with normal SSL/TLS and crypto operations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll put this before a wider audience to see if we can frame it better. It's not the sort of complicated caveat we want to put in front of customers unless absolutely necessary.

Copy link
Author

@night1rider night1rider Dec 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Due to internal discussion for the moment the footnote has been removed due to being potentially irrelevant to the current FIPS Ready

@night1rider night1rider force-pushed the fips-ready-documentation branch 2 times, most recently from c3de592 to 40122bf Compare December 19, 2023 19:01
Copy link
Contributor

@douzzer douzzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Nice work!

@douzzer douzzer merged commit 247079a into wolfSSL:master Dec 21, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants