Программы на C++. Форум разработчиков
Anonymous
Может ли клиентское приложение соответствовать строгому стандарту FIPS (FIPS 140-3)?
Сообщение
Anonymous » 06 мар 2026, 22:39
Я пытаюсь понять соответствие FIPS 140-3 следующих клиентов:
Клиенты Java, использующие поставщика BouncyCastle FIPS и поставщика BouncyCastleJSSE
Клиент OpenSSL, использующий поставщик Fips OpenSSL.
В мое Java-приложение,
Зависимости Jar :
log4j-core-2.17.1.jar log4j-api-2.17.1.jar
jackson-annotations-2.13.4.jar jackson-core-2.13.4.jar
jackson-databind-2.13.4.2.jar bc-fips-2.1.0.jar
bcpkix-fips-2.1.10.jar bctls-fips-2.1.22.jar bcutil-fips-2.1.5.jar
log4j-jul-2.25.3.jar
Установите следующие свойства:
Код: Выделить всё
System.setProperty("org.bouncycastle.fips.approved_only", Boolean.TRUE.toString());
System.setProperty("jdk.tls.trustNameService", Boolean.TRUE.toString());
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
Выдержки кода:
Код: Выделить всё
if( Security.getProvider(FIPS_PROVIDER_NAME) == null)
{
Class bcFipsClass = Class.forName("org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider");
Provider bcFipsObj = (Provider)bcFipsClass.getDeclaredConstructor().newInstance();
Security.insertProviderAt(bcFipsObj, 1);
}
if( Security.getProvider(FIPS_JSSE_PROVIDER_NAME) == null)
{
Class bcJsseClass = Class.forName("org.bouncycastle.jsse.provider.BouncyCastleJsseProvider");
Constructor bcJsseClassConstructor = bcJsseClass.getConstructor(String.class);
Provider bcJsseObj = (Provider)bcJsseClassConstructor.newInstance("fips:BCFIPS");
Security.insertProviderAt(bcJsseObj, 2);
}
String type = (Security.getProvider("BCJSSE") != null) ? "BCFKS" : "PKCS12";
..
// generate truststore from ca pem file
KeyStore trustStore = null;
if ( caPemFile != null && !caPemFile.isBlank() )
{
try ( final InputStream inputStream = new FileInputStream(caPemFile) )
{
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/79900413/can-client-application-be-strict-fips-compliant-fips-140-3[/url]
1772825971
Anonymous
Я пытаюсь понять соответствие FIPS 140-3 следующих клиентов: [list] [*]Клиенты Java, использующие поставщика BouncyCastle FIPS и поставщика BouncyCastleJSSE [*]Клиент OpenSSL, использующий поставщик Fips OpenSSL. [/list] [b]В мое Java-приложение,[/b] [b]Зависимости Jar[/b]: [list] [*]log4j-core-2.17.1.jar log4j-api-2.17.1.jar jackson-annotations-2.13.4.jar jackson-core-2.13.4.jar jackson-databind-2.13.4.2.jar bc-fips-2.1.0.jar bcpkix-fips-2.1.10.jar bctls-fips-2.1.22.jar bcutil-fips-2.1.5.jar log4j-jul-2.25.3.jar [/list] [b]Установите следующие свойства:[/b] [code] System.setProperty("org.bouncycastle.fips.approved_only", Boolean.TRUE.toString()); System.setProperty("jdk.tls.trustNameService", Boolean.TRUE.toString()); System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); [/code] [b]Выдержки кода:[/b] [code] if( Security.getProvider(FIPS_PROVIDER_NAME) == null) { Class bcFipsClass = Class.forName("org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider"); Provider bcFipsObj = (Provider)bcFipsClass.getDeclaredConstructor().newInstance(); Security.insertProviderAt(bcFipsObj, 1); } if( Security.getProvider(FIPS_JSSE_PROVIDER_NAME) == null) { Class bcJsseClass = Class.forName("org.bouncycastle.jsse.provider.BouncyCastleJsseProvider"); Constructor bcJsseClassConstructor = bcJsseClass.getConstructor(String.class); Provider bcJsseObj = (Provider)bcJsseClassConstructor.newInstance("fips:BCFIPS"); Security.insertProviderAt(bcJsseObj, 2); } String type = (Security.getProvider("BCJSSE") != null) ? "BCFKS" : "PKCS12"; .. // generate truststore from ca pem file KeyStore trustStore = null; if ( caPemFile != null && !caPemFile.isBlank() ) { try ( final InputStream inputStream = new FileInputStream(caPemFile) ) { CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); Collection Подробнее здесь: [url]https://stackoverflow.com/questions/79900413/can-client-application-be-strict-fips-compliant-fips-140-3[/url]