TLS_FALLBACK_SCSV에 대한 Jetty 9 지원

TLS_FALLBACK_SCSV에 대한 Jetty 9 지원

나는 A+를 받기 위해 노력해왔어SSL 서버 테스트 @ SSL 연구소. 그러나 "다운그레이드 공격 방지" 테스트를 통과하는 방법을 알 수 없습니다.

TLS_FALLBACK_SCSV

저는 Linux Ubuntu 15.04(Vivid Vervet)에서 OpenJDK 8과 함께 Jetty 9.3.0.v20150612를 실행하고 있습니다.

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거기에서 무엇을 변경해야 할지 모르기 때문에 수정하지 않았습니다. 내 구성에 대한 내용은 다음과 같습니다.

start.ini

# 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

부두-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업데이트를 위해.

관련 정보