Перейти к содержимому
Zone of Games Forum
0wn3df1x

TPM и Secure Boot: Как мы дошли до жизни такой. История гонки вооружений

Рекомендованные сообщения

49 минут назад, mahaleksmos сказал:

Так там вроде уже читеры были)))  в бетке. 

300k на минуточку. Может конечно в новости очепятка, хз    или я что-то не так прочёл

Поделиться сообщением


Ссылка на сообщение
17 часов назад, mahaleksmos сказал:

Так там вроде уже читеры были)))  в бетке. 

 

16 часов назад, piton4 сказал:

300k на минуточку. Может конечно в новости очепятка, хз    или я что-то не так прочёл

Оказалось что эта МЕГАзащита обходится отключение интернета в момент  проверки….

  • Хаха (+1) 4

Поделиться сообщением


Ссылка на сообщение
40 минут назад, edifiei сказал:

Оказалось что эта МЕГАзащита обходится отключение интернета в момент  проверки….

Это как раз то, о чём я писал между 4 и 5 главами.

Аппаратный корень доверия - это лишь полдела. Можно построить несокрушимую крепость из кремния, с башнями из Secure Boot и стражниками TPM, но вся эта мощь абсолютно бесполезна, если нет надёжного способа проверить пропуск на входе. А способ этот - удалённая аттестация. Без неё это равносильно навешиванию сложного и дорогого замка на картонную дверь.

Теория

  1. Стены и башни (Secure Boot & TPM): Они на месте. Secure Boot гарантирует, что при загрузке системы в неё не проник вражеский лазутчик (неподписанный драйвер). TPM (через Measured Boot) скрупулезно записывает в свой защищенный журнал (PCR-регистры) каждый шаг загрузки, создавая уникальный "отпечаток" состояния системы. Оборудование - тот самый "неизменяемый арбитр" - свою работу выполняет безукоризненно.
  2. Протокол проверки (Remote Attestation): Когда игрок запускает игру, привратник у ворот (лаунчер игры) должен провести строгую проверку. Он связывается со столицей и получает оттуда секретный пароль на сегодня (nonce). Затем он просит внутреннего нотариуса (TPM) поставить на отчет о состоянии крепости (значения PCR) свою уникальную печать (Attestation Key), приложив к нему и сегодняшний пароль. Этот запечатанный и заверенный отчет (quote) отправляется в столицу. Там его сверяют с эталоном. Если отчет подлинный и состояние крепости "чистое" - ворота открываются.

Эта система теоретически безупречна. Она не доверяет ничему, что может быть подделано программно, и опирается только на аппаратное доказательство. Где же провал?

Практика
Провал кроется не в крепости и не в протоколе. Он кроется в инструкции, выданной привратнику на воротах. В программной логике лаунчера игры.

Разработчики античита допустили фундаментальную, классическую ошибку в проектировании систем безопасности, реализовав так называемый принцип "fail-open" (отказ в сторону открытия) вместо единственно верного "fail-closed" (отказ в сторону закрытия).

Что происходит в итоге:

  1. Начало проверки: Игрок запускает Battlefield 6. Лаунчер (привратник) начинает процедуру аттестации и отправляет на сервер ЕА (в столицу) запрос на получение nonce (секретного пароля).
  2. Обрыв связи: В этот самый момент игрок выдергивает сетевой кабель. Связь со столицей прерывается.
  3. Критическая ошибка логики: Лаунчер не получает ответа от сервера. Вместо того чтобы следовать принципу "fail-closed" ("Нет связи со столицей? Значит, проверка не пройдена, ворота остаются закрытыми до восстановления связи и успешной верификации!"), программа выполняет катастрофическую инструкцию "fail-open". В коде, вероятно, написано что-то вроде:
    try {
        // Попытаться провести удаленную аттестацию
        performRemoteAttestation();
    } catch (NetworkTimeoutException e) {
        // Ой, сервер недоступен. Наверное, у него проблемы.
        // Не будем мешать игроку, пропустим его.
        // Ведь главное — чтобы он мог играть!
        bypassSecurityCheck();
    }
  4. Обход защиты: Проверка безопасности просто пропускается. Игра считает, что все в порядке, и продолжает загрузку, не получив ни подтверждения, ни опровержения чистоты системы.
  5. Восстановление связи: Как только игра прошла этот этап и загрузила главное меню, игрок снова подключает интернет. Теперь игра может свободно общаться с серверами для подбора матчей, и никто уже не вспомнит о той маленькой сетевой ошибке на старте.

Вся архитектура безопасности, спустившаяся до уровня кремния, была повержена одной строчкой кода в блоке catch. Разработчики построили неприступную крепость, но научили привратника на воротах впадать в панику и открывать их нараспашку, если у него на мгновение пропадает телефонная связь. 

Поделиться сообщением


Ссылка на сообщение
20 часов назад, piton4 сказал:

300k на минуточку. Может конечно в новости очепятка, хз    или я что-то не так прочёл

вот вам 300к читеров, на правах наброса
word-image-536933-1-e1754679523397.jpeg

и Античит Battlefield 6 потребовал от игроков удалить с компьютера Valorant

3 часа назад, 0wn3df1x сказал:

// Ой, сервер недоступен. Наверное, у него проблемы. // Не будем мешать игроку, пропустим его. // Ведь главное — чтобы он мог играть!

для Beta верное решение, всё правильно сделали.

3 часа назад, 0wn3df1x сказал:

Аппаратный корень доверия - это лишь полдела. Можно построить несокрушимую крепость из кремния, с башнями из Secure Boot и стражниками TPM, но вся эта мощь абсолютно бесполезна, если нет надёжного способа проверить пропуск на входе.

3 часа назад, 0wn3df1x сказал:

Вся архитектура безопасности, спустившаяся до уровня кремния, была повержена одной строчкой кода в блоке catch. Разработчики построили неприступную крепость, но научили привратника на воротах впадать в панику и открывать их нараспашку, если у него на мгновение пропадает телефонная связь. 

вот только откуда нам знать что они сделали это не специально? Специально открыли двери для всех желающих, зная что среди них будут те самые и… заранее пометили их, а часть заблокировали. Да и проверили на практике ложные срабатывания, чтобы исключить подобное на релизе. Кто их знает.

Что если задача изначально была не блокировать читеров, а пометить их и изучить их инструменты.

Изменено пользователем PermResident
дополнение

Поделиться сообщением


Ссылка на сообщение
5 часов назад, PermResident сказал:

 

Что если задача изначально была не блокировать читеров, а пометить их и изучить их инструменты.

Так вроде для этот его в 2042 добавляли.

Я думаю, тут просто дали с подливой.

Поделиться сообщением


Ссылка на сообщение

В итоге после всех нововведений количество читеров уменьшилось? 

Мне кажется что нет. 

В 11.08.2025 в 18:10, PermResident сказал:

вот только откуда нам знать что они сделали это не специально? Специально открыли двери для всех желающих, зная что среди них будут те самые и… заранее пометили их, а часть заблокировали. Да и проверили на практике ложные срабатывания, чтобы исключить подобное на релизе. Кто их знает.

Что если задача изначально была не блокировать читеров, а пометить их и изучить их инструменты.

Типа многоходовочка от разработчиков? Смешно же. Это работает в обе стороны. 

Изменено пользователем Trace of Riddles

Поделиться сообщением


Ссылка на сообщение

Я честно хз че и как с этим кодом. Но игра стоит бабки. Если прям вы уверены в читерстве блок на игру и всё. Пусть в сингл играет и норм.

Поделиться сообщением


Ссылка на сообщение
В 11.08.2025 в 13:24, 0wn3df1x сказал:

Это как раз то, о чём я писал между 4 и 5 главами.

Аппаратный корень доверия - это лишь полдела. Можно построить несокрушимую крепость из кремния, с башнями из Secure Boot и стражниками TPM, но вся эта мощь абсолютно бесполезна, если нет надёжного способа проверить пропуск на входе. А способ этот - удалённая аттестация. Без неё это равносильно навешиванию сложного и дорогого замка на картонную дверь.

Теория

  1. Стены и башни (Secure Boot & TPM): Они на месте. Secure Boot гарантирует, что при загрузке системы в неё не проник вражеский лазутчик (неподписанный драйвер). TPM (через Measured Boot) скрупулезно записывает в свой защищенный журнал (PCR-регистры) каждый шаг загрузки, создавая уникальный "отпечаток" состояния системы. Оборудование - тот самый "неизменяемый арбитр" - свою работу выполняет безукоризненно.
  2. Протокол проверки (Remote Attestation): Когда игрок запускает игру, привратник у ворот (лаунчер игры) должен провести строгую проверку. Он связывается со столицей и получает оттуда секретный пароль на сегодня (nonce). Затем он просит внутреннего нотариуса (TPM) поставить на отчет о состоянии крепости (значения PCR) свою уникальную печать (Attestation Key), приложив к нему и сегодняшний пароль. Этот запечатанный и заверенный отчет (quote) отправляется в столицу. Там его сверяют с эталоном. Если отчет подлинный и состояние крепости "чистое" - ворота открываются.

Эта система теоретически безупречна. Она не доверяет ничему, что может быть подделано программно, и опирается только на аппаратное доказательство. Где же провал?

Практика
Провал кроется не в крепости и не в протоколе. Он кроется в инструкции, выданной привратнику на воротах. В программной логике лаунчера игры.

Разработчики античита допустили фундаментальную, классическую ошибку в проектировании систем безопасности, реализовав так называемый принцип "fail-open" (отказ в сторону открытия) вместо единственно верного "fail-closed" (отказ в сторону закрытия).

Что происходит в итоге:

  1. Начало проверки: Игрок запускает Battlefield 6. Лаунчер (привратник) начинает процедуру аттестации и отправляет на сервер ЕА (в столицу) запрос на получение nonce (секретного пароля).
  2. Обрыв связи: В этот самый момент игрок выдергивает сетевой кабель. Связь со столицей прерывается.
  3. Критическая ошибка логики: Лаунчер не получает ответа от сервера. Вместо того чтобы следовать принципу "fail-closed" ("Нет связи со столицей? Значит, проверка не пройдена, ворота остаются закрытыми до восстановления связи и успешной верификации!"), программа выполняет катастрофическую инструкцию "fail-open". В коде, вероятно, написано что-то вроде:
    
    try {
        // Попытаться провести удаленную аттестацию
        performRemoteAttestation();
    } catch (NetworkTimeoutException e) {
        // Ой, сервер недоступен. Наверное, у него проблемы.
        // Не будем мешать игроку, пропустим его.
        // Ведь главное — чтобы он мог играть!
        bypassSecurityCheck();
    }
  4. Обход защиты: Проверка безопасности просто пропускается. Игра считает, что все в порядке, и продолжает загрузку, не получив ни подтверждения, ни опровержения чистоты системы.
  5. Восстановление связи: Как только игра прошла этот этап и загрузила главное меню, игрок снова подключает интернет. Теперь игра может свободно общаться с серверами для подбора матчей, и никто уже не вспомнит о той маленькой сетевой ошибке на старте.

Вся архитектура безопасности, спустившаяся до уровня кремния, была повержена одной строчкой кода в блоке catch. Разработчики построили неприступную крепость, но научили привратника на воротах впадать в панику и открывать их нараспашку, если у него на мгновение пропадает телефонная связь. 

И вот на этом фоне особенно заметно, как в играх вроде 1вин ключевую роль играет именно стабильность работы и уверенность в том, что процесс всегда будет под контролем.

Даже при корректном fail closed сценарии критично то, как именно обрабатывается состояние системы после обрыва связи. Если лаунчер слишком агрессивно блокирует игрока (из-за ложных срабатываний или временных проблем на стороне сервера), это превращается уже в точку отказа для добросовестных пользователей. Поэтому надежная архитектура должна включать не только fail closed, но и механизм отложенной верификации. То есть игра запускается в ограниченном режиме или с временным токеном, но окончательная проверка состояния обязательно проходит при восстановлении соединения. Иначе система превращается либо в дырявую, либо в непрактичную

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: SerGEAnt

      После приобретения Activision за 69 миллиардов долларов Microsoft предполагала, что количество подписчиков резко вырастет после добавления Call of Duty в каталог, но этого не произошло.
      Намедни корпорация Microsoft совершила ход конем и повысила цену на подписки Game Pass. Причем, в случае с Game Pass Ultimate повышение составило с 20 до 30 долларов, то есть аж в полтора раза.
      Пользователи сервиса логично заметили, что 30 долларов — явный перебор, и даже успели «положить» страницу отмены подписки.

      А сегодня аналитик Bloomberg Йост ван Дрейнен предположил, что решение о повышении цен на Game Pass связано с потерями от потенциальной выручки с Call of Duty. После приобретения Activision за 69 миллиардов долларов Microsoft предполагала, что количество подписчиков резко вырастет после добавления Call of Duty в каталог, но этого не произошло.
      Black Ops 6 определенно принесла большую прибыль, но 82% из них пришлось на PlayStation 5, на которой Game Pass отсутствует. При этом, стоимость поддержки такого большого сервиса как Game Pass продолжает расти, поэтому Microsoft пришлось пойти на повышение.
      Теперь Game Pass представляет собой три тарифа:
      Essential за $10 в месяц (около 50 игр); Premium за $15 в месяц (около 200 игр); Ultimate за $30 в месяц (около 400 игр, включая топовые новинки в день релиза).
    • Автор: james_sun

      Дополнительные условия снова могут расстроить часть игрового сообщества — речь об обязательном включении TPM 2.0 и Secure Boot в настройках BIOS.
      Electronic Arts обнародовала полноценные системные требования грядущего шутера Battlefield 6.

      В самих аппаратных требованиях ничего особого нет — для минимальных настроек следует иметь на борту Intel i5-8400 (или Ryzen 5 2600), а также GeForce RTX 2060 (или Radeon RX 5600 XT). Для максимального уровня графики нужны Intel i9-12900K (или Ryzen 7 7800X3D) и RTX 4080 (или Radeon RX 7900 XTX). 
      А вот дополнительные условия снова могут расстроить часть игрового сообщества — речь об обязательном включении TPM 2.0 и Secure Boot в настройках BIOS.
      Релиз проекта намечен на 10 октября.


Zone of Games © 2003–2025 | Реклама на сайте.

×