2011-08-12 14 views
1

Googleのサーバーでは、APIを使用して外部アカウントにログインするいくつかの定期的なジョブがあります。現在、これらのパスワードはハードコードされています(クリアされています)。私たちはそれらをデータベースに保存しておき、パスワードを暗号化したいと思っていますが、外部サイトにログインするためにそれらを復号化できる必要があります。暗号化/復号化のために別のパスワードをクリアに保存せずにこれらのパスワードを安全に保存する方法はありますか? (これは一般的な問題のようですが、私はそれを分類するためのセキュリティ用語で十分に精通していません)。ありがとう!Java - 外部サイトのパスワードの暗号化/復号化

答えて

3

達成しようとしているのは、this questionと非常に似ています。理想的には、これらの秘密をデータベースに保存したくない場合は、可能な限りアプリケーションから遠ざけておきたいと考えています。どうして?この方法では、アプリケーション自体を攻撃面として排除することができ、これらのパスワードにアクセスすることはずっと難しくなります。

暗号鍵をパスワードで保護したい場合は、つまり、パスワードをどこかに保存する必要があります。そのパスワードをもう一度暗号化する必要がありますか?これは悪循環につながります。これは私が答えのこのセクションで意味していたものです:

...私たちはそのリソースをもたらします。キーストアとパスワードでは、本当に鶏卵問題です。本当にきれいな解決策は、アプリケーション/データベースが起動するたびに手動でパスワードを入力することです。しかし、これは本当の問題になる傾向があります(真夜中にクラッシュすると思います)。そのため、パスワードはファイルシステム上のテキストファイルに保存される傾向があります。いくつかのガイドラインに従っている限り、受け入れられます:...

何かを暗号化すると、秘密のリソースキーがあります。それを秘密にする理想的な方法は、見積もりに記載されているように、それを暗記して手動で入力することで、その痕跡が残っていないようにすることです。これはしばしば管理できないので、暗記するより安全ではないものの、シークレットをプレーンテキストに保存するよりも安全なもので暮らす必要があります。

シークレットパスワードをファイルに保存する場合のケースと同じ推奨事項が適用されます。代わりに、Windows Data ProtectionなどのOS Secure Storage機能を活用しようとすることもできます。

+0

ありがとう - その投稿は私の質問に直接答えました。いつものように、セキュリティと利便性の間にはトレードオフがあります。 –

+0

あなたの問題を解決した回答も受け入れてください。それはもちろん、私のものである必要はありません:) – emboss

+0

答えをありがとう! –

関連する問題