- 166 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 00:19:29 ]
- 皆さん如何されているかアイデアを聞かせてほしいんですが
たとえば、不特定多数が使用するクライアント・サーバ型のソフト(MMO等)を作るとして、 データのやり取りはUDPで行うとします。 不正なデータを送られたり、受信したデータから不正な処理をされないためには データを暗号化して通信する必要がありますが、そのキーを何処に隠すとよいと思いますか? クライアント側で暗号化したデータをサーバで復号する、またその逆の場合、 クライアントはサーバと通信する為に、鍵を持っている必要がありますが コード上やリソース上に持たせてしまうと、バイナリエディタなどからバレてしまう可能性があります。 ここで、脅威の対象を仮に ・28歳 男性 独身 ・趣味はネトゲ(botツール常習者) ・プログラミングの知識は大学で習った程度、逆アセンブルなどは出来ない ・バイナリエディタなどでパラメータを触った経験はあり とします。この人にクラックされない仕組みを作りたいです。 色々考えましたが堂々巡りです。 案1)通信確立用のキーをクライアントのコード上、またはリソース上に持たせ、 通信確立はそのキーで行う。その後はサーバで新たなキーを発行する。 →そもそも通信確立用のキーがクラックされれば全く意味が無い 案2)時刻をパラメータに定期的にキーを生成する。 →クライアント・サーバで完全に時刻を同期する必要あり。実現不可能 案3)暗号化部分をdll化し、さらにそのdllを暗号化し、コード上で復号して呼び出す。 dllを暗号化したキーはリソース化し、リンク →トレースされたら意味なし よいアイデアお待ちしてます。
|

|