web-dev-qa-db-ja.com

パスワードの保存場所の選択は否認防止にどのように影響しますか? (または秘密鍵ストレージ)

長年にわたってエンドユーザーの秘密を保存するために、パスワードマネージャーと多数のツールが作成されてきました。この急増により、セキュリティを改善するためのぼんやりとした機会が混在しています。

要するに、これは以下のグループに分けられると思います。 (代替のシナリオが必要)

  • ローカル認証(暗黙のネットワーク権限なし)(半譲渡可能なシークレット)
  • ネットワーク認証(暗黙のネットワーク権限あり)(半譲渡可能なシークレット)
  • 上記のいずれかのシナリオで使用するためのハードウェア認証(譲渡不可の秘密)

私は、認証資格情報を保存できる場所、および各アプローチのリスク/脅威を示すリスク図を作成しようとしています。

目標は、アプリケーション開発者またはセキュリティコンサルタントに、エンドユーザーが秘密キーを格納し、ハッシュされていないパスワードを否認防止の目的で格納する場所についてのガイドを提供することです。

質問

存在するローカル認証パターンと、否認防止を保証する上での相対的な強みは何ですか?

3

これは、認証方法の概要です。誰かがこのマップを完成させ、否認防止のために適切にスコープを設定することを願っています。

私のセキュリティ知識のほとんどはiOSに基づいていますが、他のプラットフォームでの入力も歓迎します。

ローカルのみの認証

主な違いは、リモートユーザーがすべての正しい情報を持っている場合でも、リモート攻撃(SSH/RDP/HTTP 401 Unauthorized)は不可能であることです。ここでの利点は、人がデバイスを物理的に制御している場合、デバイス自体が「持っているもの」として機能し、それほど厳格でないセキュリティルールが適用される可能性があることです。

さらに、この認証資格情報は、認証トークンに直接変換できない場合があります。

秘密鍵の素材がハードウェアで保護されているかどうか(次のセクション)によっては、デバイスの安全なストレージにアクセスすることで特権を昇格させる場合があります。このセキュリティ機能を利用するネットワーク認証は確認していないため、この違いに注目する必要があるかどうかはわかりません。

Windows

  • 顔認識としてのWindows Hello
  • ピンエントリとしてのWindows Hello
  • 画像アンロックとしてのWindows Hello
  • サムプリントとしてのWindows Hello

Android

  • パターンのロック解除
  • ピンロック解除
  • 拇印

iOS

  • 拇印
  • ピンコード

Apple Watch

  • ピンコード
  • 手首検出

ハードウェア保護

これは、秘密鍵を転送できない場所、および/または検証アルゴリズムがハードウェアによって保護される場所です。秘密鍵の抽出は、侵入の物理的な兆候を提供する可能性があり、認証デバイス自体を操作不能にする危険を冒す可能性があります。

これらのモードは、ネットワーク全体で使用できません。

これらの認証モードは、以前のローカル認証方法に基づいています。

ハードウェア保護パート2

RDPでは別のマシンを介してリモートマシンを認証できるため、スマートカードの分類方法がわかりません。前のセクションで理論的に使用できる他の「プロキシ」ソリューションとは対照的に、スマートカードのプライベート「プロキシ」がどのように機能するかをさらに分析する必要があります

  • スマートカード

OS経由で保護されたソフトウェア

これは、OSがセキュリティ対策を提供する場所です。ジェイルブレイクされたデバイスまたはルート化されたデバイスは、他の方法では利用可能なセキュリティ保証を危険にさらす可能性があります。

これらは、信頼できるエコシステムの外で条件付きで転送できる可能性があります(他のものより簡単です)。

iOS

  • アプリケーションごとのプライベートストレージ
  • アプリケーショングループ
  • プライベートストレージのiCloud同期
  • SMSメッセージ(iMessageにはサードパーティのフックはありません。Androidにはあります)
  • ブラウザーベースの同一生成元ポリシー(ベアラートークン、Cookie、SOP、HTMLローカルストレージを覚えておいてください)
  • SafariアプリからWebサイトへのiCloud経由の同期パスワード

Windows

  • [〜#〜] tpm [〜#〜] ベースのデバイス?
  • LiveID/Passport認証
  • ブラウザベースの同一生成元ポリシー
  • ブラウザベースのローカルパスワードキャッシング(Chrome、IE、FireFox)

クローム

  • Passwords.google.comへのChromeパスワード同期 '

Android

  • SMSパスワード/ワンタイムコードがサードパーティのアプリケーションによって傍受される可能性がある

ソフトウェア保護/パスワードマネージャー

多くの場合、パスワードマネージャーは、これらの転送可能/ベアラートークンを「探すための追加の場所」を提供し、ハードウェアの保護された秘密が提供するのと同じレベルの整合性を提供せず、OSレベルの保証もありません。

  • Google Authenticator(キーをどこかに保持する)などのソフトウェアのHOTP/TOTP、およびFacebook認証コード(アプリがキーを格納する場所、およびデバイスがジェイルブレイク/ルート化されているかどうかに依存)
  • Lastpass、Avast、1Passwordは、DropBoxにパスワードデータベースを保存できます。これにより、サードパーティのDropboxアプリケーションがファイルにアクセスし、認証情報をブルートフォースで取得することが非常に簡単になります。 (サードパーティのクライアントによるOAuthトークンは、スコープではなく、フルアクセスを要求することがよくあります)

バックアップ

バックアップは、侵入先のコンピューターまたは他のデバイスで弱く暗号化され、すべてのベアラートークンを取得するために使用されるか、「ローカルのみ」ではない可能性があります

1