Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 5274 сообщений
Cообщения с меткой

аркады - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Исследуем защиту и восстанавливаем аркады Namco System ES1

Понедельник, 27 Июня 2016 г. 21:05 (ссылка)

Tank! Tank! Tank! Arcade

Введение

Эта история началась практически сразу после написания статьи об исследовании аркады небезызвестной корейской компании: в аркадном автомате Tank! Tank! Tank! от Namco вышел из строя жесткий диск (что неудивительно, т.к. производитель установил в автомат не отличающиеся надежностью Seagate 7200.12), диск взяли с рабочей аркады и скопировали его через WinHex, после чего игра перестала запускаться. Предположив, что целостность диска была нарушена неосторожным нажатием клавиши в окне редактирования данных на диске в WinHex, был взят другой диск с еще одного рабочего автомата, скопирован аналогичным образом, который также перестал запускаться. Тут-то и стало понятно, что в диск каким-то образом встроена защита от копирования.

Arcade Linux Error



Namco System ES1

Аркада Tank! Tank! Tank!, выпущенная в 2009 году, работает на платформе System ES1, которая представляет из себя обычный компьютер тех лет на чипсете Intel Q35:


  • Материнская плата: Supermicro C2SBM-Q (Intel Q35 + ICH9DO)

  • CPU: Intel Core2 Duo CPU E8400 @ 3.00GHz

  • RAM: 2x512 MB DDR2 800 MHz 1.8V

  • Видео: NVIDIA GeForce 9600 GT с 512 мегабайтами памяти типа GDDR3

  • HDD: Seagate Barracuda 7200.12 160 ГБ (ST3160318AS) или Hitachi Deskstar 7K1000.C 160 ГБ (HDS721016CLA382)

  • Операционная система: Arcade Linux (основана на Debian 4.0)



Все это укомплектовано к массивный корпус с прикрученным блоком питания на 110В.

Dead Heat Arcade PC

Фотография System ES1, который поставляется с игрой Dead Heat. Установлен горизонтально, в отличие от варианта ES1 в Tank! Tank! Tank!.



На платформе ES1 всего было выпущено 9 игр, 4 из которых рассчитаны исключительно на внутрияпонский рынок. Последняя игра была выпущена в 2014 году, так что можно полагать, что новых игр на данной платформе не появится. На территории России и Украины мне встречались всего 4 ES1-игры: Tank! Tank! Tank!, Dead Heat, Dead Heat Riders и Nirin.



Доверенная загрузка и TPM

Особенность данной платформы в том, что она использует так называемую доверенную загрузку (Trusted Boot) со статичным корнем доверия (Static Root of Trust) с помощью крипточипа Trusted Platform Module (TPM) версии 1.2, встроенного в материнскую плату. TPM — замечательная штука — что-то вроде смарт-карты, которая несет в себе RSA-ключ, зашитый производителем на этапе производства, с возможностью генерирования своих ключей, приватная часть которых никогда не покинет TPM, загрузки уже существующих ключей, с небольшим энергонезависимым хранилищем произвольных данных (NVRAM) на борту, генератором случайных чисел и еще кучей всего. Но самое интересное, что предоставляет TPM — конфигурационные регистры платформы (Platform Configuration Registers, PCR), которые можно расширить SHA-1-суммой каких-то произвольных данных. Очень важно отметить, что эти регистры нельзя ни сбросить, ни установить в нужное значение, а только дополнить новой SHA-1-суммой, от которой сам TPM возьмет новую SHA-1-сумму от конкатенации старого и нового значения. Проще говоря, TPM выполняет следующую команду, если вы отправляете в PCR NEW_HASH:

PCR[i] = SHA1(PCR[i] + NEW_HASH)
BIOS/UEFI материнской платы, если он поддерживает спецификации Trusted Computing Group (TCG), измеряет (т.е. отправляет в TPM хеши) всего, что участвует в загрузке с момента включения компьютера: BIOS/UEFI Boot Block, сам BIOS/UEFI, сервисы UEFI, SMBIOS, таблицы ACPI, Option ROM устройств (например, сетевых карт), MBR или загрузчик EFI, разделы диска, и еще кучу всего.



PCR Measurements

(из Evil Maid Just Got Angrier)



BIOS/UEFI не могут осуществлять измерения чего-либо, что делается после загрузки MBR или UEFI-загрузчика, поэтому, в случае Linux, загружаемое ядро и initrd остаются неучтенными в PCR. Чтобы производить измерения после MBR, существуют загрузчики, поддерживающие TPM и осуществляющие доверенную загрузку со статичным корнем доверия: TrustedGRUB, TrustedGRUB2, GRUB-IMA. Последний используется в System ES1. Эти загрузчики отправляют в TPM хеши самих себя (stage1 и stage2 в случае GRUB), свои настройки и загружаемые модули (ядро, командную строку ядра и initrd, в случае Linux).



TPM может зашифровать произвольные данные RSA-ключом с привязкой к значениям PCR, и расшифровать их можно будет только в том случае, если значения PCR совпадут. Если мы зашифруем таким образом данные, то, в случае модификации BIOS/UEFI, загрузчика, модулей GRUB, ядра, initrd или всего лишь командной строки ядра, данные не расшифруются из-за несовпадения регистров.



Из популярного софта TPM используется, насколько мне известно, только в Microsoft BitLocker. TPM можно использовать в качестве хранилища сертификатов для всяких банк-клиентов, VPN и SSH-доступа, и очень обидно, что его использует так мало людей, единицы, учитывая его стоимость (

https://habrahabr.ru/post/304014/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<аркады - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda