Год назад в обновлении 1.19.1 Minecraft представила систему сообщений в чате и процедуру глобального бана . Это дополнение напомнило фанатам шумиху вокруг неоднозначного запуска Minecraft 1.9 , где боевая механика была радикально переработана, разделив сообщество.
Эта новая система, подробно описанная в статье « Абсолютное состояние отчетов о чате », представила криптографический метод подписи сообщений чата, тем самым гарантируя их целостность.
Почему этот спор?
В сегодняшнем мире онлайн-игр у многих есть система отчетов для улучшения игрового процесса, однако Minecraft выделяется своей сильной зависимостью от сторонних серверов, помимо официальных Mojang Realms. Многие фанаты увидели в этом обновлении попытку Mojang регулировать или даже контролировать часть экосистемы, которую они не создавали. К этому добавляется сложность оценки сообщения без контекста, особенно на серверах, где соперничество и стратегия являются обычным явлением.
В статье на Github также рассказывается, как управляются сеансы чата и как создаются и проверяются отчеты о чате, что добавляет дополнительный уровень технической сложности.
Проблемы общения
Mojang, к сожалению, зашифровал сообщение. Примечания к патчу были расплывчатыми, оставляя много места для интерпретации точных причин запрета. Эта двусмысленность подпитывала неуверенность и недоверие, поскольку сообщество уже было настороже и жаждало разъяснений, которых не последовало. Важно отметить, что сама структура сообщений и способ их обработки способствовали этой путанице.
Техническое отступление от того, что такое «сообщение»
Что именно представляет собой «сообщение» в этой системе? Хотите верьте, хотите нет, но это больше, чем просто текст, набранный игроком. Давайте посмотрим на JSON, который представляет один:
{
"index": 3.0,
"profileId": "bfa45411874a4ee0b3bd00c716059d95",
"sessionId": "79930ef9b869476db5c5d297884432f5",
"timestamp": "2022-10-30T17:32:44.160Z",
"salt": 5.1050580637282796E18,
"lastSeen": [ "RSA Signature 1", "RSA Signature 2", "RSA Signature 3" ],
"message": "How are you",
"signature": "RSA Signature"
}
Это почти идеальное отражение формата сообщений, используемого в реальных отчетах о чате. Давайте рассмотрим поля по одному:
index
это число, которое увеличивается на 1 каждый раз, когда игрок отправляет сообщение в том же сеансе чата.profileId
UUID игрока.sessionId
уникальный идентификатор сеанса чата. Он генерируется клиентом, когда игрок присоединяется к серверу. Мы рассмотрим сеансы чата более подробно в следующем разделе.timestamp
это время, когда сообщение было отправлено. Он генерируется клиентом.salt
это случайное число, сгенерированное клиентом. В более ранних версиях системы он использовался для предотвращения повторных атак, но это больше невозможно из-за текущей работы системы. Его текущая полезность остается неизвестной.lastSeen
представляет собой массив подписей RSA из 20 последних сообщений, которые видел игрок, включая его собственные.message
это текст сообщения.signature
является RSA-подписью сообщения. Он генерируется на основе всех данных в указанных выше полях с использованием закрытого ключа игрока.
Сообщение о чате в Minecraft Bedrock
Версия Minecraft Bedrock уже приветствовала эту систему в предварительном просмотре, и не обошлось без глюков. Забаненные игроки столкнулись с общими сообщениями, что сделало процесс апелляции практически невозможным. Некоторые даже сообщают о «заглушении тени» — ситуации, когда игрок не понимает, что его сообщения не видны другим.
Эти проблемы частично были связаны с тем, как система была разработана и реализована.
Текущее состояние системы сообщений о чате
Сегодня большинство общедоступных серверов решили не использовать эту систему отчетности, ограничив ее использование серверами Vanilla и Realms. По иронии судьбы, даже в этих контролируемых пространствах поступали сообщения о противоречивых запретах.
Также выяснилось, что некоторые Realms используют автоматическую фильтрацию в сочетании с системой отчетности. Это поднимает вопросы об эффективности системы и о том, как она воспринимается сообществом.
Технические подробности о том, как работают сеансы чата
Технические эксплойты и уязвимости
Нынешняя система не безупречна. Несмотря на официальную позицию Mojang о безошибочности системы, были выявлены эксплойты, которые могут обмануть или манипулировать отчетом. Технические форумы переполнены обсуждениями системных недостатков, свидетельствующих о продолжающемся существовании этих уязвимостей, несмотря на официальные опровержения.
Потенциальные эксплойты
Несмотря на заверения Mojang в надежности своей системы, было обнаружено несколько эксплойтов. Некоторые из них позволяют злоумышленникам обходить механизмы отчетности, что делает попытки регулирования неэффективными. В статье «Абсолютное состояние отчетов о чате» подробно описаны эти уязвимости, подчеркивая необходимость для Mojang постоянно усиливать безопасность перед лицом все более находчивых пользователей.
Злонамеренное сотрудничество
Одной из наиболее тревожных уязвимостей является способность вредоносного сервера сотрудничать с вредоносными клиентами. Это сотрудничество может позволить манипулировать или обманывать систему отчетности, что делает попытки регулирования неэффективными. Этот недостаток не только подвергает игроков ненадлежащему поведению, но и ставит под сомнение надежность системы в целом, особенно если учесть зависимость Minecraft от сторонних серверов.
Моджанг Ответы
Столкнувшись с этими проблемами, Mojang не остался в бездействии. Компания попыталась решить выявленные проблемы и усилить безопасность своей системы. Однако, несмотря на эти усилия, сохранение некоторых уязвимостей говорит о том, что путь к совершенно безопасной системе отчетности еще долог. Для Mojang важно продолжать тесно сотрудничать с сообществом, чтобы выявлять и исправлять эти недостатки, обеспечивая безопасный игровой процесс для всех.
Спустя год после запуска оценка системы Chat Reporting неоднозначна. Его реализации, хотя и амбициозной, препятствуют разногласия, технические недостатки и ограниченное внедрение. Игрокам рекомендуется быть осторожными, особенно в мирах Realms и LAN. В истории Minecraft эта система войдет в историю как благонамеренная, но плохо реализованная инициатива.