Пусть A = “hello ” = 68 65 6C 6C 6F 20 20 20
B_68 (“h”) = D8 F6 57 6C AD DD CF 47 CC 05 0B 5B 9C FC 37 93 ...
B_65 (“e”) = 03 08 DD C1 18 26 36 CF 75 65 6A D0 0F 03 51 81 ...
B_6C (“l”) = A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 5C 9C ...
B_6C (“l”) = A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 5C 9C ...
B_6F (“o”) = 45 E0 D3 62 45 F3 33 11 57 4C 42 0C 59 03 33 98 ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
B_20 (“ “) = E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 95 E3 FE 5F 7B ...
D8 F6 57 6C AD DD CF 47 CC 05 0B 5B 9C FC 37 93 ...
03 08 DD C1 18 26 36 CF 75 65 6A D0 0F 03 51 ...
A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 03 ...
A4 33 51 D2 20 55 32 34 D8 BF B1 29 40 ...
45 E0 D3 62 45 F3 33 11 57 4C 42 0C ...
E0 2B 36 F0 6D 44 EC 9F A3 D0 D5 ...
E0 2B 36 F0 6D 44 EC 9F A3 D0 ...
E0 2B 36 F0 6D 44 EC 9F A3 ...
Результирующий предварительно вычисленный код возврата складывается по модулю 2 со всеми вышерасположенными строками, сохраняя наиболее значащие 48 байт. Обратите внимание, что эта строка является шестнадцатеричным представлением «мусора» на рис. 14.12, который был возвращен в ответ на ввод неправильного пароля «hello»:
D8 F5 FB 26 4B 46 03 9B CC 2E 68 82 22 F7 F3 2B ...
Если вводится неверный пароль, то устройство DS1991 возвращает 48-байтную строку «неверного пароля», как это было продемонстрировано в нашем примере. При вводе одинаковых паролей предварительно вычисленное значение для любого устройства будет всегда одним и тем же. Поэтому если предварительно вычисленное значение совпадает с кодом возврата, возвращенным устройством DS1991, то введенный пароль неверен, а если не совпадает, то предполагаемый пароль – правильный. Так происходит из-за того, что устройство возвращает записанные в области подключа данные быстрее «случайных» данных, обычно возвращаемых при вводе неверного пароля.
Инструментарий демонстрации правильности идеи концепции вместе с исходным текстом доступен по адресу www.atstake.com/research/advisories/2001/ds1991.zip. Он отображает содержимое 12 Кб константного блока и демонстрирует возможность атаки со словарем на устройство DS1991 iButton. Демонстрационный пример выполняет следующие действия.
1. Находит устройство DS1991 iButton на определенном по умолчанию COM-порте.
2. Считывает входной файл, в котором записаны слова словаря атаки. Вычисляет предполагаемый 48-байтный код возврата устройства при вводе неверного пароля.
3. Выбрав в качестве пароля первое слово из словаря паролей, пытается прочитать данные подключевой области № 1. В случае успеха отображает защищенные данные из области подключа. В противном случае повторяется второй шаг с очередным словом из файла словаря.
Пример: хакинг устройства NetStructure 7110 E-commerce Accelerator
Устройство Intel NetStructure 7110 e-Commerce Accelerator (www.intel.com/network/idc/products/accel_7110.htm) является поддерживающим протокол защищенных сокетов SSL криптографическим акселератором, который разгружает главный Web-сервер сети от выполнения криптографических функций, позволяя тем самым увеличить производительность его работы с остальными сайтами сети. Устройство помещается между маршрутизатором и Web-сервером и может обрабатывать до 200 безопасных подключений в секунду. NetStructure 7110 использует последовательный порт при помощи пульта управления, расположенного на передней стенке устройства. Благодаря этому оно может быть скомпрометировано, позволяя злоумышленнику получить полный доступ к внутреннему устройству системы.
Этот пример показывает, каким образом пользователь или администратор может получить доступ к устройству, не имея на то законных полномочий. Устройство было физически вскрыто, и была исследована его операционная система, записанная на простой плате памяти. В результате анализа различных частей кода при помощи программных методов реинжиниринга у некоторых доработок NetStructure 7110 был обнаружен недокументированный пароль администратора, который позволяет контролировать любые настройки системы и получить полный доступ к внутренним компонентам устройства и его файловой системе. Этот пример основан на рекомендациях Брайона Обливиона (Brian Oblivion) «Потайная дверь в устройство NetStructure 7110 через его консоль» (NetStructure 7110 Console Backdoor), www.atstake.com/research/advisories/2000/ipivot7110.html. Пример был проверен на устройстве, изготовленном в апреле 2000 года.
Вскрытие устройства
Устройство NetStructure 7110 размещено в стандартном 19-дюймовом устанавливаемом в стойку корпусе и закрыто малозаметными винтами (рис. 14.13). Вскрытие устройства позволило обнаружить внутри стандартную материнскую плату PC и процессор Pentium II 333 МГц. Плата Rainbow CryptoSwift Accelerator (www.rainbow.com/cryptoswift/PCI.html) была подключена к локальной шине PCI материнской платы. Внутри устройства не оказалось жесткого диска, поскольку файловая система размещается в постоянном запоминающем устройстве на плате запоминающего устройства CompactFlash (www.CompactFlash.org). Не было обнаружено никаких явных защитных механизмов, разве только небольшой слой изоляции (пломба) на внешней стороне корпуса, который был тщательно удален перед вскрытием и заменен по окончании исследования.
Читать дальше
Конец ознакомительного отрывка
Купить книгу