Windows Server 2008 R2にWebアプリケーションを配備する前のセキュリティスキャン結果により、次のメッセージが表示されました。
弱いSSL暗号スイートがサポートされています
弱い暗号スイートを使用しないようにサーバーを再構成します。構成の変更はサーバー固有です。
SSLCipherSuite HIGH:MEDIUM:!MD5!EXP:!NULL:!LOW:!ADH
Microsoft Windows Vista、Microsoft Windows 7、およびMicrosoft Windows Server 2008の場合、以下の手順に従って、サポートされている暗号スイートのリストから脆弱であると識別された暗号スイートを削除します。
http://msdn.Microsoft.com/en-us/library/windows/desktop/bb870930(v = vs.85).aspx
私はMSDNの情報を理解しようとしましたが、そこでは完全に迷っています。
まず、削除または無効化すべき暗号スイートがどれなのかわかりません。
それでは、暗号スイートを削除する例を挙げてコードを実行するにはどうすればよいですか?
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main()
{
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCipher = (L"TLS_RSA_WITH_RC4_128_SHA");
Status = BCryptRemoveContextFunction(
CRYPT_LOCAL,
L"SSL",
NCRYPT_SCHANNEL_INTERFACE,
wszCipher);
}
削除する暗号スイートを特定することは非常に難しい場合があります。 Windowsでは、過去に無料の IIS Crypto ツールを使用しました。
IIS Crypto is a free tool that gives administrators the ability to enable or disable
protocols, ciphers, hashes and key exchange algorithms on Windows Server 2003, 2008
and 2012. It also lets you reorder SSL/TLS cipher suites offered by IIS, implement
best practices with a single click and test your website.
これは、多かれ少なかれ安全なアルゴリズムに関する誰かの専門知識を活用するだけでなく、実際にWindowsに変更を実装する方法を理解するのに苦労します(ヒント:これは一連のレジストリエントリです)。
Protocolsを無効にするには、ClientとServerキーとプロトコルバージョンを追加し、DisabledByDefault = 1(DWord)およびEnabled = 0(DWord)の値。
例またはキー:HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Client HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server
Ciphersを無効にするには、スイート名でキーを作成し、Enabled = 0(DWord)値
キーの例:HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168
Win 2016システム以降では、Disable-TlsCipherSuite
コマンドレット。以前のオペレーティングシステムでは、Functionsレジストリ値があり、受け入れられた暗号スイートのリスト全体が含まれています。これらの値は、次のパスのサブキーの下にあります。
HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\Default HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL
ただし、Microsoftによると:
Microsoft SCHANNELチームは、レジストリ内のグループポリシーとデフォルトの暗号スイートの場所を直接操作することをサポートしていません。
GPOここにあります:コンピュータの構成\管理用テンプレート\ネットワーク\ SSL構成の設定\ SSL暗号スイートの順序
弱い暗号の無効化は、アプリケーション構成ごとに行われるようです。
guide からWebサーバーおよびProxy Serverへの暗号構成は、 Hynek Schlawack (Apache/httpd、nginx、HAProxy、および一般的な注意事項を含む)によって積極的に維持されています。
2015-01-16現在、彼が推奨する「暗号スイート」文字列は次のとおりです。
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
Tomcatの同等物は[編集:私の以前のリストには、Firefoxの現在のバージョンで機能する暗号が含まれていませんでした]:
ciphers="TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_256_GCM_SHA384,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV"
Tomcat How To:SSL Ciphers からのフォーマット、および Christopher Schultzからのメール によって提供される実行中のコードから利用可能な暗号。
削除する暗号スイートを特定する限り、まずは私の回答を示します 2015年ですが、高セキュリティHTTPS環境で使用する必要があるSSL/TLS暗号スイートはどれですか? for詳細な概要。
ショート、ショート、ショートバージョンは次のとおりです。