Коллектив авторов - Защита от хакеров корпоративных сетей
• устройство травления печатных плат позволяет создавать печатные платы, что очень удобно для создания испытательных стендов и проектирования электронных схем. Для травления нужны время и опасные химикаты. Компания Radio Shack предлагает комплект инструментов, который содержит две плакированные медью монтажные платы размером 3 х 4,5 дюйма, стойкое к чернилам перо (рейсфедер), приспособления для травления и послойного разбора плат, ванну для травления, сверла диаметром 16/1 дюйма, полировальник и инструкции по применению. Устройства травления печатных плат и различные приспособления к ним можно купить в комплекте или по частям в любом магазине электроники. Например, комплект инструментов PC Board Kit компании Radio Shack, www.radioshack.com/searchsku.asp?find=276-1576, стоит от 10 до 50$;
• анализатор спектра предназначен для наглядного отображения распределения мощности сигнала по диапазону частот в виде амплитудно-частотных и частотных характеристик исследуемых устройств. Обычно используется для анализа радиоизлучений с целью определения мощности и частоты излучений устройства. Примером анализатора спектра может послужить устройство Tektronix FSEA20, www.tektronix.com/Measurement/commtest/index/prodindex_spectrum.html. Приблизительная цена этих устройств составляет 10 000 (бывших в употреблении) – 100 000$;
• имитатор электростатического разряда. Предназначен для вызова электростатического разряда (около 30 кВ для разряда в воздухе (грозового разряда) и 25 кВ для контактного разряда). Обычно это делается с целью проверки устройства на отказ или его соответствие техническим требованиям. Вызов электростатического разряда в схеме может привести к повреждению или непредусмотренным режимам компонентов схемы и способствовать утечке секретных данных. Примером имитатора электростатического разряда является Haefely Trench PESD 1600, www.haefely.com, который можно купить за 5000-10 000$;
• анализатор логики (анализатор логических состояний) используется для совершенствования и отладки цифровых систем. Обеспечивает визуальное отображение текущих состояний цифровых входов и их состояние в прошлом. Основываясь на предопределенных запускающих входных сигналах, перехватывает сигналы, удовлетворяющие заранее заданным условиям. Пример анализатора логики: Tektronix TLA600, www.tektronix.com/Measurement/logic_analyzers/home.html, приблизительная цена которого составляет 5000 (бывший в употреблении) – 50 000$;
• частотомер / измеритель напряженности поля используется для измерения частоты входного сигнала или наиболее сильного радиочастотного сигнала близлежащего передатчика. Обычно применяется для анализа устройства по его излучениям на расстоянии. Например: Optoelectronics CD 100, www.optoelectronics.com, который можно купить за 100–500$;
• протокольный анализатор. Протокольный анализатор является средством контроля и декодирования цифрового трафика. В большинстве протокольных анализаторов встроена возможность графического отображения данных и автоматического распознавания данных конфигурации, что является полезным при анализе неизвестных типов протоколов. К протокольным анализаторам относятся такие устройства, как Comcraft (RS-232) www.comcraftfr.com/dlm200.htm, CATC (Bluetooth, USB, IEEE-1394, Ethernet, InfiniBand) www.catc.com, Catalyst Enterprises (USB, ISA, PCI, MiniPCI, PCI–X, CompactPCI) www.catalyst-ent.com. Их приблизительная цена составляет 500-50 000$;
• внутрисхемный эмулятор является средством разработки / совершенствования, который используется для контроля и эмуляции работы процессора устройства. Внутрисхемный эмулятор подключается к ведущему персональному компьютеру и на время тестирования заменяет микропроцессор устройства. Он поддерживает возможность трассировки запросов команд в реальном масштабе времени, состояний регистра загруженности процессора. Причем при этом устройство не замечает подмены своего микропроцессора на микропроцессор эмулятора. Внутрисхемный эмулятор может быть полезен при реинжиниринге функциональных возможностей исследуемого устройства или программы при недоступности программно-аппаратных средств для исследования, как, например, в случае снабжения постоянного запоминающего устройства защитными механизмами. Для всех популярных типов процессора разработаны внутрисхемные эмуляторы, например Microtek Low-Power Pentium ICE, www.microtekintl.com/MainSite/Processors/LowPwrPentium.htm с приблизительной ценой от 500 до 50 000$.
Пример: хакинг устройства идентификации DS1991 MultiKey iButton
Dallas Semiconductor DS1991 MultiKey iButton (www.ibutton.com) является устройством идентификации с тремя внутренними защищенными областями данных, каждая из которых защищена своим паролем. В зависимости от решаемых задач устройство iButton может использоваться для обеспечения безналичных сделок, идентификации пользователя или управления доступа. Защищаемые устройством данные могут относиться к финансовой информации, денежным единицам или пользовательской информации регистрации / идентификации.
Этот пример преследует цель показать, что даже промышленные устройства обеспечения безопасности могут оказаться несовершенными, поэтому всегда можно попытаться извлечь из них пароли или секретные данные, не имея на то законных полномочий. Установив соединение с устройством через последовательный порт персонального компьютера и используя основные методы криптографического анализа (подобные приведенным в пункте «Криптоанализ и методы запутывания»), можно обнаружить уязвимость в системе защиты устройства, которая позволит определить пароли защищаемых областей данных и таким образом получить доступ к защищенным данным. Этот пример основан на рекомендациях Кингпина (Kingpin) «Атака со словарем на поиск уязвимостей в устройстве DS1991 MultiKey iButton» (DS1991 MultiKey iButton Dictionary Attack Vulnerability advisory), www.atstake.com/research/advisories/2001/a011801-1.txt.
Эксперименты над устройством
В устройстве DS1991 объем энергонезависимой памяти составляет 1152 бита. Вся энергонезависимая память разбита на три блока по 384 бита (48 байт) в каждом, которые называются подключами. Каждый подключ защищен независимым восьмибайтовым паролем. Только при указании правильного пароля можно получить доступ и прочитать сохраненные в области подключа данные. При указании неправильного пароля устройство DS1991 возвратит 48 байт случайных данных, пытаясь предотвратить сравнение полученных данных с известными константами. В рекламных материалах компании Dallas Semiconductor (www.ibutton.com/software/softauth/feature.html) утверждается, что «запись в устройство DS1991 ложных паролей автоматически включает встроенный в устройство генератор случайных чисел, который выдает ложные ответы. Тем самым устраняются попытки преодоления системы защиты c помощью подбора подходящих образцов. В обычных системах защиты устройств эта возможность не реализована».
При помощи программного обеспечения iButton-TMEX (www.ibutton.com/software/tmex/index.html), в состав которого входит программа iButton Viewer, позволяющая анализировать устройство iButton и подключения к ним, было выяснено, что возвращаемые при вводе неправильного пароля данные на самом деле вовсе не случайные. Оказывается, они вычисляются на основе введенного пароля и постоянного блока данных, который записан в устройстве DS1991. На рисунке 14.12 показаны значения данных устройства DS1991. Обратите внимание на одинаковые значения, которые были возвращены подключами Subkey IDs 1 и 2 при вводе неверного пароля «hello».
Рис. 14.12. Просмотр данных устройства DS1991 при помощи программы iButton Viewer
Возвращаемые данные никак не связаны с правильным паролем, который хранится во внутренней памяти устройства DS1991. Постоянный блок данных, который является массивом размером в 12 Кб из 256 элементов по 48 байт в каждом, на самом деле содержит одни и те же данные для всех устройств DS1991 и не имеет никакого отношения к данным, хранимым в подключевых областях памяти. Это означает, что в ответ на любой введенный символ (1 байт = 256 возможностей) устройство iButton возвращает 48-байтовый уникальный ответ. Для определения данных константного блока компания Dallas Semiconductor написала тестовую программу (основанную на примере программы TDS1991.c, ftp://ftp.dalsemi.com/pub/auto_id/softdev/tds1991.zip), которая 256 раз перебирает однобайтовый пароль в пределах от 0x00 к 0xFF и записывает ответ, полученный по последовательному порту устройства. Далее потребовалось решить достаточно трудную задачу по определению возвращаемых величин при вводе более длинных паролей. Если можно было бы предварительно вычислить возвращаемое значение при попытке ввода неверного пароля, то стало бы возможным определить, был ли введен правильный пароль, поскольку при вводе правильного пароля устройство DS1991 возвратит фактические данные, сохраненные в области подключа, а не величину, возвращаемую при вводе неверного пароля.
Из-за ограниченности быстродействия устройства DS1991 и быстродействия шины его однопроводного интерфейса время транзакции при каждой попытке ввода пароля ограничено 0,116 с. Поэтому нельзя атаковать устройство способом грубой силы, перебирая всевозможные значения пароля в 64-битном ключевом пространстве. Только на перебор печатных символов ASCII потребовалось бы около 22 406 645 лет. Но успешная атака со словарем из обычно используемых паролей вполне возможна.