あんしんなWebサーバーのためのSSL設定
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

あんしんなWebサーバーのためのSSL設定

  • 5,207 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,207
On Slideshare
5,206
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
31
Comments
0
Likes
9

Embeds 1

http://s.deeeki.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Security Casual Talks (すみだセキュリティ勉強会その2) あんしんなWebサーバーのための SSL設定 2013/12/07 FALZ (@falz_yineng)
  • 2. FALZ @falz_yineng とあるネット企業での サービス提供のインフ ラ的なシステムを開発 /運用 しています。 趣味/興味: 中国語 東洋史/世界史 釣り
  • 3. Apache で SSL の設定 どうやっていますか?
  • 4. よくわからない ほとんどデフォルト しかもバージョン古い http://www.flickr.com/photos/levork/5026708729/
  • 5. 怒られる セキュリティ担当(人/部署) 外部スキャン結果 外部審査(PCI DSSなど) http://www.flickr.com/photos/70609370@N00/7753084454/
  • 6. なにすればいいの? 誰が「安全」と言ってくれるの? でもあまり手を掛けたくない http://www.flickr.com/photos/colinkinner/2200500024
  • 7. 簡単な設定で 堅牢にして 怒られたり 夜も眠れなく ならないようにする http://www.flickr.com/photos/tambako/4780304268/
  • 8. https = Hypertext Transfer Protocol Secure https = http + SSL/TLS
  • 9. 主にいじるところ(Linux + Apache) http://www.flickr.com/photos/hinkelstone/2435823037/
  • 10. SSLCipherSuite SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL openssl のコマンドで どんな暗号化種別か確認可能 $ openssl ciphers –v ‘{暗号化スイート}’
  • 11. $ openssl ciphers -v 'ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL' | sort AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1 DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 export EXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 export EXP-KRB5-RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 export EXP-KRB5-RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 export EXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=MD5 export EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 export EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5 RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 ほぼデフォルトの ままのサーバ
  • 12. まずやること  SSLv2 を使わない  暗号化強度の低いものを除外 1. EXP 2. ADH 3. すでに安全でないとみなされているもの a. RC2 b. DES
  • 13. $ openssl ciphers -v 'ALL:!ADH:!EXP:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-eNULL' | sort AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 だいぶ絞れた
  • 14. http://www.flickr.com/photos/124330160/193454651/ さらに上を目指す
  • 15. BEAST攻撃を回避する http://www.flickr.com/photos/29001024@N02/2713261901/
  • 16. SSL 3.0とTLS 1.0プロトコルのCBC(Cipher Block Chaining)モードには、平文とそれに対応した暗号文を手がか りに暗号解読(選択平文攻撃)が可能であるという脆弱性 (CVE-2011-3389)が存在します。 この問題は、暗号化のための初期ベクトル決定方法に起因し ています。TLSプロトコルのCBCモードでは、最初のレコードの 初期ベクトルとして、別の鍵や秘密情報に基づき生成された値 を使用します。しかし、以降のレコードの初期ベクトルとして、 直前のレコードの最後の暗号ブロックを使用します。ここに脆 弱性(CVE-2011-3389)につながる要因があります。 CSIRTメモ - チェックしておきたい脆弱性情報<2011.10.18>: Itpro http://itpro.nikkeibp.co.jp/article/COLUMN/20111017/370861/ なんかヤバイらしい
  • 17. CBCモードとやらをやめてみる + 有効そうな設定をいくつか追加してみる SSLProtocol all -SSLv2 SSLHonorCipherOrder on SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM:!SSLV2: !eNULL:!EXP
  • 18. $ openssl ciphers -v 'ECDHE-RSA-AES256-SHA384:AES256SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM:!SSLV2:!eNULL:!EXP' RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 PSK-RC4-SHA SSLv3 Kx=PSK Au=PSK Enc=RC4(128) Mac=SHA1 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1 PSK-AES256-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 PSK-3DES-EDE-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=3DES(168) Mac=SHA1 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1 PSK-AES128-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA1
  • 19. 使ってほしい暗号化方式を サーバで指定した順にする SSLHonorCipherOrder On
  • 20. CRIME攻撃対策 http://www.flickr.com/photos/voteprime/4871645231/
  • 21. 中間者攻撃 (man-in-the-middle attack) により、 HTTP リクエストに含まれる文字列から HTTP ヘッダ に含まれる文字列を推測されることで (通称 CRIME 攻撃) 、平文の HTTP ヘッダを取得される可能性が あります。 JVNDB-2012-004393 - JVN iPedia - 脆弱性対策情報データベース http://jvndb.jvn.jp/ja/contents/2012/JVNDB-2012004393.html なんかヤバイらしい
  • 22. SSLの圧縮処理を 無効化する Apache2.4 -> 機能あり Apache2.2 -> 2.2.24 から機能追加 Changes with Apache 2.2.24 *) mod_ssl: Change default for SSLCompression to off, as compression causes security issues in most setups. (The so called "CRIME" attack). [Stefan Fritsch]
  • 23. • Apache をバージョンアップ • conf にディレクティブ追加 SSLCompression off <VirtualHost>の外に書かないと 怒られる # service httpd configtest Syntax error on line 23 of /usr/local/apache2/conf/httpdssl.conf: This version of openssl does not support configuring compression within <VirtualHost> sections.
  • 24. SSLCipherSuiteの 設定結果は ブラウザー上で 確認できる
  • 25. # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. CustomLog "/usr/local/apache2/logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" ログにプロトコルと暗号化スイートを 出力することも可能
  • 26. http://www.flickr.com/photos/voteprime/4871645231/ 誰かにチェックしてもらいたい
  • 27. https://www.ssllabs.com/ssltest/
  • 28. SSLに関する様々な項目をチェック 脆弱な箇所を指摘
  • 29. httpsサーバのドメイン名を入れるだけ あとは数分待つ
  • 30. “Do not Show the results on the boards” ホスト一覧に晒されてしまう
  • 31. さすが優秀ですね
  • 32. SSL Server Test と ‘openssl ciphers’ で テスト http://www.flickr.com/photos/25732779@N07/2938983864/ 堅牢な設定ができる
  • 33. でもブラウザーでの テストも忘れずに。 堅牢すぎてアクセスできなければ無意味
  • 34. 最近のApacheなら デフォルトでもそれなりに堅牢 SSLProtocol all -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 それは喜ぶべきこと
  • 35. 暗号解読はいたちごっこ http://www.flickr.com/photos/pauldwaite/2845329889/ ECDHE とか RC4 やめとけとか TLS1.2 とか
  • 36. 新たな話題をうまくキャッチして 堅牢にしよう SSL Server Test を定期的にチェック http://www.flickr.com/photos/70609370@N00/7753084454/