オンラインゲームの不正 についての研究 知能情報学専攻 ソフトウェア基礎論分野 南啓太 主な研究活動 前半 • オンラインゲームの不正に関する過去の研 究論文を読み、不正の分類と対策について の概要を学んだ。 後半 • 調査した結果をもとに、ある程度の不正を 防ぐアルゴリズムを実装した。 ~前半~先行研究の概要 • • • • 不正行為によって生じる問題 不正行為の動機 不正行為の定義 不正行為の分類と対策 不正行為によって生じる問題 不正行為が横行すると? (一例) →まともなプレイヤが楽しめなくなる。 →ゲームをやめる。 →運営会社の収入が減る。 Steven Davis (2003) 不正の動機 • どうしても勝ちたい。 • 他人を打ちのめしたい。 • お金がほしい。 Steve Webb(2003) • 金銭欲求に関しては、不正を行うのはプレイ ヤには限らない。開発者や運営者が不正を しかけるかもしれない。 不正の定義 「他のプレイヤに対し、アンフェアな有利さを得 る行為」 Steven Davis (2003) 「運営側が想定しないほどに他のプレイヤに対 してアドバンテージを得るため、あるいは運営 側が想定していないような目標を成し遂げる ために用いられるあらゆる行為」 Jeff Yan and Brian Randell(2005) 不正の分類 オンラインゲーム特有のものと、そうでない ものがある。 (ゲーム特有でないものの例) DoS攻撃 パスワード窃盗 のっとり →これらは扱わない。 以降の分類は J. Yan と B.Randell の2005年の 論文による。 1.‘Misplaced Trust’の利用 ・ サーバ型かP2P型に限らず、相手方のマシ ンにインストールされているクライアントソフト ウェアが改造されていない保障はどこにもな い。 ・ 暗号化されていなデータが覗かれたり、異常 な入力を送信してくるかもしれない。 2.共謀 ・ ブリッジや麻雀などで、二人以上のプレイヤ が互いに情報を教えあう。 ・ 二人対戦型ゲームで、互いに相手を倒しあ い、短時間で勝利数を稼ぐ。 ・ 一人が複数のアカウントを使うことも・・・。 →怪しいプレイヤを監視するぐらいしか解 決策はない。 3.ゲーム手続きの濫用 ・ 負けそうになったらエスケープし、敗北数の 上昇を抑える。 (特別な知識や技術やツールを使わずともで きてしまうものが多い) →ゲームの性質にもよるが、多くは。 4.仮想資産関係 ・ 仮想資産の取引に関する詐欺行為。 ・ ちなみに殆どの日本のゲームでは、現金取 引そのものが規約違反である模様。 5.人工知能の利用。 ・ チェスなどで用いられる。 ・ オンラインRPGの類では、人間が操作せず ともキャラクタのレベル上げをしてくれるような ツールが存在するようである。 6.インフラの改造 ・ 1に含まれるかもしれないが、仮にソフトウェ アそのものを改造できなくても、マシンそのも のを改造することは可能である。 ・ 3D画像を表示するためのデバイスドライバ を改造すれば、景色の障害となるべく配置さ れた壁を、透明色で表示することも可能であ る。(wall-hack) 7.タイミングに関する不正(1) Suppress-Correct cheat ・ アクションゲームのように タイミングが重要なゲーム においては、パフォーマン スのため、パケットが遅延 した場合に次の瞬間の存 在位置を先読みで推測し ている。(推測航法) → わざとパケットを遅延 させてこれを発生させるこ とにより、自分の軌道を相 手に読ませにくくすること ができる。 N. E. Baughman and B. N. Levine(2001) 7.タイミングに関する不正(2) Look-ahead cheat ・ Suppress Correct を避けるため、ゲームの状 態推移は(可能ならば)逐次停止型、つまり 全員の入力が揃ってから、次の状態へと移る のが理想的である。 →サーバ型ならともかく、P2P型のゲームで は上手く暗号を利用しないと、じゃんけんの 「後だし」のような行為ができてしまう。 N. E. Baughman and B. N. Levine(2001) 不正の分類(まとめ) 1.‘Misplaced Trust’を利用した不正。 2.共謀による不正。 3.ゲームの手続きを濫用した不正。 4.仮想資産に関する不正。 5.人工知能を利用した不正。 6.クライアントのインフラ改造による不正。 7.タイミングに関する不正。 Jeff Yan and Brian Randell(2005) 不正の対策 • 2(共謀)、4(仮想資産)、5(AI)については いくらプロトコルを頑張っても完全に防ぐこと は不可能である。2や5はそのゲームのベテ ランが監視すれば見破れないこともないよう だが、すべてのプレイヤを監視することは実 質的に不可能である。 • 3(手続きの濫用)は、ゲームを設計する時に 考えるべき問題である。 ~後半~ゲームの実装 ・ 昨年の研究論文で実装されたサーバレスな 軍人将棋のプログラムを参考に、そのアルゴ リズムの別のゲームでの実装に挑戦した。 ・ 主な問題点は、「互いの入力を相手に伝え ずに勝負結果を算出する」という点である。 ・ このアルゴリズムではElGamalという特殊な 暗号を利用する。 ElGamalの性質 • 二つの暗号鍵 a b を考える。 • 値xをaで暗号化することをEa(x) と表し、xの復 号をDa(x)で表す。 • このとき、 二重三重に暗号化された値でも、 鍵の組み合わせさえあっていれば、復号の順 に関係なく、元の値が得られる。 • つまり、Da(Eb(Ea(x)))=Eb(x)が成り立つ。 トランプ配布のプロトコル(1) • プレイヤA B Cに1枚のトランプを配る方法。 1.A,B,Cが、ElGamalの暗号鍵a,b,cを作る。 2.Aが52枚のカードすべてを鍵aで暗号化し、 シャッフルしてBに渡す。 3.Bは1枚選び、鍵bで暗号化し、Aに渡す。残り のデータをCに渡す。 4.Cも1枚を鍵cで暗号化し、さらに別の1枚を暗 号化せずにAに渡す。 トランプ配布のプロトコル(2) 5.Aは、BとCからデータEb(Ea(x))とEc(Ea(y))と Ea(z)の三つを受け取るので、それらすべてを 鍵aで復号し、 Da(Eb(Ea(x))) =Eb(x)と Da(Ec(Da(y)))=Ec(y)とDa(Ea(z))を得る。 6.Eb(x)をBに、Ec(y)をCに伝え、BとCはそれぞれ を復号し、自分のカードを得る。 7.Cは余った50枚のカードを暗号化し、山札とし て全員に伝える。 今後の課題 「思考時間」のような、ある程度の時間的な要 素を含んだゲームを安全に行うためのプロト コルを考えてみたい。
© Copyright 2024 ExpyDoc