背景
- PCI DSS 3.2では、SSLとTLS1.1は2018年6月28日までに無くさなければいけないと明示している。
- Visaは2018年2月にTLS1.1以下を無効にする主旨を発表し、各プログラミング言語に応じた移行方法を出している。
最近の流れ
- 新規でhttpsサーバを構築するならば、TLS1.2のみを有効にしておく
- TLS1.3は現在Working Draft
- TLS1.2と1.3の違い
設定
このサイトで、TLS 1.3を使えるように設定してみました。
- nginx 1.12を使っていましたが、nginxはバージョン1.13からTLS 1.3 draftに対応しているので、nginxを1.13にアップグレードしました。
- ssl関連の設定を抜粋するとこんな感じです。TLS 1.3のcipherが優先されます。
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:ECDHE:!COMPLEMENTOFDEFAULT';
- ssllabsでテストをしてみましたが、TLS 1.3はドラフトなのでちゃんと認識されない模様です。FirefoxでTLS1.3のみを有効にして実験した接続できました。
軽くab
でテスト。
% ab -n 5 -n 100 https://triathlon.teraren.com/ This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking triathlon.teraren.com (be patient).....done Server Software: nginx/1.13.0 Server Hostname: triathlon.teraren.com Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Server Temp Key: ECDH X25519 253 bits TLS Server Name: triathlon.teraren.com Document Path: / Document Length: 284282 bytes Concurrency Level: 1 Time taken for tests: 19.852 seconds Complete requests: 100 Failed requests: 0 Total transferred: 28472700 bytes HTML transferred: 28428200 bytes Requests per second: 5.04 [#/sec] (mean) Time per request: 198.516 [ms] (mean) Time per request: 198.516 [ms] (mean, across all concurrent requests) Transfer rate: 1400.66 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 46 57 13.3 54 169 Processing: 88 141 47.8 121 371 Waiting: 33 39 6.3 37 63 Total: 137 198 48.8 177 444 Percentage of the requests served within a certain time (ms) 50% 177 66% 224 75% 235 80% 241 90% 256 95% 283 98% 305 99% 444 100% 444 (longest request)
TLS1.3が出てない。クライアント側のopensslが古いからかな。。
% openssl version LibreSSL 2.8.3
まとめ
- nginxをアップグレード。 1.12 -> 1.13
- TLS 1.0, TLS 1.1を無効化。TLS 1.2とTLS 1.3 draftを有効化
Comments