今更ながらXlink Kaiを解析した結果について3回に分けて説明していきます。
Kaiの通信は主に3つの系統に分かれます。
1つはチャットやアリーナの移動などのKaiのサーバーを介した通信です。
2つ目はPSP間の通信です。
3つ目はPM(Private Message)やり取りを行う通信です。
下の図はそれら3つの通信をまとめた図です。
今回は1つ目について主に説明していきます。
上の図で通信経路は矢印で表されています。
赤の矢印は1つ目に用いられる通信経路です。
ここで行われる通信は主にアリーナの情報を受け取り、アリーナ移動などのユーザー操作をサーバーに送信します。
ここで少し詳しく通信プロトコルについてみていきます。
KaiではTCPとUDPを使い分けています。
TCPとUDPがわからない人に簡単に説明すると、TCPが信頼性があり、UDPが信頼性がない通信ということだけわかればここではいいです。
すなわち、TCPではほぼ確実にパケットが相手に届くが、UDPでは届かない場合もあるということです。
各コンポーネント間の通信をみていきます。
KaiEngineとサーバー間の通信はTCP通信です。
User InterfaceとKaiEngine間の通信はTCPもUDPでもどちらの場合もあります。
しかし、これはコンピュータ内のローカルな通信です。
そのため、UDPでもほぼ信頼性があります。
よって、この1つ目の通信経路が信頼性がある経路であることがわかります。
それに対して、2つ目と3つ目の通信経路は信頼性がありません。
これについては次回以降に説明していきます。
1つ目の経路は信頼性があるといいましたが、実際チャットなどが相手に届かなかったことはないと思います。
先ほどUser InterfaceとKaiEngine間はTCP、UDPどちらもあり得ると書きました。
それは旧UIはUDP通信であり、Web UIと呼ばれるWebブラウザで操作を行うものはTCP通信なためです。
最後にセキュリティ関係の話を書いていきます。
2つ目、3つ目の通信ではサーバーを介さないkaiengine間の通信を行います。
これを行うには通信相手のIPアドレスが必要です。
この情報はサーバーからkaiengineに送られてきます。
kaiengineとサーバー間の通信は平文で行われてるため、この情報を簡単に手に入れられます。
すなわち、Xtagとその人の接続もとIPアドレスです。
IPアドレスがわかれば住んでいる大まかな地域などがわかります。
場合によっては細かい情報までわかるようです。
このようにXlink Kaiはあまりセキュリティ的にはよろしくないようです。
次回は2つ目のPSP間の通信について説明します。
0 件のコメント:
コメントを投稿