私はこれを無駄にグーグルでしばらく費やしたので、これは私が思っていたよりもトリッキーであるか、これがどのように機能するかを根本的に誤解しています。
私の Web サーバーには、web.config ファイルにマシンキーが含まれるサービスがあります。暗号化したい。
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5" />
<machineKey validationKey="[SOME KEY]"
decryptionKey="[SOME OTHER KEY]"
validation="HMACSHA256" decryption="AES" />
</system.web>
暗号化するには、単純な powershell コマンドを使用します。
C:\Windows\Microsoft.NET\Framework\v4.0.30319> & ".\aspnet_regiis" /PEF "system.web/machineKey" "[PATH TO FILE]"
これはうまくいきます。暗号化します。同じ方法による復号化も正常に機能します。ただし、デフォルトは Triple DES 暗号化です。これは、暗号化されたバージョンのマシン キーから得られるものです。
<machineKey configProtectionProvider="RsaProtectedConfigurationProvider">
...
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
...
</machineKey>
私たちはそれを望んでいません。ASPNET_REGIIS を AES 256 で暗号化する必要があります。これまでの調査では、暗号化スクリプトで /PROV 引数を使用して「ProtectedConfigurationProvider」を指定することでこれを実行できることがわかりました。これは、次の暗号化プロバイダーを参照する必要があります。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
私は現在、トリプル DES を使用しているように見えるデフォルト (RsaProtectedConfigurationProvider) のプロバイダーを 1 つしか持っていません。
AES 256 を使用して ASPNET_REGIIS 経由で暗号化された machineKey を取得するために必要な手順を知っている人はいますか? ここで何かひどく間違っていますか?
あなたが提供できるどんな助けも大歓迎です。