1
$\begingroup$

I am developing an application that will need to store a very large volume of hashed data per user for which I want to ensure I am doing everything possible to maximize security. At this point I believe I will be utilizing SHA3-512 + randomized salts over a yet-to-be determined number of iterations.

Is there a standard application level accreditation that exists to verify the security of my data encryption methodology, or is FIPS the only prevailing authority on encryption standards?

$\endgroup$
4
  • $\begingroup$ If I understand your question you're looking for alternative documentation for SHA-3. Or are you speaking about your application in general? $\endgroup$
    – Q-Club
    Jan 27, 2017 at 16:28
  • $\begingroup$ @back_seat_driver I am looking to find out if there is an authoritative organization that gives some type of accreditation to say "this application encrypts data in an acceptably secure manner". I would like to find out if this exists to 1) Verify the security of my encryption methodology, and 2) Promote that verification to potential clients of my application. $\endgroup$
    – nicktendo
    Jan 27, 2017 at 16:41
  • 2
    $\begingroup$ I’m unaware of any such entity. If you intend on writing your own implementation of SHA-3 (“Verify the security of my encryption methodology”) Then there are good resources for verifying that hash algorithm. $\endgroup$
    – Q-Club
    Jan 27, 2017 at 17:03
  • $\begingroup$ @nicktendo no crypto library has been formally verified so far but this might be changing ... soon... (TM). There is no authoritative organization that do such thing. Only researchers and some engineers do that. Verifying an implementation is very time consuming (I have spent the last 6 months doing it...) and you should expect it to be a bit more popular... in the next years! $\endgroup$
    – Biv
    Jan 28, 2017 at 4:43

2 Answers 2

2
$\begingroup$

While there are no prevailing private entities associated with the accreditation of security standards, the NIST does provide the Cryptographic Module Validation Program that "validates cryptographic modules to Federal Information Processing Standards (FIPS)140-1 Security Requirements for Cryptographic Modules, and other FIPS cryptography based standards.." (http://csrc.nist.gov/groups/STM/cmvp/index.html)

As I understand it, one could seek the status of a Validated FIPS Module via an NVLAP accredited Cryptographic and Security Testing (CST) Laboratory.

"Cryptographic modules are tested against requirements found in FIPS PUB 140-2, Security Requirements for Cryptographic Modules [ PDF ]. Security requirements cover 11 areas related to the design and implementation of a cryptographic module. For each area, a cryptographic module receives a security level rating (1-4, from lowest to highest) depending on what requirements are met." (http://csrc.nist.gov/groups/STM/cmvp/standards.html)

As such, one could leverage the FIPS security level validation from the NIST to publicly validate the security of their solution.

$\endgroup$
2
  • $\begingroup$ Testing is not verifying! (formal methods verify, fuzzing is testing). With testing you cannot show the absence of bugs. $\endgroup$
    – Biv
    Jan 28, 2017 at 4:47
  • 1
    $\begingroup$ @Biv I was once told that the main point of having FIPS validation is showing that the devs took their job seriously which means there's a better chance (w/o any further info about the authors) that they at least didn't majorly screwed up and made some / many thoughts about security. $\endgroup$
    – SEJPM
    Jan 29, 2017 at 14:14
1
$\begingroup$

There is of course FIPS validation for US specific validation. For international accepted modules there is Common Criteria validation. With FIPS and Common Criteria you mainly verify the system rather than a component or algorithm.

For either you first have to think of which part of the system you want to verify. You'd also have to think of which level you want to verify (FIPS level 1 to 4, EAL levels 1 to 6). For the later levels you may have more and more requirements for design and development.

So no, FIPS is certainly not the only / prevailing authority. As usual, besides the US, there is the rest of the world to consider as well.


Of course to pass FIPS / CC evaluation you may want to use a certified implementation for hashing. Otherwise you may be asked to certify your own solution. How hard this will be depends on the level.


Passing FIPS / CC is hard and expensive. You probably want to make sure you've got a business case before trying to certify an implementation.

Nothing stops you from trying to comply to FIPS and CC without certification of course; both do require you to implement your protocol carefully.

$\endgroup$
2
  • 2
    $\begingroup$ For the uninitiated: Note that FIPS and CC tend to certify different things. CC mainly (?) certifies that you did what you claim you did and FIPS tries to certify seriousness of security-related hardening / engineering. $\endgroup$
    – SEJPM
    Jan 29, 2017 at 14:16
  • $\begingroup$ @SEJPM It's a complex field. But with CC you generally try and comply with a protection profile (PP). You could write your own, but there are PP's out there for common protocols (however, the problem shown in the question may not be covered by any of them). I guess I can agree with your assessment of differences between point of view, yes. $\endgroup$
    – Maarten Bodewes
    Jan 29, 2017 at 14:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.