Как выборочно использовать режим «только одобрено» с поставщиком BouncyCastle JSSE + поставщиком FIPS?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как выборочно использовать режим «только одобрено» с поставщиком BouncyCastle JSSE + поставщиком FIPS?

Сообщение Anonymous »

В небольшом фрагменте кода, работающем на Java 8, я пытаюсь следовать советам из руководства пользователя bc-fips-1.0.2.jar Legion of the Bouncy Castle Inc. BC-FJA 1.0.2. (Bouncy Castle FIPS Java API) Дата руководства пользователя: 14.09.19:

Примечание. Поддержка режима FIPS, по-видимому, уже реализована. начал исчезать в
Java 1.9, было подтверждено, что с Java
11 это пустая операция. Для Java 11 или более поздней версии мы рекомендуем использовать поставщика BCJSSE, если вам нужна поддержка FIPS.

(сноска на странице 11). И я делаю это в «смешанном» контексте, поэтому большинство потоков выполняются в режиме по умолчанию, а некоторые — в режиме, одобренном только FIPS.
Однако, похоже, это не так. Работа: кажется, что «одобренный» поток пытается повторно использовать и экземпляр создается «неутвержденным» потоком.
В частности, при программном включении bc-fips-1.0.2.jar BCFIPS и BCJSSE bctls-fips-1.0.10.jar на стандартном неизмененном OpenJDK 8 (в моем случае Corretto 8u232) и программном удалении встроенного поставщика SunJSSE, а затем выполнении HTTPS-соединения в новом потоке в несанкционированном режиме, затем в другом новом потоке в одобренном режиме возникает исключение:

Код: Выделить всё

Caused by: org.bouncycastle.crypto.fips.FipsUnapprovedOperationError: Attempt to use unapproved implementation in approved thread: SHA-512
at org.bouncycastle.crypto.internal.io.Utils.approvedModeCheck(Unknown Source)
at org.bouncycastle.crypto.internal.io.DigestOutputStream.write(Unknown Source)
at org.bouncycastle.crypto.UpdateOutputStream.update(Unknown Source)
at org.bouncycastle.jcajce.provider.BaseMessageDigest.engineUpdate(Unknown Source)
at java.security.MessageDigest.update(MessageDigest.java:335)
at org.bouncycastle.tls.crypto.impl.jcajce.JcaTlsCryptoProvider$NonceEntropySource$NonceEntropySourceSpi.runDigest(Unknown Source)
at org.bouncycastle.tls.crypto.impl.jcajce.JcaTlsCryptoProvider$NonceEntropySource$NonceEntropySourceSpi.engineNextBytes(Unknown Source)
at java.security.SecureRandom.nextBytes(SecureRandom.java:468)
at org.bouncycastle.tls.crypto.impl.jcajce.JcaNonceGenerator.(Unknown Source)
at org.bouncycastle.tls.crypto.impl.jcajce.JcaTlsCrypto.createNonceGenerator(Unknown Source)
at org.bouncycastle.tls.AbstractTlsContext.createNonceGenerator(Unknown Source)
at org.bouncycastle.tls.AbstractTlsContext.(Unknown Source)
at org.bouncycastle.tls.TlsClientContextImpl.(Unknown Source)
[etc]
Полный сценарий воспроизведения моих попыток находится по адресу https://gist.github.com/marnix/834610d0 ... fce96bacb9, подробности см. в javadoc класса.
Итак, мой вопрос: как мне заставить HTTPS-соединения работать, когда некоторые из них находятся в режиме по умолчанию, а другие - в режиме FIPS? только утвержденный режим с использованием BCJSSE вместо SunJSSE?
Или это не будет работать на Java 8, и мне придется ждать Java 9+, чтобы это начало работать? (Почему?)
(Моя конечная цель — не HTTPS-соединения, а другие вещи, где большинство из них будет работать в режиме по умолчанию, а некоторые потоки будут работать в режиме только для утвержденных.)

Подробнее здесь: https://stackoverflow.com/questions/633 ... vider-fips
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Crypto/FIPS/FIPS.C: 154: OpenSSL Внутренняя ошибка: Fatal FIPS Self -Fail Tosf
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Crypto/FIPS/FIPS.C: 154: OpenSSL Внутренняя ошибка: Fatal FIPS Self -Fail Tosf
    Anonymous » » в форуме Linux
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как использовать библиотеку BouncyCastle FIPS вместе с библиотекой BouncyCastle.Cryptography?
    Anonymous » » в форуме C#
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Режим BouncyCastle FIPS — проверка отзыва SSL-сертификата с помощью CRLDP
    Anonymous » » в форуме JAVA
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • Потенциальные проблемы использования версий библиотеки BouncyCastle, соответствующих и не поддерживающих FIPS, в одном п
    Anonymous » » в форуме JAVA
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»