0

データの暗号化について質問があります。私の質問は、データをどこで暗号化するのか、そしてその理由は何ですか?

登録用

現在、アプリケーション/ゲームのデータを暗号化し、データベースに追加または更新するためにデータをサーバーに送信しています。

サインインの場合

パスワードを含むユーザー名に関するデータを送信するようサーバーに依頼します。そこで、暗号化されたパスワードとユーザー名を受け取り、パスワードを復号化して、プレーヤーが入力したものと一致するかどうかを確認します。

私の懸念

私の懸念は、誰かが送信されたものを傍受し、パスワードとして入力したものと比較する可能性があることです。

私の解決策のアイデアは、サーバー上のデータも暗号化することですが、それはサーバー/データベースがハッキングされた場合にのみ役立ちます。

私の質問に本当に具体的なものは何も見つかりませんでした。データの暗号化方法に関する記事を見つけましたが、リスクやセキュリティホールについては何も見つかりませんでした。

また、さまざまな方法のリスクとともに、これに関する基準は何であるのか疑問に思っています。

編集:私はこれを考えすぎているのではないかと恐れていますが、尋ねる方が安全だと感じました。

セキュリティ上のリスクがあるかどうかわからないため、使用するデータの暗号化方法については説明していません。

4

2 に答える 2

0

データが非常に機密性の高いものである場合は、オンライン バックアップの方法 (Mozy、Carbonite など) を使用できます。パスワードや秘密鍵を紛失すると、データが失われます。

それほど機密でない場合は、すべてのアカウント データにマスター パスワードを使用し、パスワードをリセットできるようにします。サーバーでは、ランダムソルトとソルト+ハッシュパスワードのみを保存し、通信中はソルトのみを送信します。クライアントはそれをハッシュし、ハッシュされた値を比較するだけでよいため、生のパスワードが送信されることはありません。いずれにせよ、彼らがあなたのサーバーをハッキングした場合、毎回アプリを起動するために挿入する必要がない限り、マスターパスワードも取得できる可能性があります. データベースサーバーから物理的に分離されている場合、少なくとも暗号化があれば、それだけの違反やハードドライブの損失にさらされることはありません.

トラフィックのスニッフィングとハッシュの再利用が心配な場合 (誰かがアカウントをひどく欲しがっている場合に発生する可能性があります)、適切な解決策が 2 つあります。複数のサーバーに構築する場合、かなりの金額とセットアップ。それ以外の場合は、貧乏人の Diffie-Hellman を次のように作成できます。ソルトを使用して、別の 1 回限りのキーを送信します。クライアントは最初にソルトでパスワードをハッシュし、次にキーで結果をハッシュして送信します。サーバー側では、キーをメモリまたはデータベースに保持し、認証されるとすぐにキーを忘れます。

ただし、暗号化によってキーロガーやルートキットを防御することはできません。これには、新しいクライアントまたは IP ログオンでテキスト メッセージを介してユーザーに確認させるなど、他のセキュリティ モデルが必要です。

于 2012-10-24T21:15:01.783 に答える