web-dev-qa-db-ja.com

OS Xキーチェーンに相当するWindows?

Windowsに、ユーザーパスワードの保存に使用されるOS Xキーチェーンに相当するものはありますか?これを使用して、私の(デスクトップ)ソフトウェアが使用するWebサービスのユーザーのパスワードを保存します。

この関連する質問への回答( デスクトップアプリケーションでのユーザーパスワードの保護(Rev 2) )および サードパーティのパスワードストレージツールのマルティチュード から、そのようなことを想定しています存在しません-Webサービスにアクセスするたびにパスワードを要求するのか、それとも難読化して保存するだけのどちらかに固執していますか?

53
dF.

「従来の」Windowsの同等物は、IE(pre IE 7)、Outlook Express、および他のいくつかのプログラムで使用されるProtected Storageサブシステムです。ログインパスワードで暗号化されているため、一部のオフライン攻撃を防ぐことができますが、ログインすると、どのプログラムでも読み取ることができます(たとえば、NirSoftの Protected Storage PassView を参照)。

Windowsは、役立つCryptoAPIおよびData Protection APIも提供します。繰り返しますが、同じアカウントで実行されているプロセスが互いのパスワードを見るのを防ぐために、Windowsが何もしないとは思いません。

本のように見えます ユーザー識別と認証のメカニズム はこれらすべての詳細を提供します。

他のソフトウェアがそれをどのように実行するかを知りたい場合、Eclipse(その SecureStorage 機能を介して)はこのようなものを実装します。

16
Josh Kelley

Windows 8には、パスワードボールトと呼ばれるキーチェーンの概念があります。 Windowsランタイムアプリ(Modern/Metro)と管理されたデスクトップアプリは、それを利用できます。ドキュメントによると:

アプリとサービスは、他のアプリまたはサービスに関連付けられた資格情報にアクセスできません。

MSDNの ユーザー資格情報の保存方法 を参照してください。

Windows 8より前、 データ保護API (DPAPI)はキーチェーンに最も近いものです。このAPIを使用して任意のデータを暗号化できますが、暗号化されたデータの保存は開発者に任されています。データは最終的に現在のユーザーのパスワードを使用して暗号化されますが、他のソフトウェアやユーザーからデータをさらに保護するために、ユーザーまたは開発者が提供する「オプションのエントロピー」を含めることができます。ドメイン内の異なるコンピューターでデータを復号化することもできます。

DPAPIは、Crypt32.dllの CryptProtectData および CryptUnprotectData 関数へのネイティブ呼び出し、または.NET Frameworkの ProtectedData クラス(限定機能ラッパー)からアクセスできます。前者の機能。

DPAPIについて知る必要がある以上の情報は、Passcapeの記事 DPAPIの秘密。DPAPIでのセキュリティ分析とデータ復旧 にあります。

15
jordanbtucker

実際、MSDNを見ると、保護されたストレージの代わりに使用することをお勧めする機能は次のとおりです。

  • CryptProtectData
  • CryptUnprotectData

CryptProtectDataのリンクは CryptProtectData関数 にあります。

14
jims

2018年で、Windows 10には「コントロールパネル」にある「資格情報マネージャー」があります

7
Mikser