3 FIPS Cryptography Compliance Properties That You Can't Check Statically

Cryptosense
12 Aug 202107:58

Summary

TLDRIn this video, Graeme Steele, CEO of Cryptosense, discusses the challenges of achieving FIPS cryptography compliance. He explains that using FIPS-certified libraries is not enough; applications must also manage key usage, initialization vectors, and salt values correctly. Despite libraries' compliance, applications often misuse cryptography, leading to security vulnerabilities. Steele introduces the Cryptosense Analyzer tool, which monitors runtime cryptography to ensure compliance with dynamic properties that static analysis can't check.

Takeaways

  • 🔐 FIPS compliance is crucial for applications using cryptography to meet security standards set by customers and regulatory bodies.
  • 🛠️ Using FIPS certified cryptographic libraries like Bouncy Castle or OpenSSL is a common approach to ensure cryptographic operations are compliant.
  • 🚨 Simply using FIPS certified libraries does not guarantee an application's FIPS compliance, as the application itself must correctly implement cryptographic practices.
  • 🔄 FIPS guidelines specify that RSA keys should not be reused for different signature schemes or purposes, which applications must enforce.
  • 🔄 Initialization Vectors (IVs) must be managed correctly by the application to prevent security vulnerabilities, as libraries cannot enforce IV uniqueness.
  • 🔑 Password-Based Key Derivation Functions (PBKDFs) require unique salts for each password to prevent attackers from precomputing keys, a responsibility of the application.
  • 📚 NIST publications such as 800-132 and 800-38A provide detailed requirements for cryptographic practices that applications must adhere to.
  • 🔍 Researchers have found that the majority of cryptographic failures are due to applications misusing crypto libraries, not bugs within the libraries themselves.
  • 🛑 Crashes may occur when integrating FIPS libraries if the application attempts to use non-compliant cryptographic functions.
  • 🔄 Iterative debugging and code fixes are necessary to align application cryptography with FIPS requirements after integrating compliant libraries.
  • 🔄 The Cryptosense Analyzer tool helps automate the detection of dynamic cryptographic issues in applications to ensure ongoing FIPS compliance.

Q & A

  • What is FIPS compliance and why is it important for applications?

    -FIPS compliance refers to the adherence to a set of guidelines specified by the Federal Information Processing Standards for using cryptography securely. It is important because it ensures that cryptographic operations are performed securely, which is often a requirement by customers.

  • What is one way to make an application FIPS compliant?

    -One way to make an application FIPS compliant is by using cryptographic libraries that are already FIPS compliant and certified, such as the Bouncy Castle FIPS version or OpenSSL's FIPS version.

  • Why might an application crash when it is made to use only FIPS compliant libraries?

    -An application might crash when it is made to use only FIPS compliant libraries because it may attempt to call cryptographic operations that the library does not allow, such as legacy uses of SHA-1 or other non-compliant algorithms.

  • Is an application FIPS compliant if it only uses FIPS certified libraries?

    -No, an application is not necessarily FIPS compliant even if it uses FIPS certified libraries, as the application itself must also follow FIPS guidelines regarding the use of cryptography.

  • What percentage of crypto failures were due to applications misusing good crypto libraries, according to MIT researchers?

    -According to MIT researchers, 83% of crypto failures were due to applications misusing good crypto libraries.

  • Why can't cryptographic libraries enforce certain FIPS requirements?

    -Cryptographic libraries cannot enforce certain FIPS requirements because doing so would require them to keep track of all cryptographic operations, which would cause a significant state blowup and is not feasible.

  • What is the first FIPS requirement mentioned for applications to get right regarding RSA keys?

    -The first FIPS requirement mentioned is that an RSA key cannot be used for more than one signature scheme or for both encryption and signing.

  • What is an initialization vector (IV) and why is its management important in cryptographic operations?

    -An initialization vector (IV) is a value put into a block cipher at the beginning of a chain of operations to produce secure encryption or MAC. Its management is important because reusing the same IV with the same key in a stream cipher mode can compromise all plaintext.

  • What is the purpose of a salt in password-based key derivation functions?

    -The purpose of a salt in password-based key derivation functions is to ensure that each password can generate a potentially different set of keys, preventing attackers from using precomputed lookup tables to crack passwords.

  • How does the Cryptosense Analyzer tool help with FIPS compliance?

    -The Cryptosense Analyzer tool helps with FIPS compliance by tracing applications at runtime, logging all cryptographic operations, and checking for dynamic properties such as the misuse of RSA keys, IVs, and salts.

  • Where can one find more information about FIPS compliance requirements and the Cryptosense Analyzer tool?

    -One can find more information about FIPS compliance requirements and the Cryptosense Analyzer tool by downloading the FIPS cryptography cheat sheet or by visiting the provided links in the video description.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
CryptographyFIPS ComplianceRSA KeysInitialization VectorsPassword-Based KDFSecurityCrypto LibrariesApplication SecurityData ProtectionCybersecurity