2016-08-21 28 views
0

データベースに公開鍵と秘密鍵を安全に保存したい。公開鍵/秘密鍵を安全にデータベースに格納する

私の質問は、秘密鍵を安全にデータベースに格納する方法です。 (公開鍵は、とにかく安全である必要はありません)。

私は現在2つの方法があります。

  • 秘密鍵にパスフレーズ(すなわち、ユーザーのマスターパスワード)を追加し、データベース内の文字列
  • 暗号化対称アルゴリズムを使用して、秘密鍵としてそれを保存し、データベース
  • に文字列としてそれを保存します

これらの方法で十分ですか?

どちらが優れているのでしょうか、それとも同じですか?

もっと良い方法がありますか?

更新 なぜ私がこれをやりたいのか混乱するかもしれません。私のユースケースは、チームベースのパスワード管理システムです。パブリックキーはパスワード(チーム内の各ユーザーに1つ)を暗号化するために使用され、パスフェーズのプライベートキーはパスワードの解読に使用されます。

+1

対称暗号化の仕方が第1のものと異なるだけです。それらは本質的に同等ですが、第2のものではあなた自身で対称暗号化アルゴリズムを選択することができます。どちらにも長所と短所があります。要件を提示していないので、これは意見に基づいています。 –

+0

私の唯一の要件は、秘密鍵が安全に保存されていることです(つまり、ハッカーがそれを保持していれば、復号化できません)。あなたの言っていることから、それらは本質的に同じものですが、2番目の方法は私にもっと制御を与えます。私は正しい?より良い方法はありますか?また、どのような要件を知りたいですか? –

+0

はい、しかし、第2の方法にも欠点があります。なぜなら、誰も、暗号化者さえも、暗号化を正しく実装することができないからです。エラーの余地はあまりありませんが、潜在的にそれを危険にさらす可能性があります。私が言ったように、これは意見に基づいています。 –

答えて

1

最初のオプションは、既存のものを正しく使用するよりも、独自の対称暗号化実装を混乱させる方が簡単なので、おそらく良いでしょう。秘密鍵のパスフレーズは、通常、何らかの形式の対称暗号化を意味します。

PS。私はなぜここでプライベート/パブリックキーを使用しているのか分かりません。誰が鍵をアップロードしたかを証明するためのものなら - 素晴らしい。それが暗号化のためのものなら、代わりに保存されたパスワードの対称暗号化を使用するだけではどうですか?それを読む特権を持つすべての人が秘密鍵へのパスワードを知っていれば、大きな違いはありません。あなたが得ていると思われる唯一のことは、誰もが知っているパスフレーズを変更することなくキーを循環させることができることです。

+0

私の推測では、民間/公開鍵は、非対称暗号と非対称暗号とRSAが本当に知っている話題語であることを理解していない/不適切である場合に頻繁に使用されます。 – zaph

+0

秘密鍵と公開鍵は非常に重要です私のユースケースは、私が調査した多くのチームのパスワード管理システムでも使用されています –

+0

Symetric暗号化は、他のユーザーと共有したいので十分ではありません。 http://security.stackexchange.com/questions/134465/how-to-securely-store-passwords-for-an-online-team-based-password-manager/134492#134492 –

関連する問題