Поддерживается ли TLSv1.3 в OpenJDK 11 под Ubuntu? - PullRequest
0 голосов
/ 06 февраля 2019

В Ubuntu 18.04

sudo apt install openjdk-11-source

приводит к ProtocolVersion.java, который не знает о TLSv1.3.Есть ли способ исправить это (без ограничительного лицензирования)?

Ответы [ 2 ]

0 голосов
/ 26 июля 2019

Обновление

Начиная с 23 апреля 2019 года , Ubuntu (18.04 LTS и более поздние выпуски) поставляется с версией JRE / JDK 11.0.3 .По этой причине исходный ответ alamar устарел.

Из любопытства я написал небольшой инструмент проверки TLS v1.3, который программно проверяет поддержку TLS v1.3Целевая среда выполнения среда.Таким образом, можно быстро определить, что происходит:

public class TLS13Checker {

    public static void main(String[] args) {
        SSLContext context = null;
        try {
            KeyStore keyStore = KeyStore.getInstance("pkcs12");
            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("PKIX");
            trustManagerFactory.init(keyStore);
            TrustManager[] trustAllCerts = trustManagerFactory.getTrustManagers();
            context = SSLContext.getInstance("TLSv1.3");
            context.init(null, trustAllCerts, new SecureRandom());

            SSLParameters params = context.getSupportedSSLParameters();
            String[] protocols = params.getProtocols();
            System.out.println("Java version : " + System.getProperty("java.runtime.version"));
            boolean supportsTLSv13 = false;
            for (String protocol : protocols) {
                if ("TLSv1.3".equals(protocol)) {
                    supportsTLSv13 = true;
                    break;
                }
            }
            if(supportsTLSv13) {
                System.out.println("JRE supports TLS v1.3!");
            } else {
                System.out.println("JRE does NOT support TLS v1.3!");
            }
            String[] suites = params.getCipherSuites();
            System.out.println("A total of " + suites.length + " TLS cipher suites is supported.");

        } catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {
            e.printStackTrace();
            System.exit(42);
        }

    }
}

Вы можете просто скомпилировать и запустить его, и результат будет аналогичен тому, что я получил в недавней среде OpenJDK (в MacOS):

Java version : 11.0.3+7
JRE supports TLS v1.3!
A total of 45 TLS cipher suites is supported.

Кроме того, этот список содержит обзор всех обычных имен JSSE Cipher Suite .Это может быть полезно для справки или для других (реализации) целей.

Надеюсь, это поможет.

0 голосов
/ 13 февраля 2019

По какой-то причине Ubuntu на самом деле поставляет Java 10 в пакетах openjdk-11- *.

...