0

私はこれを無駄にグーグルでしばらく費やしたので、これは私が思っていたよりもトリッキーであるか、これがどのように機能するかを根本的に誤解しています。

私の 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 を取得するために必要な手順を知っている人はいますか? ここで何かひどく間違っていますか?

あなたが提供できるどんな助けも大歓迎です。

4

1 に答える 1

0

Chris, I don´t know if it can help you, but try to put it manually into your web.config:

 <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="AES" decryption="AES"/>

I guess it´s safer than adopt your own keys.

于 2015-09-29T01:54:34.620 に答える