system
大橋 俊昭

2017.5.10システム開発 

代表取締役

大橋 俊昭

[SSL] SSL/TLS暗号化設定を見直そう!!(その2)

セキュリティエンジニアのオーハシです。すっかり「薄着」で過ごせる季節となりました。梅雨までの短い期間ですが、最高の季節を楽しみたいと思います。。。

前回に引き続き「SSL/TLS暗号化設定」を一緒に考えていきましょう!!

暗号化設定(例)

前回は「Apache 2.4.25」と「OpenSSL 1.0.2k」を使用して、脆弱性対策を踏まえた暗号化設定を実施してみました。「POODLE攻撃」と「FREAK攻撃」に対応した設定内容になりますが、細かく見ていきましょう。

SSLProtocol -ALL +TLSv1.2
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256!RC4:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS:!ADH:!DH
Header always set Strict-Transport-Security "max-age=31536000"

SSLProtocol

「SSLProtocol」では、プロトコルバージョンを指定します。プロトコルバージョンが後になるほど、安全性が高まりますが、古い機器からの接続も確保しなければいけません。但し、セキュリティ「高レベル」を求めるのであれば、「TLS1.2」のみを有効化し、「TLS1.1」以前を無効化するべきです。(例)では「TLS1.2」のみを有効化した設定内容であり、POODLE攻撃の対象となり得る「SSL3.0」は無効化されています。

SSLHonorCipherOrder

「SSLHonorCipherOrder」では、暗号化方式の決定順序を「サーバ優先とするか否か」を指定します。基本的には、クライアントからの指定ではなく、サーバ設定順序に従う「サーバ優先(ON)」と設定するべきです。暗号化方式に「ECDHE」もしくは「DHE」が優先的に使用されることで「PFS(Perfect Forward Secrecy)」を実現することにもつながります。詳しくは触れませんが、「PFS(Perfect Forward Secrecy)」を調べると、もっと「SSL/TLS暗号化設定」に詳しくなると思いますよ!!

SSLCipherSuite

「SSLCipherSuite」では、暗号化方式を指定します。単に並べれば良いという訳ではなく、順番を考慮して、必要な暗号化スイートのみを指定することになります。暗号化スイートは「鍵交換_署名_暗号化_ハッシュ関数」の組合せにより構成され、例えば「ECDHE-ECDSA-AES256-GCM-SHA384」であれば、鍵交換には「ECDHE」、署名には「ECDSA」、暗号化には「鍵長256ビットGCMモードのAES」、ハッシュ関数には「SHA-384」が使われることを意味します。セキュリティ「高レベル」を求めるのであれば、「電子政府暗号推奨リスト」に掲載されているアルゴリズムのみで構成するべきです。

同時に「SSLCipherSuite」では「使わせない」暗号化方式を指定することになります。「使わせない」暗号化方式は「!」にて指定します。

設定
説明

!RC4
暗号化に利用する疑似乱数が偏向することがあり、解読が容易

!LOW
鍵長が56bitまたは64bitの暗号化スイートであり、使用するべきではない

!MD5
ハッシュ関数にMD5を使った暗号化スイートであり、セキュリティ「低」

!aNULL
通信の認証をしない方式であり、使用するべきではない

!eNULL
通信を暗号化しない方式であり、使用するべきではない

!3DES
3DESを使用した暗号化スイートであり、解読が容易

!EXP
米国外に輸出可能な暗号化スイートであり、FREAK攻撃の可能性あり

!PSK
セキュリティ「低」、使用するべきではない

!SRP
バッファオーバーフローの脆弱性あり、使用するべきではない

!DSS
認証されない、使用するべきではない

!ADH
DH(Anonymous Diffie-Hellman)による匿名認証、使用するべきではない

!DH
DH(Diffie-Hellman)による認証、ADHを含む、使用するべきではない

HSTS

HSTS(Header always set Strict-Transport-Security)」とは、HTTP接続された場合でも、強制的にHTTPSへリダイレクトするようブラウザに記憶させる仕組みです。具体的には、強制リダイレクトの有効期間を「秒数」にて指定します。(例)では「365日=31,536,000秒」を設定しています。ちなみに、RFC6797にて標準化されていますよ!!

今回はここまで、説明が主体になってしまいましたが、次回は暗号化設定に対するテスト手法を見ていくことにします。テストツールも紹介していきますので、お楽しみに!!<つづく>

» [SSL] SSL/TLS暗号化設定を見直そう!!(その1)
» [SSL] SSL/TLS暗号化設定を見直そう!!(その2)
» [SSL] SSL/TLS暗号化設定を見直そう!!(その3)

システム開発サービスはこちら
ページTOPへ