脅威の軽減手法

パスワードのセキュリティを強化するために使用できる脅威軽減手法は多数あります。 これらの手法は、次の 4 つの主要なテクノロジのうちの 1 つ以上を使用して実装されます。

テクノロジ 説明
Cryptoapi CryptoAPI には、暗号化ルーチンをターゲット エンティティに適用するのに役立つ一連の関数が用意されています。 CryptoAPI では、ハッシュ、ダイジェスト、暗号化、および暗号化解除を提供して、その主な機能を言及できます。 CryptoAPI には他の機能もあります。 暗号化と CryptoAPI の詳細については、「 暗号化の要点」を参照してください。
アクセス制御リスト アクセス制御リスト (ACL) は、オブジェクトに適用されるセキュリティ保護の一覧です。 オブジェクトには、ファイル、プロセス、イベント、またはセキュリティ記述子を持つその他のオブジェクトを指定できます。 ACL の詳細については、「Access Control リスト (ACL)」を参照してください。
データ保護 API データ保護 API (DPAPI) には、機密データの暗号化と暗号化解除に使用する 4 つの関数 ( CryptProtectDataCryptUnprotectDataCryptProtectMemoryCryptUnprotectMemory) が用意されています。
保存されたユーザー名とパスワード Storageユーザーのパスワードやその他の資格情報 (秘密キーなど) の処理が容易になり、一貫性が高く、より安全になります。 この機能の詳細については、 CredUIPromptForCredentials を参照してください。

 

これらのテクノロジは、すべてのオペレーティング システムで使用できるわけではありません。 そのため、セキュリティをどの程度向上させるかは、どのオペレーティング システムが関係しているかによって異なります。 各オペレーティング システムで使用できるテクノロジを次に示します。

オペレーティング システム テクノロジ
Windows Server 2003 および Windows XP
  • Cryptoapi
  • アクセス制御リスト
  • データ保護 API
  • 保存されたユーザー名とパスワード
Windows 2000

 

次の脅威軽減手法では、4 つのテクノロジのうち 1 つ以上を使用します。 オペレーティング システムに含まれていないテクノロジの使用を必要とする手法は使用できません。

ユーザーからのパスワードの取得

ユーザーにパスワードの設定を許可する場合は、強力なパスワードを強制的に使用します。 たとえば、パスワードは 8 文字以上などの最小長にする必要があります。 パスワードには、大文字と小文字、数字、およびドル記号 ($)、感嘆符 (!)、または () より>大きいその他のキーボード文字も含める必要があります。

パスワードを取得したら、(できるだけ少ないコードを使用して) すばやく使用し、パスワードのすべての痕跡を消去します。 これにより、侵入者がパスワードを "トラップ" するのに使用できる時間が最小限に抑えられます。 この手法とのトレードオフは、ユーザーからパスワードを取得する必要がある頻度です。ただし、原則は可能な限り採用する必要があります。 パスワードを適切に取得する方法については、「 ユーザーに資格情報を要求する」を参照してください。

"パスワードを記憶する" ユーザー インターフェイス オプションは指定しないでください。 多くの場合、ユーザーはこのオプションを必要とします。 パスワードを指定する必要がある場合は、少なくとも、パスワードが安全な方法で保存されていることを確認します。 詳細については、このトピックの後半の「パスワードの保存」セクションを参照してください。

パスワード 入力試行を制限します。 成功せずに一定回数試行した後、一定の時間ユーザーをロックアウトします。 必要に応じて、各試行の応答時間を最大に延長します。 この手法は、推測攻撃を倒すことを目的としています。

パスワードの保存

パスワードをプレーンテキスト (暗号化されていない) に保存しないでください。 パスワードを暗号化すると、セキュリティが大幅に向上します。 暗号化されたパスワードの格納については、 CryptProtectData に関するページを参照してください。 メモリ内のパスワードの暗号化の詳細については、「 CryptProtectMemory」を参照してください。 パスワードをできるだけ少ない場所にMicrosoft Storeします。 パスワードが保存されている場所が多いほど、侵入者がパスワードを見つける可能性が高くなります。 Web ページや Web ベースのファイルにパスワードを保存しないでください。 Web ページまたは Web ベースのファイルにパスワードを格納すると、パスワードを簡単に侵害できます。

パスワードを暗号化して保存したら、セキュリティで保護された ACL を使用してファイルへのアクセスを制限します。 または、リムーバブル デバイスにパスワードと暗号化キーを格納することもできます。 スマート カードなどのリムーバブル メディアにパスワードと暗号化キーを格納すると、より安全なシステムを作成できます。 特定のセッションのパスワードを取得した後、カードを削除できるため、侵入者がアクセスできる可能性を取り除くことができます。