開発者は最近、LAMPサーバーに対してTripWireを使用してPCIスキャンを実行しました。彼らはいくつかの問題を識別し、問題を修正するように以下を指示しました:
問題:SSLサーバーはSSLv3、TLSv1の弱い暗号化をサポートしています
解決策:次のルールをhttpd.confに追加します
SSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
問題:SSLサーバーはSSLv3、TLSv1のCBC暗号をサポートします
解決策:CBC暗号を使用して暗号スイートを無効にします
問題:SSLサーバーがSSLv3、TLSv1の弱いMACアルゴリズムをサポートする
解決策:MD5ベースのMACアルゴリズムを使用して暗号スイートを無効にする
要件を満たすためにSSLCipherSuiteディレクティブを作成する方法についての包括的なチュートリアルをgoogleで検索してみましたが、理解できるものが見つかりませんでした。 SSLCipherSuiteディレクティブの例を確認しましたが、ディレクティブの各コンポーネントの機能について説明する必要があります。ディレクティブSSLCipherSuite ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
、たとえば!LOW
手段。
誰かがa)私のニーズを満たすSSLCipherSuiteディレクティブを教えたり、b)SSLCipherSuiteの各セグメントとその構成方法を明確に説明するリソースを見せたりできますか?
唯一の不満がMD5ベースのMACである場合は、!MD5
要素を既存の暗号スイートに追加するだけで、推奨事項を満たすことができます。
とはいえ、CBCモードの使用についても不満を持っているようです。残念ながら、CBC
暗号グループはありません。また、少なくとも私のバージョンのopenSSL(1.0.1e)では、CBCモードの暗号仕様も除外されていません。これは残念です。このような暗号をすべて除外する必要がある場合は、すべてのCBC暗号を明示的に除外できますが、含まれている暗号を更新する必要があります。 HIGH
にもCBC暗号が含まれていることに注意してください。
ALL
とRC4+RSA
の両方を含めることは冗長です。自分の推奨を満たす整形式の暗号仕様を構築することさえできないセキュリティコンサルタント(コンピューター化されたものでも)を信頼するのは嫌です。
SSLCipherSuite
はOpenSSL暗号仕様を使用します。あなたはこれを見つけることができます opensslのドキュメント(リンク) ですが、通常、このドキュメントはかなり古くなっています。ただし、サーバーでopenssl ciphers ${cipherspec}
を実行してテストできます。出力は、指定された仕様で許可される暗号の:
で区切られたリスト、または許可されていないことを示すエラーになります。
同様に、LOW
の内容を知りたい場合は、次のようにします。
falcon@tiernyn ~ $ openssl ciphers 'LOW'
EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:ADH-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5
!LOW
は、それらを除外することを意味します。 +HIGH
は、順序付けで高セキュリティのものを優先することを意味します。
CipherspecでCBCを使用するすべての暗号の行区切りリストが必要な場合は、次のようにします。
openssl ciphers ${cipherspec} | sed 's/:/\n/g' | grep CBC
これらは除外する必要があるものです。ただし、grep -v CBC
を含めてそれらのみを含める方が合理的である場合があります(:
で区切られたリストに設定し、それをcipherspecとして使用してください)。
mod_ssl
のドキュメントでは、SSLCipherSuite
設定のコンポーネントについて説明しています ここ 。
これらのスキャン要件をすべて満たしたい場合は、RC4だけをSSLCipherSuite RC4-SHA
で実行する必要があります(または、システムで実用的かどうかにかかわらず、新しいTLSを実行する必要があります)。