Коллектив авторов - Защита от хакеров корпоративных сетей
В докладе Гутмана (Gutmann) «Данные об остаточной намагниченности в полупроводниковых приборах» (Труды десятого симпозиума USENIX по вопросам безопасности (Proceedings of the Tenth USENIX Security Symposium), 2001, www.usenix.org/publications/library/proceedings/sec01/gutmann.html) показано, насколько трудно обеспечить безопасность даже при полном удалении данных из оперативной и энергонезависимой (долговременной) памяти. Это означает возможность сохранения и восстановления остатков временных данных, криптографических ключей и других секретных данных в памяти устройства в течение длительного времени после отключения электропитания или перезаписи содержимого памяти. Извлечение данных по описанному способу предполагает наличие современного оборудования, обычно доступного в академических кругах.
Атаки на таймерАтаки на таймер преследуют цель изменить или измерить характеристики таймера схемы и обычно разделяются на две категории: активные и пассивные атаки на таймер. Активные атаки на таймер – агрессивные нападения, для успешного осуществления которых необходим физический доступ к кварцевому генератору синхронизирующих (тактовых) импульсов или другой схеме синхронизации. Главная цель состоит в изменении частоты синхронизации, вызвав тем самым отказ или выполнение непреднамеренной операции. Схемы, использующие для точной синхронизации генераторы тактовых импульсов, могут быть атакованы для «ускорения» или «замедления» скорости их работы. Подобные схемы используются, например, в устройствах идентификации, основанных на измерении временных интервалов. Замедление устройства может оказаться полезным для его отладки и анализа, что не всегда возможно при высоких скоростях его работы.
Пассивные атаки на таймер – неагрессивное измерение времени вычисления для определения данных или устройств криптографических операций. Вооружившись гипотезой о необходимости различного времени для различных вычислений, возможно в результате пассивной атаки определить секретные компоненты схемы или взломать криптографические устройства. Подобные нападения обсуждены в статье Пауля Кочера (Paul Kocher) «Атаки на таймер при нападении на реализации алгоритмов Диффи-Хелмана, RSA, систем поддержки принятия решений DSS и других систем» ( Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems), www.cryptography.com/timingattack/ timing.pdf.Современные способы атак: удаление эпоксидной смолы и вскрытие интегральных схем
Герметизация важных компонентов эпоксидной смолой или другими клеящими веществами обычно выполняется для предотвращения вскрытия устройства и получение доступа к нему. На рисунке 14.9 показан микропроцессор, который для предотвращения его исследования залит эпоксидной смолой. Известно много разных типов эпоксидных смол и пластиков, которые используются для обеспечения защиты компонентов. Некоторые из этих материалов могут быть растворены или удалены с использованием химикатов, например метилена хлорида (Methylene Chloride) или дымящейся азотной кислоты (Fuming Nitric Acid). Для их удаления также можно использовать высокооборотные инструментальные средства, к которым относится, например, инструмент Дремеля (Dremel tool) или дрель с деревянным сверлом в виде шпинделя с ватным валиком или зубочисткой. Легкое перемещение дрели по поверхности эпоксидной смолы ослабляет и утончает связующий материал. Рекомендуется на этой стадии исследования принять необходимые меры предосторожности и соблюдать технику безопасности. Как только эпоксидная смола будет удалена с компонента, можно приступать к его исследованию.
Рис. 14.9. Монтажная плата устройства iKey 1000 компании Rainbow Technologies
Для более сложных конструкций устройств необходимо вскрыть интегральную схему и проанализировать кремниевый чип. Особенно это необходимо, если в устройстве предусмотрены средства предотвращения чтения из памяти устройства, описанные в пункте «Поиск компонент памяти». Цель вскрытия состоит в получении доступа к интересующему исследователя кремниевому чипу интегральной схемы, который может быть микропроцессором, аналоговой или цифровой памятью или программируемой логической схемой. Вскрытие интегральных схем без использования специализированных инструментальных средств очень сложно. Для этого необходимы требующие осторожного обращения химикаты. Зачастую нижележащие кремниевые чипы очень хрупки. Некоторые фирмы, например B&G International (www.bgintl.com), предлагают помощь в разгерметизации устройств при удалении некоторых типов эпоксидной смолы. Анализ кремниевого чипа
После того как кремниевый чип станет доступным для осмотра, его можно исследовать с помощью мощного микроскопа. Проводимое исследование может помочь извлечь хранимые в постоянном запоминающем устройстве данные или программный код, определить места расположения логических элементов декодирования или состояние реализованных в устройстве функциональных возможностей. Кюммерлинг (^mmerling) и Кун (Kuhn) в статье «Принципы проектирования механизмов противодействия вскрытию процессоров смарт-карт» (Design Principles for Tamper-Resistant Smartcard Processors) (Материалы симпозиума USENIX по технологиям смарт-карт (Proceedings of the USENIX Workshop on Smartcard Technology), 1999, www.cl.cam.ac.uk/~mgk25/sc99-tamper.pdf) детально описали методы извлечения программного кода и данных из процессоров смарт-карт. Они описали исследование устройства микроскопом, лазерную резку, манипуляции с фокусированными лучами ионов, атаки имитации сбоя и анализ питания. Большая часть их исследования была основана на книге Бека (Beck) « Анализ отказов интегральных схем. Руководство по способам подготовки» (Integrated Circuit Failure Analysis – A Guide to Preparation Techniques book), выпущенной издательством John Wiley & Sons в 1998 году. В этой книге детально представлены способы вскрытия корпусов и удаление изоляции чипов, способы травления микросхем для удаления уровней структуры чипа, а также процедуры обеспечения безопасности и охраны здоровья.
На рисунке 14.10 показан структурный слой исследуемого чипа типичного устройства стираемой программируемой постоянной памяти EPROM, чьи логические элементы устанавливаются электрическими импульсами, а стираются прямым ультрафиолетовым светом. В зависимости от использованной технологии изготовления кремниевых приборов дальнейшее увеличение изображения и удаление кремниевого слоя приведет к показанному на рис. 14.11 изображению. На этом изображении видно, что у устройства 16 столбцов и 10 строк для обеспечения 160 бит памяти. Каждый бит отвечает за представление наличия или отсутствия данных с помощью цифр «1» или «0» соответственно. Например, верхний ряд соответствует битовой строке «0000010011100001».
Рис. 14.10. Типичное устройство стираемой программируемой постоянной памяти EPROMРис. 14.11. Увеличенное изображение части постоянного запоминающего устройства ROM с показом битов фактических данных
Для анализа кристаллов требуются современные инструментальные средства и оборудование, которыми часто оснащены академические лаборатории. Некоторые компании, например Semiconductor Insights (www.semiconductor.com), предлагают услуги по инженерному анализу аппаратных средств и оказывают помощь в функциональном исследовании, извлечении и моделировании интегральных схем. Также они могут проанализировать полупроводниковый прибор и процессы его изготовления, используемые при этом методы и материалы. Такие услуги полезны при отсутствии доступного оборудования у исследователя.
Криптоанализ и методы запутывания
Для защиты записанных в память компонентов секретных данных устройства часто используют простые способы, затуманивающие смысл хранимой информации. Простая путаница и обратимые преобразования внушают пользователю ложное ощущение защищенности. Даже стойкие криптографические алгоритмы подвергаются опасности, если могут быть найдены и идентифицированы секретные компоненты.
После извлечения данных из устройства потребуется проанализировать их для определения реальных значений данных. В этом поможет знание простых криптографических алгоритмов (описанных в главе 6) и обычно используемых в таких случаях методов запутывания смысла. Известны также более сложные механизмы защиты / запутывания данных, например программа Tamper Resistant Software компании Cloakware Corporation (www.cloakware.com). Также в этом случае может помочь книга Брюса Шнайера (Bruce Schneier) «Прикладная криптография» (Applied Cryptography, John Wiley & Sons, 1996). В книге описана история криптографии и представлены десятки криптографических протоколов, алгоритмов и примеров реализующих программ. В целом это неплохая отправная точка для криптографического анализа извлеченных из устройства данных.
Одним из примеров слабой, обратимой схемы кодирования является схема, используемая операционной системой для защиты системного пароля: запутанный преобразованиями пароль сохраняется в системной памяти. К тому же этот пароль часто передается через последовательный или инфракрасный порт во время операции HotSync, которую легко контролировать. В консультации Кингпина (Kingpin) «Декодирование и извлечение пароля операционной системы Palm» («Palm OS Password Retrieval and Decoding») (www.atstake.com/research/advisories/2000/a092600-1.txt) показано, как можно легко определить фактический пароль. Пароль устанавливается законным пользователем при помощи приложения Palm «Security». Его максимальная длина составляет 31 символ ASCII. Независимо от числа образующих пароль символов в результате получается блок закодированной информации длиной 32 байта. В зависимости от длины пароля используются два метода кодирования пароля ASCII. В качестве примера рассмотрим схему для паролей из четырех символов и менее. Контролируя при помощи PortMon передаваемые через последовательный порт данные во время выполнения операции HotSync и сравнивая закодированные блоки различных коротких паролей, было определено, что 32-байтовый блок закодированной информации получается в результате выполнения простой логической операции XOR «Исключительное ИЛИ» над блоком пароля ASCII и 32-байтовым константным блоком. Для расшифровки закодированного таким способом пароля оказалось достаточно выполнить операцию XOR над константным и закодированным блоками.