Hüpfburg-Konfiguration für TLS

Ich verwende eine Test-App, die Java für die TLS-Kommunikation verwendet. Standard Oracle Java ist in meinem System installiert.

Ich muss die TLS_DHE_RSA_WITH_AES_128_CCM Cipher Suite verwenden, die von Standard-Java nicht unterstützt wird, daher haben viele vorgeschlagen, Bouncy Castle zu verwenden. Ich habe den Ordner bcprov-ext-jdk18on-171.jar in den $JAVA_HOME/lib-Ordner heruntergeladen und kopiert. Außerdem wurde die java.security-Datei aktualisiert, um Hüpfburg wie folgt in die Anbieterliste aufzunehmen:

security.provider.4=org.bouncycastle.jce.provider.BouncyCastleProvider

Ich kann aber immer noch nicht TLS_DHE_RSA_WITH_AES_128_CCM zur Arbeit kommen.

Sind die von mir durchgeführten Schritte ausreichend und korrekt? Kann jemand die Schritte zur Installation und Konfiguration von Bouncy Castle vorschlagen?

🤔 А знаете ли вы, что...
Java поддерживает работу с базами данных через JDBC (Java Database Connectivity).


2
57
1

Antwort:

Gelöst

Nein, da Sie den JCE-Anbieter nicht zuerst als bctls-$version.jar zum Klassenpfad hinzufügen müssen, da er nicht im standardmäßigen Bouncy Castle (BC)-Anbieter enthalten ist. Es ist erforderlich, auch den TLS / JSSE-Anbieter zu registrieren:

Security.insertProviderAt(new rg.bouncycastle.jsse.provider.BouncyCastleJsseProviderBouncyCastleJsseProvider(), 1);

Oder registrieren Sie es auf andere Weise, z. indem Sie es in die java.security-Datei aufnehmen.

Da Sie den Anbieter wahrscheinlich für alle, wenn nicht die meisten Ihrer TLS-Anforderungen verwenden möchten, ist es sinnvoll, ihn mit der höchsten Priorität hinzuzufügen. Beachten Sie, dass der JSSE-Anbieter keine Implementierungen wie RSA oder AES für Cipher oder Signature bereitstellt, sodass dies nicht im Weg sein sollte.

Beachten Sie, dass die RSA- und AES-Implementierungen von Sun weiterhin vom Bouncy Castle JSSE-Anbieter verwendet werden könnten, und da diese wahrscheinlich besser getestet sind und möglicherweise Hardwarebeschleunigung verwenden, sollten Sie wahrscheinlich sicherstellen, dass der BouncyCastleProvider als letzter Anbieter in geladen wird Liste mit addProvider. Der Anbieter kann tatsächlich erforderlich sein, da die CCM-Unterstützung bei den Standardanbietern, die mit der Standard-Java-Installation geliefert werden, zu fehlen scheint.

Falls Sie sich fragen: JSSE ist die Java Secure Socket Extension.