web-dev-qa-db-ja.com

パスワードの導出と暗号化のどちらを選択するのですか?

最新のパスワードマネージャーのすべての可能な機能を備えたパスワードマネージャーを使用するとします。マスターパスワードから派生したキーによる暗号化、自動入力、クラウドまたはローカルストレージ、ブラウザー拡張機能、Webおよびローカルアプリケーション、ランダムパスワードジェネレーター、パスワード自動変更、など.

ここで、次の2つのオプションから選択できると仮定します。

  • ランダムに生成された強力なパスワードを暗号化されたボールトに直接保存する( KeePass のように、ボールトが暗号化されないままでいることができる期間を選択する機能、またはマスターパスワードを再確認するタイミング:使用する前など) 。)
  • マスターパスワードから強力なパスワードを取得するために使用されるパターンのみを保存する( LessPass のように、パスワードの導出時期を選択できます:復号化の直後、使用する前など)

最後に、(暗号化キーと強力なパスワードの)導出関数で使用されるラウンド数が、ほとんどのデバイスで導出に約1秒かかるのに十分な高さであると想定します。

これらの2つから選択する方法は?
彼らの長所と短所は何ですか?
(暗号化と使いやすさの両方に関して)どちらが最も安全なのですか?
この選択を行うために考慮すべき他のパラメーターはありますか(機能、クローズドソースまたはオープンソースなど)?

3
CidTori

私は長い間、確定的なパスワードマネージャー(pwdhash、いわゆるパスワード派生)を使用しており、確定的なパスワードマネージャーを使用するようだれにもアドバイスしていません。私はこれについて ブログ投稿 も書きましたが、私の主な問題をここに要約します:

  • パスワードを取得するアカウントを特定するのは困難です。 wikipedia.orgとwiktionary.org、またはlive.comとMicrosoft.comに同じパスワードを使用したい場合があります。ドメイン名に基づいて使用するアカウントを決定することは非常に困難です。
  • パスワード要件に準拠するのは困難です。 20文字のパスワードが許可されていないサイトや、20文字のパスワードが必要なサイトもあります。あなたの派生関数はそれをどのように処理しますか?
  • 導出関数を変更するのは難しいです。導出関数を使用すると、すべてのパスワードをこの関数に依存します。すべてのサイトにログインできなくなるため、複雑さを増したり、派生パスワードの長さを増やしたりすることはできません。
  • lesspass.compwdhash.com などのサイトを使用してパスワードを取得する場合は、そのサイトにマスターパスワードを毎回提供し、そのサイトがアカウントパスワードを生成します。これは巨大な単一障害点を作り出します。そのサイトが侵害された場合、すべてのアカウントが侵害されます。

主な「利点」は、確定的パスワードマネージャが状態を保持しないことです。ただし、Dropbox内のファイルまたはクラウドサービスを介して、インターネット上のどこかに状態を保存することがますます簡単になります。

7
Sjoerd

派生したパスワード機能ベースのキーマネージャーを使用することには、実際的な利点はありません。

ボールトがAESおよびPBKDF2を正しく使用してパスワードデータベースを保護することを信頼できない場合は、それを信頼して導出アルゴリズムのパラメーターを保護することもできません。マスターパスワードや派生アルゴリズムの格納にセキュリティ上の違いはありません(もちろん、正しく設計されたキーマネージャーを想定しています)。

さまざまなサイトやアプリケーションには、パスワードの長さ、特殊文字の要件など、相互に異なる要件があるため、各サイトには追加の情報を保存する必要があります。秘密のデータではないかもしれませんが、両方のシステムで管理する必要があります。

パスワードローテーションポリシーはさまざまであり、問​​題になる可能性があります(または、少なくともサイトごとに保存されているさらに多くの情報が必要です)。複数のクライアント(ラップトップや携帯電話など)を使用している場合でも、余分なデータを同期する必要があります。保存したパスワードと同じように。

派生のみのシステムでは、割り当てられたパスワードを保存できません。エンタープライズパスワードマネージャーなどの外部システムを扱う場合、外部マネージャーが新しいパスワードのローテーションと生成を担当する場合があります。

導出関数について述べたキーごとの遅延はあまり意味がありません。パスワードマネージャーはPBKDF2のようなアルゴリズムを使用して、マスターキーの最初の復号化時にマスターパスワードが推測されるのを防ぎます。その後に解読される各パスワードはマイクロ秒かかります。同じ遅延が従来のパスワードマネージャーに追加される可能性があることに注意してください。ただし、攻撃者に影響を与えない場合に、システムの速度を落としてもメリットはありません。

派生関数は記憶できるため、人間に人気があります。グーグルのパスワードはCid123であることが頭の中で簡単にわかります!各サイトの文字列。携帯電話の64GB +フラッシュチップとコンピューターのテラバイトのストレージのこの時代では、何千ものWebサイトのパスワードに必要な数十メガバイトのストレージは、実際的な問題ではありません。また、クラウドベースのストレージとユビキタスなセルラーデータカバレッジにより、複数のデバイス間でパスワードを共有することも問題になりません。

1
John Deters