Jetty 9 支援 TLS_FALLBACK_SCSV

Jetty 9 支援 TLS_FALLBACK_SCSV

我一直在努力獲得 A+SSL 伺服器測試 @ SSL 實驗室。但是,我不知道如何通過「降級攻擊預防」測試:

TLS_FALLBACK_SCSV

我在 Linux Ubuntu 15.04 (Vivid Vervet) 上執行 Jetty 9.3.0.v20150612 和 OpenJDK 8。

hristo@test:~$ java -version
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

我已通讀並按照以下說明進行操作Jetty 的 SSL 設定文檔,並盡力編輯相關的XML設定檔。無論我嘗試什麼,我仍然看到“不,不支援 TLS_FALLBACK_SCSV”。

我透過執行以下命令啟用了Jetty 的https和模組:ssl

$ java -jar start.jar --add-to-startd=https,ssl
INFO: ssl             initialised in ${jetty.base}/start.d/ssl.ini
INFO: https           initialised in ${jetty.base}/start.d/https.ini
INFO: Base directory was modified

我沒有修改香草jetty.xml,也沒有jetty-https.xml因為我不確定我需要在那裡改變什麼。這是我的配置:

啟動文件

# added this to the bottom of start.ini
# TLS configuration
-Dhttps.protocols="TLSv1,TLSv1.1,TLSv1.2"
-Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"
-Djdk.tls.ephemeralDHKeySize=2048

jetty-ssl-context.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">

<!-- ============================================================= -->
<!-- SSL ContextFactory configuration                              -->
<!-- ============================================================= -->
<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">

  <!-- ===================== -->
  <!-- other default configs -->
  <!-- ===================== -->

  <Set name="IncludeCipherSuites">
    <Array type="String">
      <Item>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</Item>
      <Item>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</Item>
      <Item>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</Item>
      <Item>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Item>
      <Item>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</Item>
      <Item>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Item>

      <Item>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384</Item>
      <Item>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</Item>
      <Item>TLS_DHE_RSA_WITH_AES_256_CBC_SHA</Item>
      <Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
      <Item>TLS_DHE_RSA_WITH_AES_256_CBC_SHA256</Item>
      <Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA256</Item>

      <Item>TLS_RSA_WITH_AES_256_GCM_SHA384</Item>
      <Item>TLS_RSA_WITH_AES_128_GCM_SHA256</Item>
      <Item>TLS_RSA_WITH_AES_256_CBC_SHA256</Item>
      <Item>TLS_RSA_WITH_AES_128_CBC_SHA256</Item>
      <Item>TLS_RSA_WITH_AES_256_CBC_SHA</Item>
      <Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
    </Array>
  </Set>
  <Set name="IncludeProtocols">
    <Array type="java.lang.String">
       <Item>TLSv1</Item>
       <Item>TLSv1.1</Item>
       <Item>TLSv1.2</Item>
    </Array>
  </Set>
  <Set name="ExcludeCipherSuites">
    <Array type="String">
      <Item>SSL.*</Item>
      <Item>.*DES.*</Item>
      <Item>.*DSS.*</Item>
      <Item>.*KRB.*</Item>
      <Item>.*MD5.*</Item>
      <Item>.*NULL.*</Item>
      <Item>.*RC4.*</Item>
    </Array>
  </Set>
  <Set name="ExcludeProtocols">
    <Array type="java.lang.String">
       <Item>SSL</Item>
       <Item>SSLv2</Item>
       <Item>SSLv2Hello</Item>
       <Item>SSLv3</Item>
    </Array>
  </Set>
  <Set name="renegotiationAllowed" type="boolean">false</Set>
  <Set name="useCipherSuitesOrder"><Property name="jetty.sslContext.useCipherSuitesOrder" default="true"/></Set>
</Configure>

我還缺什麼?我還需要設定 Jetty 嗎?我需要以某種方式配置 Java 8 嗎?我需要修改一些特殊的 Ubuntu 配置嗎?

答案1

它只是還沒有在 Java 中實現——不過計劃在 Java 9 中實現。

您可以關注#JDK-8061798用於更新。

相關內容