web-dev-qa-db-ja.com

プライベートキーをクラウドに保存することの何が問題になっていますか?

これは馬鹿げた質問のように聞こえますが、何が問題なのですか?すべてのプライベートデータがPBE AES256を使用して(クライアントによって)暗号化されているとすると、このスキームはローカルコンピューターにキーを保存するよりも脆弱ですか?

長所:

  • すべてのデバイス(スマートフォン、ラップトップ、カメラ?)は、どこにでもコピーして複数のデバイスを保護することなく、同じキーにアクセスできます
  • キーサーバーがセキュリティを知っている誰かによってホストされていると仮定すると、データはスマートフォンやラップトップよりも安全である必要があります

短所:

  • 1回の攻撃が成功すると、何百万もの(暗号化された)キーが一度にダウンする可能性があります(リモート攻撃、悪意のある従業員など)

私の現在の状況についての理解は、ローカルコンピューター上で秘密鍵を暗号化してパスフレーズ(* .JKS、*。BKS、secring.gpgなど)で保護していることです。攻撃者は、自分の制御下にあるサーバーにすべての秘密鍵ファイルをアップロードするトロイの木馬を作成する可能性があります。これは最近BitCoinウォレットファイルで発生し始めているため、キーストアで発生する可能性があります。これにより、攻撃者は多くのキーストアを一度にネットワーク化できます。これは、キーサーバーへの攻撃が成功したのと同じであり、私が知る限り、ほぼ同じ複雑さです。また、現在のキーストアファイルは、ユーザーのパスフレーズを中心に展開されるため、AES256が提供する以上の攻撃者からの保護を提供していません。

ここでの本当の弱点はユーザーのパスフレーズであり、必ずしもキーが格納されている場所ではないように思えます。私が間違っている?これは理想的な状況ではありませんが、現在の状況と比較しています。

19
senecaso

「パスワードベースの暗号化」のようにPBEで暗号化されたものはすべて、オフライン辞書攻撃の対象になる可能性があります(つまり、攻撃者は潜在的なパスワードを試行します) )。これは心配ですない限り非常に強力なパスワードを持っています定期的に入力してください(どこかに書き留めておくと、それほど強力ではありません)。それほど強力ではないパスワードの欠点は、 bcrypt などの重い鍵導出関数を使用することで多少軽減できます。

「十分に強い」とは、「128ビット以上のエントロピーを持っている」ことを意味します。つまり、「使用したパスワード生成スキームによって、少なくとも2128 他の個別のパスワード」-8や10文字ではなく、20の完全にランダムな文字、またはランダムに選択された10の「一般的な単語」のリストについて話しているのではありません。状況:AES-128はすでに問題ありません(つまり、弱点はAESではなくパスワードになります)。

十分に強力なパスワードを持っている場合は、プライベートキーを含め、このパスワードで比較的暗号化された任意の機密データをクラウドに保存できます。ファイルを失わないためにクラウドマネージャーを信頼する必要がありますが、データはクラウドで平均して、通りを歩いているときに振り回す高価な携帯電話の内臓よりも安全です(携帯電話は盗まれることを忘れないでください)車よりも頻繁に)。もちろん、クラウドマネージャーがあなたに恨みを持っていない限り。

14
Thomas Pornin

結局、それはすべて信頼に帰着します。 @Thomasが言うように、十分に暗号化すると、クラウドプロバイダーを信頼する必要がなくなりますが、クラウドプロバイダーがデータを安全に暗号化することを信頼している場合は、はるかに心配になります。可能だとは思わないからではなく、実装が失敗する可能性のあるレイヤーが非常に多いためです。攻撃者はこれらすべてを破ろうとする可能性があり、実際にはそのクラウドプロバイダーによってホストされている他の何かを標的にしているときにキーとデータにアクセスできる可能性があるため、危険にさらされる可能性が高くなります。

アクセスできるデバイスにのみ秘密キーを保存すると、リスクのレベルを制御できます(予防策を講じることにより)。しかし、攻撃者が私を追いかけようとすることはほとんどないので、ターゲットははるかに小さくなります。

結局、これは実際には技術的な質問ではなく、はるかにリスクと信頼の問題です。リスクプロファイルが高まっているにもかかわらず、クラウドでの実装を信頼して保護していますか?

6
Rory Alsop