マルチプレイヤーゲームでのDTLSプロトコルの使用


8

オンラインマルチプレーヤーゲームでDTLSプロトコルを使用することを検討しています。知らない人のために、それは本質的にTLSからUDPデータグラムへのポートです。

この論文によると、プロトコルの主要なオーバーヘッドはハンドシェイク段階にあり、テストでは950ミリ秒かかりました。ただし、この調査(リンクが壊れています。archive.orgのコピーを参照)は、実際の暗号化されたトランスポート中に、1ミリ秒未満の遅延があることが多いことを示しています。

これは、リアルタイムゲームの天の恵みのように聞こえます。これは、UDPを介して動作する、遅延が少なく安全性の高い暗号化チャネルです。ハンドシェイクフェーズの信頼性と保護を提供し、それから邪魔にならないようにします。それでも、RFC仕様が2006年に記述され、OpenSSLで実装されているにもかかわらず、ゲームで使用されることは聞いたことがありません。

なぜすべてのゲームがそれを使用しないのですか?


1
よくわかりません...よく使われている多くの言語ではサポートされていないのでしょうか?それのための良いと機能するライブラリはありますか?聞いたことがないからといって、node.jsでサポートされているとは思えないので、使用しません...
jcora

gamedev.stackexchange.com/faq#dontaskは、「なぜ、すべてのゲームでの使用はしない」心の問題に取得していません:それはのために便利ですかどうか、あなたの目的。
テトラッド、2011

1
@Tetrad根本的な問題は、それが素晴らしいように聞こえるがそれは広く使われていないということです。それが私の目的に役立つかどうかを判断する最後の謎です。
カイ

1
@テトラッド同意する。しかし、私が選択した図書館の歴史を知ることは私にとって重要です。もちろん、人気があれば、開発がはるかに簡単になります。
カイ

1
好奇心から、ゲームがそれを使わないことをどうやって知っていますか?
Trevor Powell

回答:


4

なぜすべてのゲームがそれを使用しないのですか?まず、ほとんどの人がこのプロトコルについて聞いたことがあるかどうか疑問です。ネットワークセキュリティはゲーム開発者の間ではあまり知られていませんが、いずれにしてもこれはかなりあいまいなものです。次に、すべてのゲームがUDPを使用するわけではありません。第三に、パフォーマンスが問題です。200バイトのパケットごとに1ミリ秒の遅延の5分の1は、システムがまったく何もしない場合でも、1秒間に5000パケットしか処理できないことを意味します(これはありそうもありません)。そして、書き込みパフォーマンスの比較があります-暗号化は復号化よりも高価になる可能性があります。


2

どのようなメリットがありますか?

難読化をマルチプレイヤーゲームのセキュリティ手段と誤解しないでください。いずれにしてもクライアントは通常のパラメーター(チートとも呼ばれます)を超えてゲーム状態を変更できないため、通常はトラフィックを傍受/注入できることは問題になりません。これを回避するための手段としてトラフィックを暗号化している場合は、おそらくネットコードを間違って記述しているため、シミュレーションのサーバーサイドをさらに移動する必要があります。

だからあなたの質問に答えて-この種のセキュリティは通常ゲームでは重要ではありません。

もしかしたら誤解してしまってすみません。ゲームこれ使用する必要があると思う理由を説明してください。次に、質問に対する回答を見つけることができます(これがそうでない場合)


5
このような暗号化は、WebサイトのTLSと同じようにプレーヤーに利益をもたらします。つまり、信頼できるゲームオペレーター以外の誰もあなたにリクエストを送信したり、あなたがしていることを覗き見したりすることはありません。たとえば、パケットを傍受してアイテムを取引させる人は誰もいません。あなたの名前でチャットログを偽装している人はいません。

1
重要なのは、ショップからアイテムを購入するなど、安全なトランザクションに使用できることです。それとは別に、パケットスニッフィングや中間者攻撃を防ぎます。ダム端末の代わりにはなりませんが、攻撃のベクトルを完全に排除する簡単で安価な方法のように見えます。
カイ

2
両方の有効なポイント。それを逃したことについての謝罪:Sしかし、質問は「すべてのゲーム」と言っており、上記の2つのケースがmmorpgsに限定されているように見える低遅延のリアルタイムゲームに焦点を当てていました。したがって、「すべてのゲーム」に対する答えとして、ほとんどの場合、それは必ずしも必要ではないと言います。(たとえば、上記の2つがクライシスのゲームで
役立つ

1
アイテムの購入やチャットの送信などの場合は、通常のHTTPS APIを使用してください。クレイジーな帯域幅の懸念がない場合を除いて、ゲーム全体がアクション重視の最適化されたUDPプロトコル上で実行される必要がある理由はまったくありません(とにかくDTLSがねじ込まれます。メッセージサイズを回避するためにパケットをパディングする必要があります)。ベースの攻撃)。
Sean Middleditch、2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.