Data Protection APIを使用してweb.configファイルの一部を暗号化しました。
さて、私の質問は、ハッカーがweb.configファイルを復号化するために何を必要とするのですか?
復号化するために、マシンに物理的にアクセスする必要がありますか?または、彼はそれを遠隔地から復号化できますか?
状況によります。
攻撃者がweb.config
に単独でアクセスできる場合、キーなしでは暗号化を解除できません。これは、彼が所有していないと想定しています。
useMachineProtection
構成でDpapiProtectedConfigurationProvider
をtrueに設定し、攻撃者がマシンにアクセスする場合(リモートかどうか)任意のアカウントを使用して、マシンでプロセスを実行すると、web.config
ファイルを復号化できます。攻撃者が実行できるすべてのものを含みます。
useMachineProtection
設定でDpapiProtectedConfigurationProvider
をfalseに設定した場合、攻撃者はプロセスに使用されたユーザーアカウント(リモートか否か)。
DPAPIはパスワードベースの保護を提供します であることを知っておく必要があります。したがって、オプション#3を使用していると仮定すると、攻撃者がマシンに物理的にアクセスできたとしても、データを復号化する暗号化キーを復号化するにはアカウントのパスワードが必要です。もちろん、攻撃者は簡単にパスワードをリセットできますが、暗号化されたキーが役に立たなくなり、データにアクセスできなくなります。
.Net 3.5 SP1までは、useMachineProtection
はデフォルトでtrue(bad)に設定されていることに注意してください。それ以降のバージョンに関する情報はありません。
更新:.Net 4.0は、useMachineProtection
にもデフォルト値trueを使用します。
私はあなたが.NetまたはおそらくC++のようなより低いレベルで働いていると仮定しています。これらのAPIを最近使用したことから、ここがお勧めです。
利用可能な2つの保護された構成プロバイダーがあります。DPAPI(クライアント側のデスクトップアプリケーションにより適しています)と RSAプロバイダー です。後者は、web.configsの暗号化に適しています。これは、ASP.NETサービスのみがデータを復号化するための秘密キーを持つ公開キー構成であり、これはDPAPIと同様に、ユーザーとマシンの両方でスコープできます。
ここ は、ASP.Netでの古くて健全なウォークスルーです。 .Netを使用していない場合の謝罪は、不明確でした。それでも、RSAプロバイダーはここに行く正しい方法だと思います。
DPAPI暗号化の解除に関しては、ほとんどの攻撃はターゲットマシンで調整する必要があります。通常、システム管理者を対象としたパスワードSAMファイルまたはパスワードリセットスクリプトでの試行が含まれます。関連する会議資料- DPAPIをオフラインにする:BlackHat 201 。