Modyfikacja dostępnych algorytmów szyfrowania w połączeniach z apletami Java

Avatar photo
  • Konrad Kowalski
  • 15/04/2021
  • Serwery
  • 0 komentarzy
OpenJDK

Łącząc się ze starszymi urządzeniami, wykorzystującymi do komunikacji aplety Java możemy napotkać problem związany z algorytmami szyfrującymi. Z biegiem lat, niektóre z algorytmów uznano za przestarzałe i zostały wyłączone w domyślnej konfiguracji Javy. Blokada algorytmów może doprowadzić do braku komunikacji.

Problem z komunikacją objawia się najczęściej komunikatem typu „The server selected protocol version TLS10 is not accepted by client preferences”

Aplet nie może zostać uruchomiony ze względu na zablokowanie algorytmów szyfrowania.
Aplet nie może zostać uruchomiony ze względu na brak algorytmu TLS10

Aktywacja dodatkowych algorytmów szyfrowania w OpenJDK (Linux)

Konfiguracja algorytmów szyfrowania OpenJDK w systemach Linux dostępna jest w pliku java.security.

W systemie Debian z zainstalowanym OpenJDK w wersji 11 plik konfiguracyjny znajduje się w ścieżce: /etc/java-11-openjdk/security/java.security

Wyłączone algorytmy zostały wymienione się w parametrze jdk.tls.disabledAlgorithms

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

W celu odblokowania algorytmu, należy usunąć jego nazwę z listy. W przykładzie usunięty został algorytm TLSv1

jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

Po aktywacji TLSv1 aplet mógł zadziałać poprawnie.

Aplet działa poprawnie
Aplet działa poprawnie

Aktywacja dodatkowych algorytmów szyfrowania w Java (Windows)

Podobnie jak w OpenJDK należy zmodyfikować plik java.security. W systemie Windows znajduje się on w ścieżce: Ścieżka instalacji JRE\lib\security\java.security

Na przykład: C:\Program Files (x86)\Java\jre1.8.0_291\lib\security\java.security

Parametr podlegający modyfikacji jest taki sam jak w OpenJDK (jdk.tls.disabledAlgorithms)

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves

Dodaj komentarz