SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
艦隊これくしょんの通信が
とてもじゃないけど見てられない
ぎんしゃり†
†冬アニメはのうりん推し
突然ですが
• 艦隊これくしょん、流行ってます。
• ただ、どうも設計がテキトーです。
• 特にセキュリティ面でびっくりする
ぐらいヤバいです。

2
どれぐらいヤバいの?
• 例えば会社や学校の回線でプレイす
ると、
• いつの間にか艦娘すべて解体される
かもしれないぐらいヤバいです。
– ネットワーク管理者がやる気になればごく簡
単にできます。
• もちろん不正アクセス禁止法で捕まりますが。

3
なんでヤバいの?
• データの整合性を確認してない。
• その上ユーザの確認が緩すぎる。

4
もっと具体的には?
• ちょっと長くなります。
• 要点だけここに書きますね。
– トークンが常に送信されっぱなし
– シグネチャが付けられていない
– HTTPSを使っていない

• こんな感じです。

5
通信を見てみよう

近代化改修の通信

ココが問題

6
もいっこ
ALL30建造

ずっとHTTP通信

さっきと同じ!

7
つまりどういうこと?
• 艦これの通信は常に丸見え状態!
• 他人がなりすますのに必要な情報を
毎回送信!
• なりすます手間すら全く不要!!
• こんな通信があっていいのか!

8
他人は何ができるの?
• プレイヤーが艦これで行っている全
てが他人から実行可能です
• 例えば
– 資源ALLで大型建造
– 艦娘を鍵外して解体
– その他通常の出撃や演習・遠征も

9
何ができないの?
• 通常できないことはできません
• 例えば
– 艦娘のデータを直接書き換える
– 資源を無限増殖させる
– HP減らないなどのチート
– …などはできません。

10
(運営は)どうすればいいの?
• 最善策
– とりあえず全部の通信をHTTPSにする
• 現状、通信が全部ハガキに書かれているよ
うなもので、誰からも見えてしまっていま
す。HTTPSは封筒みたいなもので、入れて
しまえば他人から読めなくなります。これ
さえすればまず安全です。

11
ちょっとコストが…
• せめて通信に乗せないトークンを
作って署名を生成しよう
– シークレットトークン。直接通信に出てこな
いので、これから生成した署名は他人が偽造
することはできません。
• 例えばフォームデータとトークンとナンス
を連結してハッシュを取る、とかで十分。
– シークレットトークンの共有はどうする?
• そこはHTTPS使ってもらわないと。
• 結局一箇所はHTTPS使わないとだめだよ。
12
何をムキになってんの
• 悪意のある人間が現れた場合、我々
プレイヤーのデータが壊されます。
• 明日になれば自分の艦娘が丸ごとい
ないかもしれない、そんな環境の
ゲームを放置できるはずがないで
しょう。

13
セキュリティっぽく言ってくれ
• リプレイ攻撃や中間者攻撃という言
葉を知らないんじゃないかと思うよ
うな実装です
• お願いだからこんな通信しないで下
さい

14

Mais conteúdo relacionado

Destaque

アルゴリズムのお勉強 ダイクストラ
アルゴリズムのお勉強 ダイクストラアルゴリズムのお勉強 ダイクストラ
アルゴリズムのお勉強 ダイクストラhixi365
 
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】Hiro H.
 
超音波通信という怪しい技術 In html5minutes 7 #tritonjs
超音波通信という怪しい技術 In html5minutes 7 #tritonjs超音波通信という怪しい技術 In html5minutes 7 #tritonjs
超音波通信という怪しい技術 In html5minutes 7 #tritonjsK Kinzal
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計隆行 神戸
 
iPhoneのBluetoothについての知見まとめ
iPhoneのBluetoothについての知見まとめiPhoneのBluetoothについての知見まとめ
iPhoneのBluetoothについての知見まとめShuichi Tsutsumi
 
名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗Hiro H.
 
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]hixi365
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画までShunji Umetani
 

Destaque (8)

アルゴリズムのお勉強 ダイクストラ
アルゴリズムのお勉強 ダイクストラアルゴリズムのお勉強 ダイクストラ
アルゴリズムのお勉強 ダイクストラ
 
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
 
超音波通信という怪しい技術 In html5minutes 7 #tritonjs
超音波通信という怪しい技術 In html5minutes 7 #tritonjs超音波通信という怪しい技術 In html5minutes 7 #tritonjs
超音波通信という怪しい技術 In html5minutes 7 #tritonjs
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
iPhoneのBluetoothについての知見まとめ
iPhoneのBluetoothについての知見まとめiPhoneのBluetoothについての知見まとめ
iPhoneのBluetoothについての知見まとめ
 
名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗名古屋市営地下鉄最小距離完乗
名古屋市営地下鉄最小距離完乗
 
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 

Kancolle