Replies: 2 comments
-
Hi folks, So I've been meaning to give a quick overview on the FIPS accreditation process, and now that there are a few people asking about it I'll put it up here for the benefit of all. I'm going to put it in a FAQ format because I keep getting asked the same questions and so it makes sense to do it this way. Q - What certification is OpenFIPS201 being accredited for?The OpenFIPS201 applet will be certified under two different accreditation schemes:
Q - What is CMVP / FIPS 140?
FIPS 140 is a standard managed by the NIST Cryptographic Module Validation Program for certifying products that provide or contain cryptographic functionality. FIPS 140 has been around for a long time, but it has only just recently been updated, after 18 years of virtually no change to the standard! FIPS 140-3 is the latest version and it is captured in the following documents:
The categories that the standards cover are:
Q - What is NPIVP?
The NIST Personal Identity Verification Program is far less involved than FIPS 140. It is basically there to ensure that the PIV-compliant card, issuance system or middleware you build complies with the technical interface, data model and basic security requirements. Practically speaking, it is mostly based on the successful execution of the NIST PIV Test Runner tool and the submission of the test artifacts generated by it (logs/reports). Q - What does OpenFIPS201 need to do to comply?
More detail on the changes made to the applet will be made available when the beta is released. It's not all good news however. One very notable restriction with FIPS 140 is summarised as follows:
Q - What restrictions will be placed on OpenFIPS01 once certified?
After testing, but prior to submission, the 'FIPS' code base will be locked and a binary generated from it. This will be the FIPS approved binary and it cannot be changed (or even re-compiled) without invalidating the certificate. The FIPS release will be hashed, digitally signed by us and counter-signed by the lab to provide assurance that is the accredited version.
Unfortunately, the news gets worse from here. One significant restriction with FIPS 140 can be summarised as follows:
So in summary:
We don't like this, it is a clear gap in the FIPS 140 standard in our opinion and one that encourages monolithic design and vendor lock-in. But we are not here to change the system, so we will release two versions of the binary:
We hope that the attainment of a FIPS approval will provide some confidence in the overall project, but understand that this choice between actual certification and choice of platform is not ideal. As we understand it, there are discussions in place within NIST to look at this. We will see. Q - What is the certification timeline?
The transition from FIPS 140-2 to FIPS 140-3 has apparently overwhelmed the NIST CMVP team and as such, there are long delays in certification. The current estimated timeline is:
Q - OK so presuming it is certified, now I have a perfectly secure PKI token right?
So the FIPS 140-3 accreditation is about ensuring (from the applet's perspective):
What FIPS 140-3 is not:
So for this reason, we still have very much on our wish list a fully independent security-centric code audit. At this point, cost is the main inhibitor, with rough estimates of US$70-100K being thrown around. If you use OpenFIPS201 in your department/organisation and want to contribute to the overall security, this would be a great way to do it! Q - Can I improve or make changes to the FIPS OpenFIPS201 source code?
Of course! We encourage forking, pull requests, raising issues and generally being a part of the improvement of OpenFIPS201. Unfortunately none of this will effect the actual FIPS approved version unless it is rolled into a future re-validation. Security bugs will obviously get highest priority here. Thanks for reading and please post any questions, opinions, corrections or general musings in this discussion! I'll try to keep the FAQ up-to-date as we go forward. |
Beta Was this translation helpful? Give feedback.
-
We are official! From the CMVP IUT web site: To be clear this just means we are officially 'under test', it does not mean we have our cert yet. Still, our little project is in big company now. |
Beta Was this translation helpful? Give feedback.
-
With the pre-validation conducted in Feb 21, the OpenFIPS201 validation for FIPS 140-3 began officially last month! It's a slow process, but we're looking forward to our initial product review.
I thought I would put this discussion up in case anyone wanted to discuss the process or ask questions! I will try and post up any particular insights from the process, either to help future crypto module vendors or perhaps simply for future civilisations to understand more about what kind of quaint rituals their human ancestors spent far too much time on.
Beta Was this translation helpful? Give feedback.
All reactions