web-dev-qa-db-ja.com

SSLCipherSuite-弱い暗号化、CBC暗号、およびmd5ベースのアルゴリズムを無効にします

開発者は最近、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の各セグメントとその構成方法を明確に説明するリソースを見せたりできますか?

6
John

唯一の不満がMD5ベースのMACである場合は、!MD5要素を既存の暗号スイートに追加するだけで、推奨事項を満たすことができます。

とはいえ、CBCモードの使用についても不満を持っているようです。残念ながら、CBC暗号グループはありません。また、少なくとも私のバージョンのopenSSL(1.0.1e)では、CBCモードの暗号仕様も除外されていません。これは残念です。このような暗号をすべて除外する必要がある場合は、すべてのCBC暗号を明示的に除外できますが、含まれている暗号を更新する必要があります。 HIGHにもCBC暗号が含まれていることに注意してください。

ALLRC4+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として使用してください)。

9
Falcon Momot

mod_sslのドキュメントでは、SSLCipherSuite設定のコンポーネントについて説明しています ここ

これらのスキャン要件をすべて満たしたい場合は、RC4だけをSSLCipherSuite RC4-SHAで実行する必要があります(または、システムで実用的かどうかにかかわらず、新しいTLSを実行する必要があります)。

4
Shane Madden