Internet Week 2014

セッションS14

サーバーのSSL/TLS設定のツボ
2014年11月20日(木) 13:45-14:15
於：富士ソフトアキバプラザ(配布資料)

漆嶌 賢二

本文中の登録商標および商標はそれぞれの所有者に帰属します。

富士ゼロックス株式会社 SkyDeskサービスセンター 漆嶌賢二© 2014 Fuji Xerox Co., Ltd. All rights reserved.

SSL/TLSの過去の問題と対応方法
時期

問題・事件

対策

2005.11

OpenSSL SSLv2バージョンロールバック

アップデート2009.01

RapidSSL MD5衝突偽造中間CA

アップデートやPinning2009.07

NULL終端による証明書ホスト名一致不備

アップデートやPinning2009.11

再ネゴシエーション脆弱性

アップデート2011.03

Comodo不正証明書発行(RA攻撃)

アップデートやPinning2011.08

DigiNotar不正証明書発行(RA攻撃)

アップデートやPinning2011.09

BEAST攻撃

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

2011.11

Digicert Sdn不正証明書発行(RSA512)

アップデートやPinning2012.05

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

アップデートやPinning2012.09

CRIME攻撃

圧縮解除設定(SSL)

2013.01

Lucky13攻撃

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

2013.01

TURKTRUST不正証明書発行(オペミス)

アップデートやPinning2013.03

SSLにおけるRC4暗号危殆化

暗号スイート/プロトコル設定(非RC4)

2013.03

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

2013.06

BREACH攻撃

圧縮解除設定(HTTP gzip)

2013.06

スノーデン氏暴露(NSAの全SSL通信保管)

暗号スイート/プロトコル設定(ECDHE,DHE使用)

2014.04

HeartBleed攻撃

アップデート2014.06CSSInjection攻撃

アップデート2014.10POODLE攻撃

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

古い脆弱性であっても、アップデートだけでは解決しない問題が多数残っている© 2014 Fuji Xerox Co., Ltd. All rights reserved.

1

サーバー管理上のこれまでのSSL/TLSの問題と対策の整理
アップデートの適用

暗号危殆化の問題

アップデSSL/HTTP プロトコル設計の問題

ー

SSLv2, SSLv3, CBCモード,
TLS圧縮, HTTP圧縮,
再ネゴシエーション

ト
に
よ
る
対
策

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

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

暗号スイート、プロトコル、圧縮の設定
各種パッチ、アップデートの適用
暗号スイート、プロトコル、圧縮の設定

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

証明書ブラックリストの更新
Cert Pinning, DNSSEC設定による検知

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

2

サ

ー

ー

S
バ
S
L 管
/理
T 上
L の
S こ
のれ
問ま
題で
の

MD2, MD5, RC4, SHA1,
RSA1024bit, DH1024bit

ー

ー

サ

バ

側
設
定
に
よ
る
対
策

とはいえ、SSL/TLSの設定はわかりにくい•設定だってよくわからん
SSLCipherSuite
RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5•もう、こりゃ呪文かと・・・•どんなサーバー証明書にすればいいの？

© 2014 Fuji Xerox Co., Ltd. All rights reserved.

3

今日説明する設定のポイント(アジェンダ)•SSL/TLSの設定ポイント–暗号の設定(暗号スイートの設定)–暗号スイートの順序のサーバー優先–使用プロトコルバージョン–圧縮設定の解除–証明書の設定–オプション：Certificate/Public Key Pinning–オプション：OCSPステープリング–オプション：HSTS(HTTPSの強制)•今後のSSLサーバー証明書の購入ポイント© 2014 Fuji Xerox Co., Ltd. All rights reserved.

4

利用者環境/サービス提供環境の想定

利用者はどんな環境を使うのか
そしてサービス提供側の要件によって設定は変わる© 2014 Fuji Xerox Co., Ltd. All rights reserved.

5

利用者環境/サービス提供側環境の想定
利用者側

サービス提供側

スマートフォン, PCなど最新のブラウザが使えるかサポートするブラウザやOSは何か最新のブラウザだけにサービスを限定するか

どのようなブラウザ、OSを使っているかサーバー側のOS、ソフトウェアは何かJavaなどのクライアントがあるかフィーチャーフォンのユーザがいるかHTML5や最新のJavaScriptに限定
するかWindows XP SP3より前の環境をサポートするか専用機、SSLアクセラレータ、SSLVPNなどかサポート終了になったクライアント環
境(WinXP SP3等)をサポートするかクラウド環境から提供されるものか(AWS Elastic LB等)

ゲーム機、専用機、専用アプリなどが想定されるか一般に広く提供するサービスか、組
織内(社内,省庁内)のサービスかAPIからの利用があるか、また言語は何か想定される対象によって有効な設定が変わってくる© 2014 Fuji Xerox Co., Ltd. All rights reserved.

6

想定環境の大まかな分類
A. 最新環境をサポート

B. 幅広くサポート

C. レガシーサポート

高セキュリティ•HTML5や最新のJavaScript, CSSなど
最新環境でしか動作しない•最新のPCやスマホのブラウザを必須とする

低セキュリティ© 2014 Fuji Xerox Co., Ltd. All rights reserved.

•幅広い環境をサポートしなければならない場
合•何をサポートしなければならないのかよくわ
からない場合•XP、ガラケー、ゲーム
機、APIなどレガシーな環境をサポートする場合•政官系の専用アプリ•ICカードによるクライ
アント認証•SSLアクセラレータ、
SSL-VPN等の専用ハードで設定内容が制限される場合

7

SSL/TLSサーバー設定のポイント© 2014 Fuji Xerox Co., Ltd. All rights reserved.

8

SSL/TLSサーバー設定のポイント(概要)① 暗号の設定(暗号スイートの設定)② 暗号スイートの順序のサーバー優先③ 使用プロトコルバージョン④ 圧縮設定の解除⑤ サーバー証明書の設定
以下は、できればオプション①：Certificate Pinning
オプション②：HSTS(HTTPSの強制)オプション③：OCSPステープリング© 2014 Fuji Xerox Co., Ltd. All rights reserved.

9

SSL/TLSサーバー設定のポイント①
暗号スイートの設定© 2014 Fuji Xerox Co., Ltd. All rights reserved.

10SSL/TLSの3つの機能

ニセのアマゾンサイトに「カード番号、住所」な
んかを送りたくない。

「カード番号、住所、氏名、買い物の内容」を途中で見られたくない

途中で「届け先住所」
を書き換えて商品を騙しとられたくない。

相手認証

機密性

完全性

証明書(PKI)などを使い通信相手が正しい相手であるか認証

暗号通信により相手以外に内容を盗み見(盗聴)されない

通信途中でデータが書換え(改ざん)されないよう検知できる

なりすまし防止

覗き見(盗聴)防止

改ざん防止

PKI(公開鍵暗号)を使う

共通鍵暗号を使う

MAC(メッセージ
認証コード)を使う

11

CipherSuiteとは？
ClientHello, ServerHelloでウェブブラウザとウェブサーバーが合意する暗号のセット
ClientHello
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_DES_CBC_SHA
TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA(例)

をサポートしてますけど、どうしまっか？
ServerHello
通信暗号強度が決まる
ほな、これでお願いしま
のでサーバー側ではTLS_RSA_WITH_DES_CBC_SHA
注意が必要

TLS_RSA_WITH_AES128_CBC_SHA

値0ｘ００１０

TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
値0ｘ００１０
データの鍵交換とメッセージ認証
共通鍵暗号の (MAC)のアルゴリズム(公開鍵暗号を使った)※ハッシュ関数SHA1でなく認証のアルゴリズム
アルゴリズム
MAC関数 HmacSHA1

相手認証

データ暗号化

改ざん防止じゃぁ、どの暗号スイートを選ぶか (参考)
鍵交換
ECDHE
ECDH
DHE
DH
SRP
NULL

認証
RSA
ECDSA
DSS
KRB5
PSK
anon
NULL
RSA_EXPORTDSS_EXPORTGOST341094
GOST341001

暗号化
AES_(128|256)_CBC
AES_(128|256)_GCM
AES_(128|256)_CCM(_8)
3DES_EDE_CBC
DES_CBC
RC4_(40|128)
CAMELLIA_(128|256)_CBC
IDEA_CBC
ARIA_256_(CBC|GCM)
SEED_CBC
CHACHA20_POLY1305
GOST28147
NULL

MAC
SHA
SHA256
SHA384
MD5
IMIT_GOST28147
HMAC_GOST3411
NULL

組み合わせの数が多すぎて選びようがない© 2014 Fuji Xerox Co., Ltd. All rights reserved.

13暗号スイートを選定する際のポイント① 2つ以上のメジャーなブラウザがサポートしている(KRB5, PSK, SRP, CCMなど除外)② 最近のなるべく多くの脆弱性や問題に対応したい
a.
b.
c.
d.
e.
f.

BEAST,POODLE対策 (CBC除外)
Lucky13対策 (GCM利用)
RC4危殆化 (RC4除外)
多くのDHE,DH実装の鍵長不足(1024bit以下) (DHE,DH除外)
米NSAの監視とPFS (ECDHE,DHE利用)
SHA1危殆化 (SHA除外)③ 暗号機能が無効になってるものは選ばない(NULL,anon除外)④ 輸出用の弱い暗号を選ばない(EXPORT除外)⑤ 証明書に関しては商用サービスが対応するもの(DSS除外)⑥ 明らかに弱い暗号は除外(MD5, RC2, DES除外)⑦ サーバー側のパフォーマンスにも配慮する(AES128で十分、DHEはやめる、RSA4096ならECDSA)⑧ 必要があればレガシーな環境にも配慮する(3DESかRC4ぐらいしか選択肢がない)© 2014 Fuji Xerox Co., Ltd. All rights reserved.

14

最近の脆弱性に配慮した暗号スイートの選定と順序
最近のブラウザのみ対応

暗号
スイート
と順序
対応する
問題

レガシーを含む幅広い環境に対応【最新1】
NSA等による
監視にも対応【最新2】
NSA等による監
視は無視【レガシー1】
RC4危殆化に配慮【レガシー2】
CBC関連の攻撃に配慮①
ECDHE+AES+
GCM+SHA2①＋②AES+GCM+
SHA2

①＋②＋
③AES+CBC+SHA2
AES+CBC+SHA1
3DES+CBC+SHA1①＋②＋④RC4+SHA1

RC4,DHPOODLE,BEAS
T,Lucky13,DH

PFS

POODLE,BEAST,Lucky
13,SHA1

RC4,SHA1

やや新しいブラ
ウザ以降しか対応しない

最も幅広いクライアントに対応するが、CBC関係の攻撃に対抗しない

CBC関連攻撃に対抗し、レガシーを広くカバーするが古IEなど非対応

POODLE,BEA POODLE,BEAS
ST,Lucky13,R T,Lucky13,RC
C4,DH,PFS,S 4,DH,SHA1
HA1

非対応の
問題
新しいブラウザしか対応しない

注意点© 2014 Fuji Xerox Co., Ltd. All rights reserved.

15

前述4ケースのための暗号スイート一覧と順序 (参考)【最新1】グループ①のみ【最新2】グループ①＋②【レガシー1】グループ①＋②＋③【レガシー2】グループ①＋②＋④■暗号スイート グループ①■暗号スイート グループ③

ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

ECDHE_RSA_WITH_AES_128_GCM_SHA256

RSA_WITH_AES_128_CBC_SHA256

ECDHE_RSA_WITH_AES_256_GCM_SHA384

RSA_WITH_AES_256_CBC_SHA256■暗号スイート グループ②

ECDHE_ECDSA_WITH_AES_128_CBC_SHA

RSA_WITH_AES_128_GCM_SHA256

ECDHE_ECDSA_WITH_AES_256_CBC_SHA

RSA_WITH_AES_256_GCM_SHA384

RSA_WITH_AES_128_CBC_SHA
RSA_WITH_AES_256_CBC_SHA
RSA_WITH_3DES_EDE_CBC_SHA

好みの暗号スイートを加えて構いませんが、これが基本形です。
© 2014 Fuji Xerox Co., Ltd. All rights reserved.

■暗号スイート グループ④
RSA_WITH_RC4_128_SHA
16

Apache HTTP Server/lighttpd/nginx+OpenSSLの暗号スイート設定 (参考)
OpenSSL系のサーバーでは、個別の省略した名称で暗号スイートを記載し指定することもできるが、パータンを表す式により指定することもできる。前述４ケースにほぼ近いパターン式を紹介する。
■【最新1】最新のブラウザ用でPFSを気にする場合
EECDH+AESGCM:!DSS:!DH# 課題：AES256>AES128になってしまう■【最新2】最新のブラウザ用でPFSを気にしない場合
EECDH+AESGCM:RSA+AESGCM:!DSS:!DH■【レガシー1】レガシーを含め最も幅広くサポートし、RC4危殆化に対抗する場
合
EECDH+AESGCM:RSA+AESGCM:EECDH+AES:AES:DES-CBC3SHA:!DSS:!DH:!PSK:!SRP:!MD5:!AECDH:!kECDH■【レガシー2】レガシーを含め幅広くサポートし、古いIE環境は無視し、BEAST等のCBC系攻撃に対抗する場合
EECDH+AESGCM:RSA+AESGCM:RC4SHA:!DSS:!DH:!PSK:!SRP:!MD5:!AECDH:!kECDH© 2014 Fuji Xerox Co., Ltd. All rights reserved.

17

Microsoft IISの暗号スイート/プロトコル設定
オススメIISの暗号スイート/プロトコルの設定ツール(参考)

NATRAC IIS Crypto
https://www.nartac.com/Products/IISCrypto/
グループポリシーエディタでも設定可能だが、簡単に暗号スイート/プロトコルを設定できるフリーウェア© 2014 Fuji Xerox Co., Ltd. All rights reserved.

18

Apache Tomcatの暗号スイート設定 (参考)Tomcatで使用するJavaがどのバージョンかで、設定できる暗号スイートやその名称が決まるため、サポートする暗号スイート一覧が簡単に得られると有り難い。
このような時、SSLInfoというツールを使用している。
https://gist.github.com/MikeN123/8810553
コンパイルしてTomcatで使うJavaで実行すれば暗号スイート一覧が得られる。
※ J2SE 1.6.0_65のサポートするCipherSuites一覧
Default Cipher*
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA*
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA*
SSL_DHE_DSS_WITH_DES_CBC_SHA*
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA*
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA*
SSL_DHE_RSA_WITH_DES_CBC_SHA
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
SSL_DH_anon_WITH_DES_CBC_SHA
SSL_DH_anon_WITH_RC4_128_MD5*
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA*
SSL_RSA_EXPORT_WITH_RC4_40_MD5*
SSL_RSA_WITH_3DES_EDE_CBC_SHA*
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_WITH_NULL_MD5
SSL_RSA_WITH_NULL_SHA*
SSL_RSA_WITH_RC4_128_MD5*
SSL_RSA_WITH_RC4_128_SHA© 2014 Fuji Xerox Co., Ltd. All rights reserved.

*
*
*
*

TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DH_anon_WITH_AES_128_CBC_SHA
TLS_DH_anon_WITH_AES_256_CBC_SHA*
TLS_EMPTY_RENEGOTIATION_INFO_SCSVTLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
TLS_KRB5_EXPORT_WITH_RC4_40_MD5
TLS_KRB5_EXPORT_WITH_RC4_40_SHA
TLS_KRB5_WITH_3DES_EDE_CBC_MD5
TLS_KRB5_WITH_3DES_EDE_CBC_SHA
TLS_KRB5_WITH_DES_CBC_MD5
TLS_KRB5_WITH_DES_CBC_SHA
TLS_KRB5_WITH_RC4_128_MD5
TLS_KRB5_WITH_RC4_128_SHA*
TLS_RSA_WITH_AES_128_CBC_SHA*
TLS_RSA_WITH_AES_256_CBC_SHA※ ‘*’印はデフォルトで提供されるCipherSuites

19

SSL/TLSサーバー設定のポイント②
暗号スイートのサーバー優先© 2014 Fuji Xerox Co., Ltd. All rights reserved.

20

暗号スイートのサーバー側優先
クライアントから送る暗号スイート一覧の順序を優先して接続すると弱い暗号が使われることがある
ClientHelloWindows XP上のIE7では
RC4-MD5のような弱い暗号が優先されてしまっていた。

RC4-MD5
RC4-SHAAES128-SHA
AES256-SHA
以下略

デフォルト設定のクライアント側
暗号スイートを優先するサイト
ServerHello

RC4-MD5

Android や JRE 1.4-1.6 の Java
API (URLConnection, Apache
HTTP Components/HTTPClient)を使用した場合、RC4-MD5が最優先されてしまう。(WebViewは問題無し)

SSLHonorCipherOrder On等設定してサーバー側を優先する設定を参考

PKIDay 2011 NTT武藤氏：SSLにおける暗号危殆化サンプル調査の報告 http://www.jnsa.org/seminar/pki-day/2011/data/03_mutoh.pdf
自堕落な技術者の日記 JRE 1.4-1.6やAndroidのAPIを使ったHTTPS接続のCipherSuitesのRC4-MD5優先 http://blog.livedoor.jp/k_urushima/archives/1727793.html© 2014 Fuji Xerox Co., Ltd. All rights reserved.

21

SSL/TLSサーバー設定のポイント③④⑤③使用プロトコルバージョン④圧縮設定の解除⑤サーバー証明書の設定© 2014 Fuji Xerox Co., Ltd. All rights reserved.

22

SSLサーバー設定のポイント③〜⑤③ 使用プロトコルバージョン
 POODLE対策としてSSLv3を無効化できるか？
 レガシーな環境ではSSLv3を残す必要があるかも④ 圧縮設定の解除
 CRIME攻撃、TIME攻撃対策としてSSL圧縮を無効化する⑤ サーバー証明書の設定
 OpenSSL系のサーバー(Apache、lighttp、nginx)の場合には、中間CA証明書の設定を忘れずに！
 設定方法は証明書発行サービスのヘルプをよくご覧ください© 2014 Fuji Xerox Co., Ltd. All rights reserved.

23

SSL/TLSサーバー設定のポイントオプション①
Certificate Pinning© 2014 Fuji Xerox Co., Ltd. All rights reserved.

24

Certificate Pinning/Public Key Pinning (不正証明書の拒否)

Pinningはニセ証明書対策に効果がある
Pinningがない場合
GeoTrust
ルート

本物の*.google.com

Pinningがある場合
GeoTrust
ルート

DigiNotar
ルート

本物の*.google.com

ニセの*.google.com

DigiNotar
ルート

ニセの*.google.com

盗聴
悪意のある
ISPやAP

悪意のある
ISPやAP【方法①】
ブラウザに組み込まれた有名サイトの
公開鍵ハッシュ値© 2014 Fuji Xerox Co., Ltd. All rights reserved.

25

Public-Key-Pins:
pin-sha256=サーバ証明書公開鍵ハッシュ
pin-sha256=中間証明書公開鍵ハッシュ【方法②】
HTTPヘッダで送られる証明書の公開鍵ハッシュ値

Certificate Pinning/Public Key Pinning (不正証明書の拒否)•

インターネットドラフトで規定されている
https://tools.ietf.org/html/draft-ietf-websec-key-pinning-21•

HTTPヘッダを追加することで使用する証明書チェーンの不正入替を防ぐ•

ヘッダのキー：Public-Key-Pins•

ヘッダの値(例)：pin-sha256=証明書の公開鍵のSHA256ハッシュ値のBase64値•

ヘッダを作成してくれるサイトを活用するとよい
https://projects.dm.id.lv/s/pkp-online/calculator.html

SSLサーバー証明書から最上位の中間CA証明書までの証明書
チェーンをPEM形式で入力すればヘッダを自動作成してくれる© 2014 Fuji Xerox Co., Ltd. All rights reserved.

26

SSL/TLSサーバー設定のポイントオプション②OCSPステープリング© 2014 Fuji Xerox Co., Ltd. All rights reserved.

27

OCSP Stapling(RFC 6066TLS拡張8章)の意義と仕組み① 近年、CRLは数十MBまで膨大しモバイル/組込み環境の失効検証に向かずOCSPを使う方向に② ブラウザがOCSPに接続できないと失効如何にかかわらず証明書有効になってしまう③ OCSPサーバのログで、どのIPの人がどのサイトを閲覧したかという情報を認証局も知ってしまう→→ OCSP Staplingでこれを解決

OCSP Staplingがない場合
Aさん婚活中？

OCSP Staplingがある場合

OCSPログ

認証局
OCSPサーバ

認証局
OCSP
サーバ

婚活情報サイトサイトの失効検証情報
OCSPレスポンス

サイト失効検証閲覧

婚活情報サイトAさん

コンテンツにOCSPレスポンスを
ホチキス留め(stapling)して送信

認証局
OCSP
サーバ

失効証明書を使う
ニセ婚活情報サイト

DoS等による
失効検証妨害利用者は直接OCSPサーバにアクセス不要であり安全誘導© 2014 Fuji Xerox Co., Ltd. All rights reserved.

OCSP
レスポンスをキャッシュする28

SSL/TLSサーバー設定のポイントオプション③
HSTS(HTTPSの強制)© 2014 Fuji Xerox Co., Ltd. All rights reserved.

29

HSTSによる強制的なHTTPS接続
RFC 6797 HTTP Strict Transport Secuirty (HSTS)
普段、HTTPSでアクセスしているオンラインバンキングサイトに、空港など外出先でアクセスした
場合、そのアクセスポイントが不正APで、ニセのHTTPで作ったサイトに誘導しようとしても、HSTS機能が有効であれば、二回目以降の接続は自動的にHTTPSサイトへ接続します。
ニセ・オンラインバンク
aabank.com

空港の
ニセAP

③ ブラウザに「aabank.comは
HTTPSのみ」と登録

オンラインバンク
aabank.com④HTTPで誘導(リダイレクト)しようとしても強制的にHTTPSで接続しニセサイトだと判明する①普段の自宅からの
HTTPSアクセス② HTTPSヘッダの受信
aabank.comサイトは2ヶ月間必ずHTTPS
アクセスする

自宅© 2014 Fuji Xerox Co., Ltd. All rights reserved.

30

今後当面のSSLサーバー証明書の購入ポイント© 2014 Fuji Xerox Co., Ltd. All rights reserved.

31

SSLサーバー証明書の購入時のチェックポイント① 鍵長(RSA 2048bit以上、ECDSA 256bit以上)(NIST: RSA1024bitは2013年末まで)② SHA2証明書への移行を検討を
Googleは2014年11月頃からSHA1だと警告がでる
Microsoftは2017年1月からSHA1証明書をサポートしない③ OCSPに対応している所がよい④ フィーチャーフォン、ゲーム機、VoIPの対応が必要ならベンダーによく確認を(鍵長,SHA2,パス長で問題になることも)⑤ ワイルドカード証明書、マルチドメイン証明書は鍵の運用もよく考えて導入を⑥ 必要であればアドレスバーが緑になるEV証明書を© 2014 Fuji Xerox Co., Ltd. All rights reserved.

32

まとめ

© 2014 Fuji Xerox Co., Ltd. All rights reserved.

33

まとめ
デフォルト設定のままでは昨今のSSL脆弱性に対抗できない
面倒でも、きめ細かいウェブサーバーのSSL設定を！

••

SSL/TLSの設定ポイント–

暗号の設定(暗号スイートの設定)–

使用プロトコルバージョン–

証明書の設定–オプション：OCSPステープリング–

暗号スイートの順序のサーバー優先–

圧縮設定の解除–

オプション：Certificate/Public Key Pinning–

オプション：HSTS(HTTPSの強制)

今後のSSLサーバー証明書の購入ポイント
講演「サーバーのSSL/TLS設定のツボ」補足ページ
http://www9.atwiki.jp/kurushima/pages/108.html
本講演後、設定ファイル例、暗号スイートリストなどの補足情報を提供予定© 2014 Fuji Xerox Co., Ltd. All rights reserved.

34

「最新環境」と「レガシーを含む幅広い環境」のサーバー設定まとめ
レガシーな環境を含む、幅広い環境をサポートする場合

最新環境のみをサポートする場合
証明書設定

必要があれば中間CA証明書を忘れずに設定する

暗号スイートECDSA,AES,GCM,SHA2メイン+レガシーをサポートできるもの
ECDSA,AES,GCM,
1) POODLE, BEAST攻撃をあきらめるなら3DES,RSA-AES128を追加
SHA2をメインに
2) RC4の危殆化をあきらめるならRC4を追加

プロトコルバージョン

TLSv1.1, TLSv1.2

TLSv1.2, TLSv1.1, TLSv1, SSLv3

サーバー 暗号スイートサーバー優先
SSL設定
圧縮設定

サーバー優先を有効に
圧縮設定を解除する
Certificate Pinningを設定

Certificate Pinning
HSTS(HTTPSの強制)

パフォーマンスを考慮してHSTSの導入を検討する

HSTSを有効に

OCSPステープリング

なるべくOCSP
パフォーマンスに配慮してOCSPステープリングの導入を検討
ステープリング有効に (レガシーのパフォーマンスダウンに配慮して止めた方がいい)

鍵と鍵長

RSA2048bit
RSA2048bitか(2048bitに対応しないレガシーに配慮するが
ECDSA256bit以上
今やほとんどの認証局は1024bitを発行してくれない)

SSL
ハッシュ関数
サーバー
証明書
ルート認証局
その他© 2014 Fuji Xerox Co., Ltd. All rights reserved.

SHA2

注意点なし

・2017年1月までにはレガシーを捨ててSHA2へ移行
・有効期間を考えると2016年1月頃までにはSHA2へ移行
・SHA1しかサポートしないレガシーのためには
短い有効期間のSHA1で繋いでいくしかない
レガシー環境のサポートが必要な場合、特に証明書発行サービスによく相談を(信頼するルート認証局のリスト、鍵長、アルゴリズム、拡張、識別名、パス長など)
EV、マルチドメイン、ワイルドはお好みで(運用要件に合わせて)35

Apache HTTP ServerのSSL設定例<VirtualHost *:443>
中略SSLEngine on
SSLCertificateFile /etc/ssl/chain+ecparam.crt
SSLCertificateKeyFile /etc/ssl/server.key
SSLCipherSuite "暗号スイート設定例は別紙"
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCompression off
Header always set Public-Key-Pins "max-age=3000; ¥pin-sha256=EE中略; ¥pin-sha256-IM1中略; ¥includeSubDomains"
Header always set Strict-Transport-Security'max-age=63072000; includeSubDomains'
SSLUseStapling On
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"</VirtualHost>© 2014 Fuji Xerox Co., Ltd. All rights reserved.

36

証明書チェーンファイル(中間CAを忘れずに。
ECDH*, DH*の鍵長も設定可)
プロトコル例(SSLv3無効)
暗号スイート・サーバー側優先
SSL圧縮OFF(CRIME,TIME攻撃対策)

Certificate Pinning(不正/偽造証明書の検知)
HSTS(強制HTTPS)OCSP Stapling(OCSP貼付け）

SSLサーバー設定のチートシート(apache/nginx/lighttpd/IIS/Tomcat)(参考)
Apache HTTP

nginx

lighttpd

IIS

証明書と鍵

2.4.8からSSLCertificateFile (EE>IM2>IM1)
SSLCertificateKeyFile PRVKEY

ssl_certificate (EE>IM2>IM1)
ssl_certificate_key PRVKEY

ssl.pemfile=(PRVKEY,EE)
ssl.ca-file=(IM2>IM1)

暗号スイートSSLCipherSuite OSSLパターン

ssl_ciphers "OSSLパターン";

ssl.cipher-list = "OSSLパターン グループポリシーで列挙し設定"

ウィザードで選択

Tomcat証明書ストア(JKS,PKCS12)で提供。keystoreFileとkeystorePassで設定
属性ciphers="列挙"

プロトコル
バージョン

SSLProtocol All -SSLv2 -SSLv3

ssl_protocols TLSv1 TLSv1.1 TLSv1.2

ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"

6.0.39以降はレジストリ設定だがsslEnabledProtocols、それNARTAC SoftのIIS Crypto 以前はprotocolsで指定。
ツールで簡単設定
protocols="TLSv1,TLSv1.1,TLSv1.2"

暗号スイートサーバー優先SSLHonorCipherOrder On

ssl_prefer_server_ciphers on;

ssl.honor-cipher-order ="enable"

設定不能

圧縮フラグOFF

SSLCompression off

1.1.6+/1.0.9+かつOpenSSL 1.0.0+の場
ssl.use-compression =合、もしくは1.3.2+ /1.2.2+の場合デフォ"disable"
ルトOFF

ヘッダ設定方法 Header always set キー 値

非サポート
設定不能

IIS 7.5/Server 2008 R2以
圧縮非サポート
降でも圧縮非サポートのた
設定不能
め設定不要

「IISマネージャー＞機能
setenv.add-response-header =ビュー＞HTTPレスポンス(キー1=>値1, キー2=>値2…)
ヘッダ」で追加

add_header キー 値

Certificate
Pinningヘッダ

キー：Public-Key-Pins
値(例)：pin-sha256="B64鍵ハッシュEE", pin-sha256="B64鍵ハッシュIM1", max-age=3000

非サポート
設定不能

HSTSヘッダ

キー：Strict-Transport-Security
値(例)：'max-age=63072000; includeSubDomains'

非サポート
設定不能

OCSP Stapling

Apache 2.3.3以降
SSLUseStapling On
SSLStaplingCache パス(時間)ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate パス;

非サポート
設定不能

WinSrv2008以降はデフォ有 非サポート
効
設定不能

DH,DHEの鍵長 SSLCertificateFile指定ファイルにDH鍵
ssl_dhparam DH鍵パラ
設定
パラメータを追記

ssl.dh-file=DH鍵パラ

設定不能

設定不能

ECDH,ECDHEの SSLCertificateFile指定ファイルにEC鍵
ssl_ecdh_curve 曲線名
鍵長の設定
パラメータを追記

ssl.ec-curve=曲線名

設定不能

設定不能

※略号：OSSLパターン：OpenSSLによる暗号スイート指定パターン文字列© 2014 Fuji Xerox Co., Ltd. All rights reserved.

37

最後にQualys SSLLabsで設定を確認しましょう
https://www.ssllabs.com/ssltest/ を開きあなたのサイトのドメインを入力し「Do not show the results on the boards」をチェックしボタンを押します。

• あなたのサイトのSSL設定を様々な観点からチェックしてくれます。
• 対応している暗号スイート、プロトコルの確認• 主要クライアントで選択される暗号スイート• 証明書チェーン、OCSP、HSTS、Stapling• 最近の脆弱性や設定項目の対応状況• POODLE• BEAST• ダウングレード攻撃• TLS圧縮の設定• RC4• CSSInjection• Forward Secrecy• HeartBleed• セキュアな再ネゴシエーション© 2014 Fuji Xerox Co., Ltd. All rights reserved.

38

参考資料
■SSLの設定
https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_
1.3.pdf
SSL/TLS Deployment Best Practices
設定内容、解説等とてもオススメ。QualysのIvan Ristic氏著■暗号アルゴリズムの選定
http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf
NIST SP800-131A Transitions: Recommentation forTransitioning the Use of Cryptographic
Algorithm and Key Lengths
http://www.cryptrec.go.jp/list.html
CRYPTREC暗号リスト■個々の技術解説
http://d.hatena.ne.jp/jovi0608/20140902/1409635279
ぼちぼち日記：不正なSSL証明書を見破るPublic Key Pinningを試す© 2014 Fuji Xerox Co., Ltd. All rights reserved.

39

Xerox、Xeroxロゴ、およびFuji Xeroxロゴは、米国ゼロックス社の登録商標または商標です。