cheat-final

オンラインゲームの不正
についての研究
知能情報学専攻
ソフトウェア基礎論分野
南啓太
主な研究活動
前半
• オンラインゲームの不正に関する過去の研
究論文を読み、不正の分類と対策について
の概要を学んだ。
後半
• 調査した結果をもとに、ある程度の不正を
防ぐアルゴリズムを実装した。
~前半~先行研究の概要
•
•
•
•
不正行為によって生じる問題
不正行為の動機
不正行為の定義
不正行為の分類と対策
不正行為によって生じる問題
不正行為が横行すると?
(一例)
→まともなプレイヤが楽しめなくなる。
→ゲームをやめる。
→運営会社の収入が減る。
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枚のカードを暗号化し、山札とし
て全員に伝える。
今後の課題
「思考時間」のような、ある程度の時間的な要
素を含んだゲームを安全に行うためのプロト
コルを考えてみたい。