web-dev-qa-db-ja.com

Java sslのアプリケーションサーバー)で弱い暗号スイートを無効にする方法

カスタムJavaアプリケーションサーバーが実行されています。112ビットの暗号など、サーバーでサポートされている弱い暗号スイートがいくつかあるようです。それらを無効にしたいのですが、どこでできますか?また、TLSv1.2を有効にしたいソケットを初期化するコードは次のとおりです。

    KeyStore ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(sslstore), sslstorepass.toCharArray());
    KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
    kmf.init(ks, sslcertpass.toCharArray());

    SSLContext sc = SSLContext.getInstance("TLS");
    sc.init(kmf.getKeyManagers(), null, new SecureRandom());
    SSLServerSocketFactory ssf = sc.getServerSocketFactory();
    serverSocket = ssf.createServerSocket(port);

    System.out.println("Socket initialized");
3
jgm

Javaでは、暗号スイートをと呼ばれるセキュリティポリシーファイルでの使用から削除/除外できますJava.securityJREにあります:$PATH/[JRE]/lib/securityjdk.tls.disabledAlgorithmsポリシーファイルのプロパティは、TLS暗号の選択を制御します。 jdk.certpath.disabledAlgorithmsは、SSL証明書で遭遇するアルゴリズムを制御します。オラクルはこれについてより多くの情報を持っています ここ

セキュリティポリシーファイルで、次のように入力した場合:jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 4096作成されるため、MD5、SHA1、DSAは許可されず、RSAは、キーが少なくとも4096ビットの場合にのみ許可されます。 TLSバージョンの強制に関しては、これはオペレーティングシステム(Linux、Solaris、Windows、BSDなど)、サーバー(Apache、IIS、その他)に依存します。

4
munkeyoto