セキュリティモードを「トランスポート」に設定してbasicHttpBindingを使用し、証明書をポートにバインドするWCFサービスを作成しました。そのため、クライアントは https を介してサービスを利用できます。
今、マネージャーから https で AES128 を使用するように求められましたが、方法がわかりません。https チャネルを AES で暗号化するにはどうすればよいですか? それは可能ですか、それとも意味がありますか?
ジョニー
HTTPS トランスポート セキュリティは、実際には IIS で (ホストされている場合)、または証明書をポートにバインドするときに、WCF 自体の外部で処理されます。
HTTPS (SSL または TLS) は多数の暗号アルゴリズム (AES、3DES、RC4 など) をサポートし、クライアントとサーバーは、それぞれがサポートするもの (暗号の完全なリストhttp://msdn .microsoft.com/en-us/library/windows/desktop/aa374757(v=vs.85).aspx )。
IIS (証明書をポートにバインドする場合も想定) は、Schannel セキュリティ プロバイダーを使用して HTTPS を処理します。残念ながら、IIS または web.config には、どの暗号を許可するかを制御するための組み込みの設定はありません。
したがって、AES128 のみを強制する場合は、Windows レジストリを編集し、Schannel が他の暗号を使用しないようにする必要があります ( http://support.microsoft.com/kb/245030 )。
これは、レジストリの場所に移動することを意味します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Ciphers
そして、そこにあるすべての暗号を無効にし (「有効」REG_DWORD を 0x00000000 に設定)、「AES 128/128」用のものだけを有効のままにします (欠落している場合は、「AES 128/128」サブキーを追加し、値が 0xffffffff の有効な DWORD)