回答
- SRP -Secure Remote Password-これはDiffie-Hellmanに基づいています。これは、実際にパスワードやそれを導き出すために使用できる情報を実際に転送することなく、相互パスワードチェックを実行できるという考え方です。サーバー上でそれらをプレーンテキストで保存してはならないので、それはネットワーク上で安全ですが、パスワードをハッシュしてソルトする必要があります。
- SRPの利点は、SRPが完了すると、相互にネゴシエートされた暗号化キーが提供されることです。これは、転送されたデータを前提として、攻撃者が推測することはできませんでした。つまり、ユーザーが認証されると、対称暗号化アルゴリズム(AESなど)を自由に使用できます。
- その上に独自の信頼性のある/順序付けられた(接続指向の)実装でUDPを使用していると仮定します。UDPプレイロード全体を暗号化します-「パケットシーケンス番号」を含みます。システムが正しく設計されている場合、再生されたメッセージは自動的に拒否され、暗号化されているため、侵入者はパケットのシーケンス番号を変更できません(したがって、再生は可能ですが、自動的に無視されます)。
考え
認証は安全ですか?もちろんです。パスワードが問題になる場合は、セキュリティの面で妥協しないでください。したがって、あなたは間違いなく私の答えの最初の箇条書きを検討すべきです。
あなたのデータは安全ですか?ゲーム内購入/マイクロトランザクションの場合のみ-そして、HTTPSのように試して真実なものを使用しないでください。ゲームトラフィックを暗号化することは、次の理由から実行可能なソリューションではない可能性があります。
- それは完全なパラノイアです。
- (高価な)ハードウェア暗号化モジュールを購入できない限り、サーバーにCPU時間のオーバーヘッドが追加されます。
- 有線でデータに提供するセキュリティの程度は関係ありません。暗号化されて送信される直前に、誰かがクライアントプロセスを乗っ取り、メッセージを傍受する可能性があります。これは可能性だけでなく、パケットのインターセプトと比較してコードを挿入するのがかなり簡単なので、無限に可能です。あなたがチート防止のためにこれをしているなら、あなたはあなたの時間を完全にそして完全に無駄にしています。
- パスワードのセキュリティに関しては、残念ながら、ハイジャックされたシステムに対して合理的にできることは何もありません。クライアントは敵対的になっています。Blizzards WoWドングルはこれに対処するように設計されていますが、それがどれほど安全であるか(特に、プラグを差し込んだままにした場合)はわかりません。
チート防止のために暗号化している場合は、破棄してください。あなたは不足するでしょう-あなたがそうでない場合に備えてあなたに情報を提供しました。パケットの最初のバイトと残りが暗号化されているかどうかのインジケーターでパケットを選択的に暗号化できることを覚えておいてください。ただし、クレジットカードトランザクションなどを行う必要がある場合は、HTTPSを使用します。 HTTPSは専門家によって設計されています-あなたや私が設計したものとは異なります。
そうは言っても、Blizzard は実際に WoWトラフィックを暗号化しています。これが失敗した主な理由は、おそらく完全なアマチュアである誰かが、自社製の暗号化アルゴリズムを試してみることにしたためです。これは本当にうまくいきました。業界標準のアルゴリズムを使用している場合でも、誰かがコードをリバースエンジニアリングしてシミュレーションする可能性は十分にあります。クライアントがパスワードを入力しても、サポートされていないシステムが接続されていることはわかりません。