質問

クライアント<!> lt; <!> gt;サーバーのマルチプレイヤーゲームに取り組んでいます。認証は、すべてのゲームロジックなどと同じサーバーで行われます。これは、認証パスワード暗号化アルゴリズムが他のすべての必要なアクションを遅らせるため、計算時間がかかりすぎることを意味します。多くの人が同時にログオンすると、処理に多くの時間がかかる非常に強力な暗号化アルゴリズムを使用すると、顕著な遅延が発生します。

これがバランスを求めている理由です。依然として信頼性が高く、簡単にクラッキングできないが、同じサーバーで実行するのに十分な速さの暗号化アルゴリズムです。何をお勧めしますか?

役に立ちましたか?

解決

まず、認証を実行するには、<!> quot; encrypted <!> quot;は必要ありません。パスワード;暗号化されたパスワードを保存すると、ユーザーが危険にさらされるので、私は強くお勧めしません。ユーザーは無知であるため、銀行口座とゲームに同じパスワードを使用する可能性があります。そのパスワードを十分に管理して、安全を確保してください。

代わりに、不可逆的な<!> quot; hash <!> quot;を保存します。パスワードとランダムな<!> quot; salt <!> quot; StackOverflowでこれを行う方法について多くの質問があり、それらの回答のいくつかはほぼ正しいです。

独自の質問の一部は、認証プロセスのパフォーマンスに特に関心があるということです。良いパスワード保護スキームは実際には少し遅くなるように設計されているため、これは興味深い質問です。これは、<!> quot; offline <!> quot;内のパスワードを推測しようとする攻撃者を倒すことです。何十億ものパスワードをテストできる攻撃。アルゴリズムが遅いほど、試行回数は少なくなります。

パスワードを保護するために推奨するアルゴリズムは、実際にはPBKDF2と呼ばれるキー派生アルゴリズムです(PBKDF1も機能します)。これはPKCS#5で説明されています。これらのアルゴリズムの調整パラメーターの1つは、多数の反復です。サーバー上のアルゴリズムのプロファイルを作成し、パフォーマンス要件を満たす数が見つかるまで反復回数を調整できます。私のラップトップでも毎秒数千回の反復を実行できるので、おそらく2000年頃から始めてそこから作業することになります。

クライアントとサーバー間のすべてのトラフィックの暗号化について実際に話している場合は、AESを使用してください。競合他社のいくつかの暗号はおそらくより安全ですが、その速度のために選択されました。具体的には、SSL接続でAES暗号スイートを使用します。

安全な接続の費用は、セッションのセットアップ時に発生するキー合意(またはキー転送)です。継続的な暗号化(およびメッセージ整合性の計算)により、オーバーヘッドはほとんど追加されません。

他のヒント

実質的に適切に使用されたAESの強さは、おそらくあなたのニーズに合っています。 ハードウェアカードを購入して、AESを大幅に加速することもできます。

一般的な暗号アルゴリズムの速度比較

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top