In Bezug auf die von Java8 unterstützte TLS Cipher Suite habe ich untersucht, ob es einen Unterschied zwischen OracleJDK / AdoptOpenJDK / OpenJDK von Linux gibt.
Ich habe das folgende Befehlszeilenprogramm erstellt und die Liste erhalten.
Ich habe eine Liste der folgenden OpenJDK 8 mit dem obigen Tool erhalten.
Details der Version sind wie folgt.
OracleJDK8 for Win64:
> java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
AdoptOpenJDK8 for Win64:
> java -version
openjdk version "1.8.0_192"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_192-b12)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.192-b12, mixed mode)
CentOS7(64bit):
$ sudo yum install java-1.8.0-openjdk.x86_64
-> java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 wurde installiert.
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Amazon Linux 2(64bit):
$ sudo yum install java-1.8.0-openjdk.x86_64
-> java-1.8.0-openjdk-1.8.0.191.b12-0.amzn2.x86_64 wurde installiert.
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Ubuntu 18.04 Bionic(64bit):
$ sudo apt update
$ sudo apt-get install openjdk-8-jdk
-> openjdk-8-jdk, 8u191-b12-0ubuntu0.18.04.1 wurde installiert.
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Die folgenden Befehlsergebnisse wurden in eine Textdatei umgeleitet und in jeder Umgebung gespeichert.
java -jar java-jsse-cipher-suites-dump-demo-v201901.1.jar
java -Djava.security.properties=java.security.crypto.policy-limited -jar java-jsse-cipher-suites-dump-demo-v201901.1.jar
java -Djava.security.properties=java.security.crypto.policy-unlimited -jar java-jsse-cipher-suites-dump-demo-v201901.1.jar
https://github.com/msakamoto-sf/java-jsse-cipher-suites-dump-demo/tree/v201901.1/2019-01-14_result
Betrachtet man die Unterschiede für jeden, wurden die folgenden Ergebnisse erhalten:
Daher scheint das Folgende bestätigt werden zu können.
Es überrascht nicht, dass JSSE ursprünglich in 100% reinem Java implementiert wurde und die Quelle von OpenJDK verwaltet wird. Daher kann dieselbe Cipher Suite mit jeder Build-Binärdatei verwendet werden, solange sie aus OpenJDK erstellt wird, ohne die Quelle zu ändern.
Die Existenz von "Cipher Suite, die nur mit Oracle JDK verwendet werden kann" ist möglich, aber in diesen Tagen, in denen Interoperabilität und Sicherheit wichtig sind, ist es schwierig zu sagen, ob eine solche Existenz im Java-Ökosystem zulässig ist. Scheinen. (Es kann sich um eine spezielle Erweiterung handeln, die nur von bezahlten Benutzern des Oracle JDK verwendet werden kann. Wenn das OpenJDK-Ökosystem angenommen wird, ist dies jedoch nicht möglich.)
Ich habe mir darüber eine Weile Sorgen gemacht: "Wirklich? Es ist wahr ... ??". Als ich es diesmal kurz versuchte, konnte ich bestätigen, dass es keinen Unterschied gab. Es war. Für eine strengere Überprüfung ist es erforderlich, tatsächlich einen Server-Socket mit einer Kombination aus jeder Protokollversion x einer einzelnen Verschlüsselungssuite vorzubereiten und zu überprüfen, ob die Verbindung tatsächlich erfolgreich ist, diesmal jedoch nicht so sehr. ... Also habe ich mich entschlossen, den Unterschied innerhalb des Bereichs zu überprüfen, der aus dem SSLContext ersichtlich ist.
In Bezug auf die SSL / TLS Cipher Suite war ich vorerst erleichtert, weil ich bestätigen konnte, dass "Wenn es sich um ein OpenJDK-basiertes Build handelt, die Cipher Suite, die mit Binärdateien von jedem Anbieter verwendet werden kann, dieselbe ist".
Recommended Posts