Slide 1

Slide 1 text

今すぐ適用しよう TLS/1.2+ Jan 21, 2019 | #anytime_lt | @ariaki4dev LICENSE: CC-BY-4.0

Slide 2

Slide 2 text

ariaki | @ariaki4dev

Slide 3

Slide 3 text

You are NOT secure !!! 本日のテーマ

Slide 4

Slide 4 text

● Safe : 危険の恐れがなく安全である ● Secure : 危険の心配をする必要がない

Slide 5

Slide 5 text

1 SSLの歴史 設定見直してる? まとめ 2 3

Slide 6

Slide 6 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況を解説します

Slide 7

Slide 7 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 1999 1996 1995 2008 2006 2018 TLS/1.0 SSL/3.0 SSL/2.0 TLS/1.2 TLS/1.1 TLS/1.3 https://www.ssllabs.com/ssl-pulse/ @ Jan 8, 2019

Slide 8

Slide 8 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 1999 1996 1995 2008 2006 2018 TLS/1.0 … 70.7% のサイトが対応 SSL/3.0 SSL/2.0 TLS/1.2 … 94.5% のサイトが対応 TLS/1.1 … 78.8% のサイトが対応 TLS/1.3 … 10.7% のサイトが対応 大丈夫だっけ?

Slide 9

Slide 9 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 SSL/3.0 ● 1996年に登場 ( RFC6101 ) ● 2014年10月に仕様上の脆弱性が発見された ● 2015年6月に使用禁止された ( RFC7568 ) ○ Force Downgrade ( POODLE ) の対象となる為

Slide 10

Slide 10 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.0 ● 1999年に登場 ( RFC2246 ) ● 拡張仕様が追加された ( RFC3546 ) ● CBCモードにおけるパディング方法の変更 ● 2018年6月30日をもって使用禁止が勧告された ( PCI-DSS v3.2 )

Slide 11

Slide 11 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.1 ● 2006年に登場 ( RFC4346 ) ● 共通鍵暗号に AES 追加 ● CBCモードにおけるパディング方法の再変更 ● 既に脆弱性が発見され、TLS/1.2 への移行 が推奨されている

Slide 12

Slide 12 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.2 ● 2008年に登場 ( RFC5246 ) ● 脆弱なアルゴリズムの利用箇所削減 ● CBCモードに加えて、GCMモード / CCMモード追加

Slide 13

Slide 13 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.3 ● 2018年8月に登場 ( RFC8446 ) ● ハンドシェイクの高速化 ( 再接続 0-RTT / 初回接続 1-RTT ) ● CBCモードの廃止 ● AEAD ( 認証付き暗号 ) 必須化 ● データ圧縮の廃止 ( CRIME ) ● セッションハッシュ機能 ( ネゴシエーション履歴全体ハッシュ ) など

Slide 14

Slide 14 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 ブロック暗号 平文データ パディング ブロック ブロック 平文データ指定桁数ごとのブロックに分割して暗号化を行う 桁数不足時はパディングを追加する

Slide 15

Slide 15 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 暗号化処理 暗号化処理 暗号データ 暗号データ ブロック ブロック 初期化ベクトル (IV) XOR XOR CBCモード ( ブロック暗号における暗号利用モード ) 最初のブロックは「初期化ベクトル (IV)」を用い、以降は前ブロックの暗号データを元にする

Slide 16

Slide 16 text

攻撃ブロック パディング SSLの歴史 プロトコルに潜む脆弱性と対応状況 POODLE攻撃 ( Padding Oracle On Downgraded Legacy Encryption ) ● パディングは不足している桁数を挿入する仕様 ● パディング自体の完全性を検証する仕組みがない ● 末尾の1バイトが正しいかを攻撃によって推定可能 XOR 復号データ 暗号ブロック 末尾1バイトを推測

Slide 17

Slide 17 text

暗号ブロック SSLの歴史 プロトコルに潜む脆弱性と対応状況 BEAST攻撃 ( Browser Exploit Against SSL/TLS ) ● CBCモードの初期化ベクトル ( IV ) は 前回の暗号ブロック である ● この IV を打ち消す値を攻撃対象データに XOR しておく ● 末尾の1バイトのみ不明な状態でリクエストする 平文ブロック XOR 復号データ 暗号ブロック 攻撃ブロック 平文ブロック XOR 復号データ 暗号ブロック 一致したら成功

Slide 18

Slide 18 text

SSLの歴史 プロトコルに潜む脆弱性と対応状況 CRIME攻撃 ( Compression Ratio Info-Leak Mass Exploitation ) ● SSL圧縮機能を利用した攻撃 ● データ圧縮後のサイズが小さくなった場合のみ正しい値という特性がある ● これにより、ブルートフォースによって推測可能

Slide 19

Slide 19 text

設定見直してる? 設定が重要だということを滾々と語ります

Slide 20

Slide 20 text

設定見直してる? セキュリティ設定は重要だぞ! Apache 2.4.35 標準設定 標準設定はかなり緩い ● TLS/1.0 接続 ● 脆弱な鍵交換 ● 危険な設定がONに

Slide 21

Slide 21 text

設定見直してる? セキュリティ設定は重要だぞ! Apache 2.4.35 標準設定 Qualys SSL Labs - SSL Server Test https://www.ssllabs.com/ssltest/ この結果は問題ない? Rating Bですよ?

Slide 22

Slide 22 text

設定見直してる? セキュリティ設定は重要だぞ! TLS/1.2 に限定してみる TLS/1.2 に限定した!

Slide 23

Slide 23 text

設定見直してる? セキュリティ設定は重要だぞ! TLS/1.2 に限定してみる Qualys SSL Labs - SSL Server Test https://www.ssllabs.com/ssltest/ なんでよ!? 変わらないやん!

Slide 24

Slide 24 text

設定見直してる? セキュリティ設定は重要だぞ! TLS/1.2 に限定してみる Qualys SSL Labs - SSL Server Test https://www.ssllabs.com/ssltest/ Cipher Suites ???

Slide 25

Slide 25 text

設定見直してる? セキュリティ設定は重要だぞ! SSLCipherSuite を設定する

Slide 26

Slide 26 text

設定見直してる? セキュリティ設定は重要だぞ! SSLCipherSuite を設定する Qualys SSL Labs - SSL Server Test https://www.ssllabs.com/ssltest/ Rating A きたー!

Slide 27

Slide 27 text

設定見直してる? セキュリティ設定は重要だぞ! SSLCipherSuite を設定する ECDHE - ECDSA - AES256 - GCM - SHA384 ① ② ③ ④ ⑤ ① Forward Secrecy → ECDHE, ... ② 公開鍵(署名用)アルゴリズム → ECDSA, RSA, ... ③ 暗号アルゴリズム+鍵長 → AES128, AES256, CHACHA20, ... ④ 暗号利用モード(ブロック暗号のみ) → GCM, ... ⑤ ハッシュアルゴリズム+ハッシュ長 → SHA256, SHA384, POLY1305, ...

Slide 28

Slide 28 text

設定見直してる? セキュリティ設定は重要だぞ! 他にどんな設定すればいい? 設定に関する便利なサービスや記事を以下にまとめました ● Mozilla SSL Configuration Generator https://mozilla.github.io/server-side-tls/ssl-config-generator/ ● Qualys SSL Labs - SSL and TLS Deployment Best Practices https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices ● Webサーバをセキュアに保つ設定のまとめ https://qiita.com/ariaki/items/78ed2d3810ad17f72398

Slide 29

Slide 29 text

設定見直してる? セキュリティ設定は重要だぞ! 他にどんな設定すればいい? Qualys SSL Labs - SSL Server Test https://www.ssllabs.com/ssltest/ Rating A+ きたー!

Slide 30

Slide 30 text

まとめ 今すぐ適用しよう TLS/1.2+

Slide 31

Slide 31 text

You are NOT secure !!! (継続的な改善をしていない場合)

Slide 32

Slide 32 text

まとめ 今すぐ適用しよう TLS/1.2+ その環境はセキュア? AES/GCM環境においてIVが再利用された場合に致命的となる実証コードが公開されています https://github.com/nonce-disrespect/nonce-disrespect http://d.hatena.ne.jp/jovi0608/20160524/1464054882 正しい実装されていないサーバが残念ながらいくつか存在します ある時点では問題なくても危殆化によって脆弱性が露呈する可能性もあります 継続的な情報収集・環境更新がすごく重要です

Slide 33

Slide 33 text

You can KEEP safe !!! (継続的な改善ができている場合)

Slide 34

Slide 34 text

The Basics of Information Security https://speakerdeck.com/ariaki/2020-evolution-of-internet https://speakerdeck.com/ariaki/the-basics-of-information-security 2020: Evolution of Internet Appendix