Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今すぐ適用しよう TLS1.2+ / Apply Latest TLS

今すぐ適用しよう TLS1.2+ / Apply Latest TLS

WEB系なんでもLT会 #2 登壇資料
https://anytime-lt.connpass.com/event/113499/

Dcfa005284131fd4052e767962205f93?s=128

Akira Morikawa

January 22, 2019
Tweet

Transcript

  1. 今すぐ適用しよう TLS/1.2+ Jan 21, 2019 | #anytime_lt | @ariaki4dev LICENSE:

    CC-BY-4.0
  2. ariaki | @ariaki4dev

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

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

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

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

  7. 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
  8. 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% のサイトが対応 大丈夫だっけ?
  9. SSLの歴史 プロトコルに潜む脆弱性と対応状況 SSL/3.0 • 1996年に登場 ( RFC6101 ) • 2014年10月に仕様上の脆弱性が発見された

    • 2015年6月に使用禁止された ( RFC7568 ) ◦ Force Downgrade ( POODLE ) の対象となる為
  10. SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.0 • 1999年に登場 ( RFC2246 ) • 拡張仕様が追加された

    ( RFC3546 ) • CBCモードにおけるパディング方法の変更 • 2018年6月30日をもって使用禁止が勧告された ( PCI-DSS v3.2 )
  11. SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.1 • 2006年に登場 ( RFC4346 ) • 共通鍵暗号に

    AES 追加 • CBCモードにおけるパディング方法の再変更 • 既に脆弱性が発見され、TLS/1.2 への移行 が推奨されている
  12. SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.2 • 2008年に登場 ( RFC5246 ) • 脆弱なアルゴリズムの利用箇所削減

    • CBCモードに加えて、GCMモード / CCMモード追加
  13. SSLの歴史 プロトコルに潜む脆弱性と対応状況 TLS/1.3 • 2018年8月に登場 ( RFC8446 ) • ハンドシェイクの高速化

    ( 再接続 0-RTT / 初回接続 1-RTT ) • CBCモードの廃止 • AEAD ( 認証付き暗号 ) 必須化 • データ圧縮の廃止 ( CRIME ) • セッションハッシュ機能 ( ネゴシエーション履歴全体ハッシュ ) など
  14. SSLの歴史 プロトコルに潜む脆弱性と対応状況 ブロック暗号 平文データ パディング ブロック ブロック 平文データ指定桁数ごとのブロックに分割して暗号化を行う 桁数不足時はパディングを追加する

  15. SSLの歴史 プロトコルに潜む脆弱性と対応状況 暗号化処理 暗号化処理 暗号データ 暗号データ ブロック ブロック 初期化ベクトル (IV)

    XOR XOR CBCモード ( ブロック暗号における暗号利用モード ) 最初のブロックは「初期化ベクトル (IV)」を用い、以降は前ブロックの暗号データを元にする
  16. 攻撃ブロック パディング SSLの歴史 プロトコルに潜む脆弱性と対応状況 POODLE攻撃 ( Padding Oracle On Downgraded

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

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

    • SSL圧縮機能を利用した攻撃 • データ圧縮後のサイズが小さくなった場合のみ正しい値という特性がある • これにより、ブルートフォースによって推測可能
  19. 設定見直してる? 設定が重要だということを滾々と語ります

  20. 設定見直してる? セキュリティ設定は重要だぞ! Apache 2.4.35 標準設定 標準設定はかなり緩い • TLS/1.0 接続 •

    脆弱な鍵交換 • 危険な設定がONに
  21. 設定見直してる? セキュリティ設定は重要だぞ! Apache 2.4.35 標準設定 Qualys SSL Labs - SSL

    Server Test https://www.ssllabs.com/ssltest/ この結果は問題ない? Rating Bですよ?
  22. 設定見直してる? セキュリティ設定は重要だぞ! TLS/1.2 に限定してみる TLS/1.2 に限定した!

  23. 設定見直してる? セキュリティ設定は重要だぞ! TLS/1.2 に限定してみる Qualys SSL Labs - SSL Server

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

    Test https://www.ssllabs.com/ssltest/ Cipher Suites ???
  25. 設定見直してる? セキュリティ設定は重要だぞ! SSLCipherSuite を設定する

  26. 設定見直してる? セキュリティ設定は重要だぞ! SSLCipherSuite を設定する Qualys SSL Labs - SSL Server

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

    GCM - SHA384 ① ② ③ ④ ⑤ ① Forward Secrecy → ECDHE, ... ② 公開鍵(署名用)アルゴリズム → ECDSA, RSA, ... ③ 暗号アルゴリズム+鍵長 → AES128, AES256, CHACHA20, ... ④ 暗号利用モード(ブロック暗号のみ) → GCM, ... ⑤ ハッシュアルゴリズム+ハッシュ長 → SHA256, SHA384, POLY1305, ...
  28. 設定見直してる? セキュリティ設定は重要だぞ! 他にどんな設定すればいい? 設定に関する便利なサービスや記事を以下にまとめました • 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
  29. 設定見直してる? セキュリティ設定は重要だぞ! 他にどんな設定すればいい? Qualys SSL Labs - SSL Server Test

    https://www.ssllabs.com/ssltest/ Rating A+ きたー!
  30. まとめ 今すぐ適用しよう TLS/1.2+

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

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

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

  34. 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