Java AES加密FIPS 140-2兼容吗?
我用Java8编写了加密模块,如下所示-Java AES加密FIPS 140-2兼容吗?,java,encryption,cryptography,aes,Java,Encryption,Cryptography,Aes,我用Java8编写了加密模块,如下所示- private static final String SECRET_KEY_PASSPHRASE="012345678901234567890123456789012"; //256 bit public Cipher getCipherInstance(int encryptionMode) throws ... /*throws necessary exceptions*/{ Cipher cipher
private static final String SECRET_KEY_PASSPHRASE="012345678901234567890123456789012"; //256 bit
public Cipher getCipherInstance(int encryptionMode)
throws ... /*throws necessary exceptions*/{
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] keyBytes=getKeyBytes(SECRET_KEY_PASSPHRASE);
/*getKeyBytes function returns 16 bytes from 256 bit passphrase*/
SecretKeySpec secretKeySpecy = new SecretKeySpec(SECRET_KEY_PASSPHRASE.getBytes("UTF-8"), "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
cipher.init(encryptionMode, secretKeySpecy, ivParameterSpec);
return cipher;
}
我正在使用从上述函数返回的cipher对象加密/解密数据
AES或密码类FIPS 140-2的代码或Java实现是否兼容
但我并没有得到任何文件明确说明JavaAES实现是符合FIPS的 默认Java JCE不符合FIPS,因为它支持较弱或过时的原语 AES是FIPS-140-2(附录a)中支持的列出的加密功能 为确保FIPS合规性,您可以使用符合FIPS的JCE实施(IBM FIPS JSSE、RSA BSAFE、BouncyCastle BC-FA等)或FIPS模式下的JSSE(连接到符合FIPS的硬件-智能卡、hsm) AES或密码类FIPS 140-2的代码或Java实现是否兼容 FIPS-140-2是关于加密模块的,因此除非您自己实现加密模块,否则您不能要求密码类或您的应用程序符合要求(不管代码中明显的弱点)
但我并没有得到任何文件明确说明JavaAES实现是符合FIPS的 默认Java JCE不符合FIPS,因为它支持较弱或过时的原语 AES是FIPS-140-2(附录a)中支持的列出的加密功能 为确保FIPS合规性,您可以使用符合FIPS的JCE实施(IBM FIPS JSSE、RSA BSAFE、BouncyCastle BC-FA等)或FIPS模式下的JSSE(连接到符合FIPS的硬件-智能卡、hsm) AES或密码类FIPS 140-2的代码或Java实现是否兼容
FIPS-140-2是关于加密模块的,因此除非您自己实现加密模块(不管代码中明显的弱点)什么版本的Java,否则您不能要求密码类或您的应用程序符合要求?在早期版本中,您需要为FIPS 140-2或BouncyCastle使用Java加密扩展(JCE)。查看其java 8。我需要检查次要版本。该库可能符合FIPS,但您的代码肯定存在安全缺陷(使用密钥作为IV,没有完整性检查,…)但我没有得到任何文档明确说明JavaAES实现是FIPS兼容的。默认的JavaJCE不支持FIPS,因为它支持较弱或过时的原语。AES是FIPS-140-2(附录a)中支持的列出的加密功能。为确保FIPS合规性,您可以使用FIPS投诉JCE实施(IBM FIPS JSSE、RSA BSAFE、BouncyCastle BC-FA、FIPS模式下的JSSE…)有效禁用弱密码和不受支持的密码或合规硬件(智能卡、hsm)。FIPS-140-2是关于加密模块的,因此您不能要求密码类或您的应用程序符合要求(无论实现中的明显缺陷如何)什么版本的Java?在早期版本中,您需要为FIPS 140-2或BouncyCastle使用Java加密扩展(JCE)。查看其java 8。我需要检查次要版本。该库可能符合FIPS,但您的代码肯定存在安全缺陷(使用密钥作为IV,没有完整性检查,…)但我没有得到任何文档明确说明JavaAES实现是FIPS兼容的。默认的JavaJCE不支持FIPS,因为它支持较弱或过时的原语。AES是FIPS-140-2(附录a)中支持的列出的加密功能。为确保FIPS合规性,您可以使用FIPS投诉JCE实施(IBM FIPS JSSE、RSA BSAFE、BouncyCastle BC-FA、FIPS模式下的JSSE…)有效禁用弱密码和不受支持的密码或合规硬件(智能卡、hsm)。FIPS-140-2是关于加密模块的,因此您不能要求密码类或您的应用程序符合要求(不管实现中的明显缺陷)