如何使现有Java代码FIPS 140-2兼容?

如何使现有Java代码FIPS 140-2兼容?,java,jce,fips,Java,Jce,Fips,我们有一些Java库执行AES和RSA加密(使用javax.crypto.Cipher) 为了使代码符合要求,出现了一个新的要求。读了一些文章后,我了解到我必须在JDK/JRE中的java.security文件中更改以下内容并重新编译代码。这会使我的库FIPS 140-2兼容吗 #Use these three providers for FIPS compliant security.provider.1=com.rsa.jsafe.provider.JsafeJCE security.pro

我们有一些Java库执行AES和RSA加密(使用javax.crypto.Cipher)

为了使代码符合要求,出现了一个新的要求。读了一些文章后,我了解到我必须在JDK/JRE中的java.security文件中更改以下内容并重新编译代码。这会使我的库FIPS 140-2兼容吗

#Use these three providers for FIPS compliant
security.provider.1=com.rsa.jsafe.provider.JsafeJCE
security.provider.2=com.rsa.jsse.JsseProvider
security.provider.3=sun.security.provider.Sun

#Disable the below providers for FIPS compliant
#security.provider.1=sun.security.provider.Sun
#security.provider.2=sun.security.rsa.SunRsaSign
#security.provider.3=sun.security.ec.SunEC
#security.provider.4=com.sun.net.ssl.internal.ssl.Provider
#security.provider.5=com.sun.crypto.provider.SunJCE
#security.provider.6=sun.security.jgss.SunProvider
#security.provider.7=com.sun.security.sasl.Provider
#security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
#security.provider.9=sun.security.smartcardio.SunPCSC
#security.provider.10=sun.security.mscapi.SunMSCAPI

是否需要执行任何其他更改,如使用任何特殊jar、使用任何参数编译等?

符合FIPS 140-2:

  • 您必须使用FIPS 140-2批准的加密模块。它将提供经批准的加密实现。请参阅:。阅读说明和/或证书以了解要使用的版本
  • 对于每个加密操作(签名、加密、密钥建立、散列…),您还必须使用经批准的安全算法和参数。阅读:。该文档还提供了许多有关安全函数(密钥大小、椭圆曲线等)配置的参考资料
对于您的情况:

  • AES128、AES192或AES256用于加密,操作模式为GCM、CCM、CTR、CBC、CFB、OFB(或XTS用于存储)
  • RSA用于密钥建立或签名,密钥大小至少为2048位