いろいろなssl/tls設定ガイドライン (jnsa電子署名wg...

29
© 2015 Kenji Urushima All rights reserved. いろんなSSL/TLS設定ガイド JNSA臨時スキルアップTF 実世界の暗号・認証技術に関する勉強会 於:NTTソフトウェア(品川) 日時:2015622() 19:00-19:30 漆嶌賢二 JNSA 電子署名WG(ゾンビ?)メンバ

Upload: kenji-urushima

Post on 08-Aug-2015

2.830 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved.

いろんなSSL/TLS設定ガイド

   JNSA臨時スキルアップTF 実世界の暗号・認証技術に関する勉強会 於:NTTソフトウェア(品川) 日時:2015年6月22日(月) 19:00-19:30

漆嶌賢二

  

JNSA 電子署名WG(ゾンビ?)メンバ

Page 2: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 1

・経歴

 ・富士ゼロックス(2010~)

 ・エントラストジャパン(2005~2010)

 ・セコム(1988~2005)

・興味:

  PKI,  TLS,  電子署名,  SSO,  認証,  暗号,  

  CSIRT,  脆弱性検査,  フォレンジック,

           スマホ,  プログラミング,  ビットコイン

・別名

 ・証明書ハンター

 ・(TLS)暗号スイートウォッチャー

・委員、標準化、認定基準、実証実験、普及啓蒙

 ・JNSA,  CRYPTREC,  日本データ通信協会

  セキュキャン講師

 ・旧ECOM,  PKI-J,  欧州ETSI

 ・PKI,  TLS,  長期署名,  タイムスタンプ

自己紹介:  漆嶌  賢二(うるしま),  CISSP

jsrsasign  –JavaScript  実装暗号ライブラリ

ブログ:自堕落な技術者の日記

@kjur

Page 3: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 2

CRYPTREC/IPAからSSL/TLS暗号設定ガイドが出ましたね

SSL暗号設定ガイドライン

平成27年5月

独立行政法人 情報処理推進機構国立研究開発法人 情報通信研究機構

IPA版 CRYPTREC版

表紙イメージ(理由は後述)

http://www.ipa.go.jp/security/vuln/ssl_crypt_config.html

http://www.cryptrec.go.jp/topics/cryptrec_20150522_oper_guideline_fy2014.html

Page 4: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 3

• 最近のBEASTやHeartBleed、CA不正証明書問題など重大なSSL/TLS脆弱性に対応するには、どのような設定をすればよいか?

• CRYPTREC暗号リストと整合取りながら、暗号の難しい説明なしに、サーバー管理者に使ってもらえる、設定例を豊富に用意した資料

• サーバーの設定はどのように決めるのか– サーバー管理有識者の知見– 暗号・プロトコルの研究者・有識者の知見– 証明書発行サービス有識者の知見– サーバー・クライアント製品の実装状況– 市場での暗号やプロトコルの利用状況– SSLサーバー証明書の選定

• 日々の脆弱性に対応する「意識高い系」サーバ管理者向け

CRYPTREC/IPA  SSL/TLS暗号設定ガイドとはCRYPTRECシンポジウム2015の菊池先生の講演資料に「背景・目的・概要」全て書いてますhttp://www.cryptrec.go.jp/topics/cryptrec_20150424_symposium2015_presentation.html

Page 5: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 4

時期 問題・事件 対策

2005.11 OpenSSL  SSLv2バージョンロールバック アップデート

2009.01 RapidSSL  MD5衝突偽造中間CA アップデートやPinning

2009.07 NULL終端による証明書ホスト名一致不備 アップデートやPinning

2009.11 再ネゴシエーション脆弱性 アップデート

2011.03 Comodo不正証明書発行(RA攻撃) アップデートやPinning

2011.08 DigiNotar不正証明書発行(RA攻撃) アップデートやPinning

2011.09 BEAST攻撃 暗号スイート/プロトコル設定(非CBC)

2011.11 Digicert  Sdn不正証明書発行(RSA512) アップデートやPinning

2012.05 FLAMEマルウェア用Windows  Terminal  ServerによるMD5衝突偽造中間CA,  Windows  Update攻撃

アップデートやPinning

2012.09 CRIME攻撃 圧縮解除設定(SSL)

2013.01 Lucky13攻撃 暗号スイート/プロトコル設定(GCM利用)

2013.01 TURKTRUST不正証明書発行(オペミス) アップデートやPinning

2013.03 SSLにおけるRC4暗号危殆化 暗号スイート(非RC4)

2013.03 TIME攻撃 圧縮解除設定(SSL)

2013.06 BREACH攻撃 圧縮解除設定(HTTP  gzip)

2013.06 スノーデン氏暴露(NSAの全SSL通信保管) 暗号スイート/プロトコル設定(ECDHE,DHE使用)

2014.04 HeartBleed攻撃 アップデート

2014.06 CSSInjection攻撃 アップデート

2014.10 POODLE攻撃 暗号スイート/プロトコル設定(非SSLv3,CBC)

2015.03 FREAK攻撃 暗号スイート(非EXPORT)

2015.03 live.fi、CNNIC/MCS不正証明書発行(運用不備) アップデートやPinning(CABF  BR要件に課題も)

2015.03 パスワード盗聴可能なRC4暗号スイート攻撃 暗号スイート設定(非RC4)

2015.05 Logjam脆弱性 暗号スイート設定,  DH設定(DHE_EXPORT512bit無効化)

(参考)  SSL/TLSの過去の問題と対応方法サーバー設定で回避し

続けならないものも多数

古い脆弱性であっても、

アップデートだけでは

解決しない問題が

多数残っている

Page 6: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 5

(参考)サーバー管理上のこれまでのSSL/TLSの問題と対策の整理

暗号危殆化の問題MD2,  MD5,  RC4,  SHA1,  RSA1024bit,  DH1024bit

SSL/HTTP  プロトコル設計の問題SSLv2,  SSLv3,  CBCモード,TLS圧縮,  HTTP圧縮,再ネゴシエーション

個別の実装の問題OpenSSL(HeartBleed,  CSSInjection等)MS  (識別名NULL終端,  ASN.1)

CAの運用の問題CA攻撃により不正証明書発行CAオペミスで不正証明書発行暗号危殆化で偽造証明書発行(MD5)

管理上

SSL/TLS

問題

対策

証明書ブラックリストの更新

Cert  Pinning,  CT,  DNSSEC設定による検知

各種パッチ、アップデートの適用

暗号スイート、プロトコル、圧縮の設定

各種パッチ、アップデートの適用

アップデートの適用

暗号スイート、プロトコル、圧縮の設定

側設定

対策

古い脆弱性であっても、アップデートだけでは解決しない問題が多数残っているデフォルト設定でなく、きめ細かい設定で問題に対処する必要がある

Page 7: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 6

特に暗号スイート(Cipher  Suites)の設定がわけわからん!!

何を入れればいいの?

何を入れちゃいけないの?

順序はどうすりゃいいの?

OpenSSL系の設定が

呪文みたい!

Page 8: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 7

(参考)  CRYPTREC版とIPA版って違いはあるの?

表紙

IPA版 CRYPTREC版

表紙

本書配布URLの紹介

本文  (p2目次〜p91) 本文  (p2目次〜p91)

裏表紙:不許複製 禁無断転載発行者  IPA・CRYPTREC

裏表紙:作成者  CRYPTREC、発行者  IPA

別紙:設定チェックリスト(Excelフォーム)

Page 9: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 8

忙しいし、なかなか95ページも見てられないですよね

Page 10: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

(非公式)設定ファイル自動生成ツールをご利用くださいhttps://kjur.github.io/jsrsasign/tool_httpscfg.html

•  基本、「お好みのガイド」と「サーバーの種類」を選ぶだけ。

•  CRYPTREC/IPAガイドを含む、様々なガイドラインに準拠したHTTPS設定ファイルを自動生成します。

•  今は、Apache  HTTP  2.2/2.4、nginx、lighttpdに対応しています。

•  証明書(PEM)を貼れば、Certificate  Pinningの鍵ハッシュ計算も自動で行います。

•  ガイドはCRYPTREC,  NIST,  Mozilla,  Bulletproof他、OSデフォルトも

© 2015 Kenji Urushima All rights reserved. 9

Page 11: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

他の主要なSSL/TLS設定ガイドとの比較

   

10 © 2015 Kenji Urushima All rights reserved.

Page 12: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 11

NIST  SP800-52r1  (2014年4月改訂)

ダウンロードhttp://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf

•  NIST  SP800-52r1Guidelines  for  the  Selection,  Configuration,  and  Use  of  TLS  Implementation

•  最低限のSSLサーバとクライアントの設定を規定

•  証明書についての要件もあり

•  レベルは1レベルのみで、最低限の要件だけを定めたもので、かなりカバー範囲が広い。

•  3DES,  RC4など広めのサポート、AESCCM,  DSA証明書が特徴的。

Page 13: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 12

Mozilla  Server  Side  TLS

•  MozillaのサーバーのSSL/TLS設定に関するガイド

•  モダン(高)、普通(中)、互換性重視(低)の3レベル

•  サーバー/クライアントのどのバージョンが使えるか明確になっている

•  サーバー保護のための技術解説も多く、ためになる

•  設定ファイル自動生成ツールもある

出典:https://wiki.mozilla.org/Security/Server_Side_TLS

Page 14: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 13

Bulletproof  SSL  and  TLS  by  Ivan  Ristic  of  Qualys

出典:https://www.feistyduck.com/books/bulletproof-ssl-and-tls/

•  Qualys社で、SSLサイト検査や評価のssllabs、SSLの利用調査のsslpulseなども開発担当している有名なSSL有識者のIvan  Ristic氏のSSL設定解説本

•  主要なページがメアド登録で無料ダウンロードでき、これで十分

•  ApacheやOpenSSLなどの設定、運用、セキュリティ対策についてどのような事に配慮すべきか詳しく解説した良著

•  暗号スイートは2レベル

•  特徴•  暗号スイートがかなり絞られている•  3DES,  RC4がある

Page 15: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 14

ガイドの比較

NIST Mozilla Bulletproof CRYPTREC

特徴 最低線のみのガイド

対応ブラウザバージョンの明確化

技術解説詳細がよい

わりとバランスよくまとまっている

レベル 1レベル

 (低)最低線

3レベル モダン(高) 普通(中) 互換性(低)

2レベル

 普通(中) 互換性(低)

3レベル 高(高) 推奨(中) 例外(低)

技術解説 少なめ 普通 多い 普通

導入の容易さ やや難 易(ツール有) 易(例あり) 易(例あり)非公式tool有

脆弱性対応 若干薄い 対応 対応 対応

暗号スイートの特徴

わりと広め わりと広め かなり絞った 範囲は中程度

特徴的な暗号 DSA証明書AESCCMRC4

DSA証明書SRP鍵交換Camellia

RC4(低) CamelliaRC4(低)

対応サーバー 特になし Apache,  Nginx,  Haproxy,  stud,  AWS  ELB,  Zeus,  Citrix  Netscaler,  Go,  BIGIP

OpenSSL,  Apache,  Java,  Tomcat,  IIS,  nginx

Apache,  nginx,  lighttpd,  IIS

Page 16: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

他の主要なSSL/TLS設定ガイドの暗号スイート選定の比較

   

15 © 2015 Kenji Urushima All rights reserved.

Page 17: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

ガイドラインのサポートする暗号スイートの比較マップ(全部・わけがわからない→次ページ以降)

高い安全性

広く普及主要ブラウザで実装がない

弱い安全性

NIST  低

Bulletproof  中低

CRYPTREC/IPA高中低

Mozilla高中低

あまり普及せず

AESGCMECDSA証明書ECDHE鍵交換

CamelliaCBC

ECDH鍵交換

RSA鍵交換

3DES

RC4

SRP鍵交換 DSA証明書

AESCCM

DH鍵交換

AESCBCRSA証明書

DHE鍵交換

© 2015 Kenji Urushima All rights reserved. 16

Page 18: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

暗号スイートのガイドライン比較マップ(NIST  SP800-61)

高い安全性

広く普及あまり普及せず

弱い安全性

NIST  低

Bulletproof  中低

CRYPTREC/IPA高中低

Mozilla高中低

AESGCMECDSA証明書ECDHE鍵交換

CamelliaCBC

ECDH鍵交換

RSA鍵交換

3DES

RC4

SRP鍵交換 DSA証明書

AESCCM

DH鍵交換

AESCBCRSA証明書

DHE鍵交換

あまり普及せず

© 2015 Kenji Urushima All rights reserved. 17

Page 19: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

暗号スイートのガイドライン比較マップ(Mozilla)

高い安全性

広く普及あまり普及せず

弱い安全性

NIST  低

Bulletproof  中低

CRYPTREC/IPA高中低

Mozilla高中低

中,  低

AESGCMECDSA証明書ECDHE鍵交換

CamelliaCBC

ECDH鍵交換

RSA鍵交換

3DES

RC4

SRP鍵交換 DSA証明書

AESCCM

DH鍵交換

AESCBCRSA証明書

DHE鍵交換

あまり普及せず

© 2015 Kenji Urushima All rights reserved. 18

Page 20: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

暗号スイートのガイドライン比較マップ(Bulletproof  SSL  and  TLS)

高い安全性

広く普及あまり普及せず

弱い安全性

NIST  低

Bulletproof  中低

CRYPTREC/IPA高中低

Mozilla高中低

AESGCMECDSA証明書ECDHE鍵交換

CamelliaCBC

ECDH鍵交換

RSA鍵交換

3DES

RC4

SRP鍵交換 DSA証明書

AESCCM

DH鍵交換

AESCBCRSA証明書

DHE鍵交換

あまり普及せず

© 2015 Kenji Urushima All rights reserved. 19

Page 21: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

暗号スイートのガイドライン比較マップ(CRYPTREC/IPA)

高い安全性

広く普及あまり普及せず

弱い安全性

NIST  低

Bulletproof  中低

CRYPTREC/IPA高中低

Mozilla高中低

AESGCMECDSA証明書ECDHE鍵交換

CamelliaCBC

ECDH鍵交換

RSA鍵交換

3DES

RC4

SRP鍵交換 DSA証明書

AESCCM

DH鍵交換

AESCBCRSA証明書

DHE鍵交換

あまり普及せず

© 2015 Kenji Urushima All rights reserved. 20

Page 22: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

CRYPTREC/IPAガイドラインの課題・今後の期待

   

21 © 2015 Kenji Urushima All rights reserved.

Page 23: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 22

• ページ数も多くサーバー管理者が見てすぐ使えるようになってないので、記載は見直せるといい

• 執筆後、新たなインシデントも起きており今後も頻繁に見直し/改定は必要– Logjam脆弱性、TLS  1.xではRC4使用不可(RFC7465)

• Certificate  Pinningについては標準の誤解があり間違ったことを書いてしまい、訂正できるとよい。

• Session  Resumptionについて、記載しそこねたので追記できるとよい。

• レベル分けはモダン(高)と互換性重視(低)の2つで十分

課題と今後の期待(1)

Page 24: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 23

• 暗号スイートの見直し– LogjamやDH(E)の実装状況、DH(E)のパフォーマンスの悪さ、設定の面倒さ、対応実装のバージョン要件などを考えれば、混乱するだけなのでDH(E)スイートは外してもいいか

– Camelliaはデフォルトで対応する最新ブラウザがなくなったので、外してもよいか

– AES256、AES128の順序は必ずしもAES128優先でなくてもよいのでは(皆が、高スループットを求めるわけではない。)

– ECC系の暗号スイート(ECDH(E),  ECDSA)は「パテントリスクに気をつけろ」と書いても、対策のしようがなく、混乱するので一元化してはどうか

• チェックリストは、サンプルのサーバー設定を使えば2/3は記入不要で無駄が多いので、見直すとよい。

課題と今後の期待(2)

Page 25: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 24

(参考)チェックリストの冗長な所

レベルは合ってる?

プロトコル(サンプル使用→不要

証明書の選定要件(ここをチェックすれば十分)

暗号スイート

サンプル使えばチェック不要

Page 26: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 25

Logjam(弱いDH(E)鍵脆弱性)Matthew  Green先生のブログでの解説

出典:http://blog.cryptographyengineering.com/2015/05/attack-of-week-logjam.html

•  Logjam脆弱性は、鍵交換で輸出グレードのDH(E)鍵交換(DHE_EXPORT、DH  512bit)に中間者がダウングレードすることにより通信を盗聴する脆弱性

•  利用者に気づかれないように、タイムアウトしないよう工夫するとしても、数秒〜数分のうちに鍵を解読する必要あり

•  DH鍵の解読は2ステップ。大量の計算パワーの必要とするDHパラメータ共通な事前計算と、鍵交換毎の計算

•  512bitなら、個人でもこの程度のクラスタで1、2分で解読可能

•  1024bitなら、NSAの予算規模を考えれば実現可能性が高い。実際、SSHのDH鍵の解読プロジェクトがスノーデンの文書で明らかになっているので応用は容易

•  DHでたった2つの素数が92%のApache/mod_sslで使われていたり、組込み、ハードコード、OSのデフォルトで使っているケースも多く有名な鍵の事前計算の価値は十分ある

ブラウザ

中間者

サーバー

強制DH512

DH2048

Page 27: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 26

• ここ数年、SSL/TLSに関連したインシデントが多発しており、HTTPSサーバーの設定を定期的に見直すのは必須

• CRYPTREC/IPAのSSL/TLS暗号設定ガイドなど幾つかのガイドが出ており、日本語でてっとり早く対策するにはCRYPTREC/IPAのガイドはおすすめ

• ただ、課題は幾つかあって、継続して対応されるといいですね(遠い目・・・)  

• ガイドが更新されない場合には、(仕方なく)自分のブログで情報提供を続けようと思っています。

まとめ

Page 28: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

ご清聴ありがとうございました

Page 29: いろいろなSSL/TLS設定ガイドライン (JNSA電子署名WG 実世界の暗号・認証技術勉強会資料)

© 2015 Kenji Urushima All rights reserved. 28

IPA  SSL/TLS暗号設定ガイドライン

http://www.ipa.go.jp/security/vuln/ssl_crypt_config.html

CRYPTREC  SSL/TLS暗号設定ガイドライン

http://www.cryptrec.go.jp/topics/

cryptrec_20150522_oper_guideline_fy2014.html

NIST  SP800-52r1  Guidelines  for  the  Selection,  

Configuration,

an  dUse  of  Transport  Layer  Security(TLS)  

Implementation

http://nvlpubs.nist.gov/nistpubs/SpecialPublications/

NIST.SP.800-52r1.pdf

Mozilla  Server  Side  TLS

https://wiki.mozilla.org/Security/Server_Side_TLS

Bulletproof  SSL  and  TLS  by  Ivan  Ristic  of  Qualys

https://www.feistyduck.com/books/bulletproof-ssl-and-

tls/

CRYPTRECシンポジウム2015

運用ガイドラインWG報告(主査:明治大  菊池先生)

http://www.cryptrec.go.jp/topics/

cryptrec_20150424_symposium2015_presentation.htm

l

第12回情報セキュリティEXPO[春]  IPAブース資料

SSL/TLS暗号設定ガイドライン  (IPA神田氏)

http://www.ipa.go.jp/security/announce/ist_expo2015.html

非公式SSL/TLSガイド準拠設定生成ツール(漆嶌)

https://kjur.github.io/jsrsasign/tool_httpscfg.html

InternetWeek2014  サーバーのSSL設定のツボ(漆嶌)

https://www.nic.ad.jp/ja/materials/iw/2014/proceedings/s14/s14-urushima.pdf

PKIDay2015  SSL生誕20年、脆弱性と対策を振返る(漆嶌)

http://www.jnsa.org/seminar/pki-day/2015/data/2-1_urushima.pdf

自堕落な技術者の日記

http://blog.livedoor.jp/k_urushima/

SNS等

https://twitter.com/kjur  (@kjur)

https://www.facebook.com/kenji.urushima.biz

参考リンク