3

Windows DPAPI よりも安全にパスワードを保護および保存する方法はありますか?

私のプログラムは、Windows で自動ログインを行うためにシークレット (資格情報のようなもの) を保存する必要があります。プログラムは別のアカウントで実行できますが、資格情報を共有できるため、このシークレットを他のユーザー アカウントと共有する必要があります。

攻撃者が自分の資格情報を挿入して制御を奪うのを防ぐために、このシークレットを改ざんから保護する必要があります。攻撃者が物理的なアクセス権を持っている場合、私たちにできることは何もないことはわかっていますが....現在、この秘密を保存して保護する最善の方法は何ですか?

4

1 に答える 1

1

改ざんに対して何かを保護したい場合は、おそらくマルチレベルのアプローチを使用する方がよいでしょう。これの欠点は、(すべてのシークレットを使用しても) アクセスを取得することは天文学的な偉業であり、これでログイン時間が増加することです.

ただし、システムの安全性は、その最も弱い点にかかっていることに注意してください。カスタム暗号化のさらに多くの層の背後にある隠された暗号化ボリュームにファイルを保持することはできますが、職場のデスクのそばにある付箋にパスワードがある場合、それは長期間安全ではない可能性があります.

同じことが Windows のセキュリティにも当てはまります。ACL と暗号化は、管理者のアカウントと同じくらい強力です。セキュリティに関するヒントについては、Server Faultを試してください。

システム自体に関しては、公開鍵暗号化 (非対称暗号化) を何らかの方法でキーまたはデジタル証明書を介して実装し、すべてのユーザーに独自のキー/ID を付与することは、リスクがはるかに少なく、はるかに安全な代替手段です。
Windows は、少なくともWindows Server 2000以降、公開鍵インフラストラクチャをサポートしています。ハードウェアがあれば、スマートカード ログオンを使用することもできます。

次の点を考慮してください
。 1. 攻撃者がユーザーから (保護された) 秘密鍵を取得します。これは、平均的なハードウェアで 1 時間か 2 時間で @2048 ビットで壊れる可能性があります。この例では、ユーザーの公開鍵を削除して、新しい鍵を再生成するだけで済みます。
2. 攻撃者がユーザーのデジタル証明書を取得した場合、次の 2 つのオプションがあります。

1) Remove their certificate from the Active Directory store, ACL or other certificate store.
2) Issue a revocation on the certificate, and forceably expire it. This assumes your are acting as the certificate authority.

要するに、この回答は 1 つのことを示しています。パスワードのセキュリティについてそれほど心配している場合は、パスワードを使用するべきではありません。システムが壊れるのに永遠に時間がかかるようにする場合、代替ルートはパスワードのボットネットブルートフォースです.

于 2012-09-26T23:24:37.583 に答える