Я рассматриваю возможность использования протокола DTLS для моей многопользовательской онлайн-игры. Для тех, кто не знает, это по сути порт TLS для UDP-дейтаграмм.
Согласно этому документу , основные издержки протокола находятся в фазе рукопожатия, что в их тестах заняло 950 мс. Тем не менее, это исследование (неработающая ссылка; см. Копию на archive.org ) указывает на то, что во время фактического зашифрованного транспорта задержка часто составляет менее 1 миллисекунды.
Это звучит как находка для игр в реальном времени. Это защищенный зашифрованный канал с низкой задержкой, работающий по протоколу UDP. Он обеспечивает надежность и защиту на этапе рукопожатия, а затем уходит с дороги. Тем не менее, я никогда не слышал о том, чтобы он использовался в игре раньше, хотя спецификация RFC была написана в 2006 году и реализована в OpenSSL.
Почему не каждая игра использует это?
Ответы:
Почему не каждая игра использует это? Во-первых, я сомневаюсь, что большинство людей даже слышали об этом протоколе. Сетевая безопасность не очень известна среди разработчиков игр, и в любом случае это довольно неясный вариант. Во-вторых, не каждая игра использует UDP. В-третьих, производительность является проблемой. Пятая часть миллисекундной задержки на каждом 200-байтовом пакете, очевидно, означает, что вы можете обрабатывать только 5000 пакетов в секунду, даже если ваша система больше ничего не делает (что маловероятно). И есть сравнение производительности записи - шифрование может быть дороже, чем дешифрование.
источник
Каковы будут преимущества?
Не путайте запутывание с методом защиты в многопользовательских играх. Возможность перехватывать / вводить трафик, как правило, не является проблемой, поскольку клиент все равно не должен иметь возможности изменять игровое состояние сверх нормальных параметров (иначе, чит). Если вы шифруете трафик как способ избежать этого, вы, вероятно, неправильно пишете свой сетевой код, и вам нужно переместить большую часть сервера моделирования.
Итак ... в ответ на ваш вопрос - безопасность такого рода обычно не имеет значения в играх.
Извините, если я, возможно, неправильно понял. Может быть, вы могли бы обрисовать, почему вы думаете, что игры должны использовать это. Затем вы можете найти ответ на свой вопрос (если это не так)
источник