Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Маркетплейс (market.find-info.ru)

   

JAVA на smart-картах

JAVA на smart-картах

Крис Касперски

Источники угрозы

на них данных. Физически smart-карта представляет собой кусок пластика, в который конструктивно вмонтирован микроконтроллер, немного оперативной и энергонезависимой памяти и интерфейс ввода/вывода. Остальные компоненты устанавливаются опционально. Питание обычно поступает от внешнего источника через интерфейс, но может быть и внутренним. Некоторые smart-карты держат весь код жестко прошитым в ПЗУ, но таких встречается все меньше и меньше. Технологически намного проще помещать управляющий код и идентификационные данные в энергонезависимую память, программируемую через внешний интерфейс.

возросло и информация о многих атаках уже просочилась в открытую печать...

Источники угрозы

1. Клонирование smart-карты (злоумышленник изготавливает точную копию smart-карты на основе, например, «позаимствованной» на время у жертвы);

2. Клонирование идентификационных данных (идентификационные данные подлинной smart-карты меняются на скопированные с другой карты);

данные так, чтобы получить доступ ко всем объектам, даже не имея соответствующих smart-карт на руках).

Smart-карты первых поколений держали весь код и идентификационные данные в ПЗУ микроконтроллера, конструктивно недоступные по внешним интерфейсам ни на чтение, ни на запись, а потому надежно защищенные от злоумышленников. В то время хакеры развлекались тем, что перехватывали обмен между картой и ридером, расшифровывали протокол и создавали программно-аппаратные эмуляторы smart-карт, ведущие себя в точности как настоящие.

Микроконтроллеры тогда были маломощные, а протоколы обмена крайне простые. Проницательному кодокопателю ничего не стоило их взломать, однако для этого требовалось получить доступ к ридеру, чтобы вставить в него имитатор карты с выводами, подключенными к настоящей smart-карте. Плюс несколько микросхем для считывания и запоминания сигналов и питание к ним. В лучшем случае вся конструкция размещалась в коробке из-под сигарет, что делало ее достаточно заметной, особенно если охраняемые объекты контролировались видеокамерами или визуально (охранником или проходящими мимо людьми, которые тут же «стучали», если видели что-то подозрительное), поэтому количество успешных атак исчислялось единицами.

позже разработчики smart-карт заложили в них криптографический протокол, устойчивый к перехвату. Работал он приблизительно так. Центральный компьютер, управляющий системой доступа, при вставке карты в ридер посылал ей случайным образом сгенерированный ключ, которым карта была должна зашифровать свой секретный ID и возвратить результат компьютеру. Компьютер, имея ID всех карт, проделывал ту же самую операцию и сравнивал свой результат с откликом карты. Если они совпадали — идентификация считалась пройденной успешно.

Допустим, хакер перехватит сеанс обмена карты с компьютером. В следующий раз компьютер сгенерирует другой ключ, и, чтобы возвратить правильный ответ, необходимо знать секретный ID, которых к тому же может быть и не один. Без метода перебора (или сканирующего туннельного микроскопа) здесь не обойтись. В общем, smart-карты ломать перестали...

Так продолжалось до тех пор, пока в целях удешевления в smart-картах не появилась возможность записи идентификационных данных и микрокода по внешнему интерфейсу. Действительно, закладывать всю эту информацию в ПЗУ на стадии производства экономически невыгодно и вообще нецелесообразно. Согласитесь, что иметь «программируемую» smart-карту более заманчиво. Считалось, что возможность «заливки» микрокода без возможности чтения существующей прошивки гарантирует абсолютную безопасность данных. Но тут создатели smart-карт жестоко просчитались, а хакеры быстро написали атакующий код, считывающий содержимое памяти микроконтроллера и выдающий его через внешний интерфейс. Самое сложное — идентифицировать микроконтроллер, поскольку каждый микроконтроллер понимает только «свой» машинный код, который, кстати говоря, достаточно часто отдается только под подписку о неразглашении, да и то не всем.

Тем не менее после нескольких успешных взломов, разработчики отказались от Ассемблера и перешли на Java. Хотели как лучше, а получилось как всегда... Байт-код JVM достаточно подробно специфицирован и хотя не имеет доступа к физической памяти, хакерам этого и не требовалось, ведь идентификационные данные хранятся в памяти виртуальной Java-машины и доступны для чтения всем классам (в том числе и untrusted) через низкоуровневые JVM-команды, без которых она бы просто не смогла функционировать. Написать зловредный байт-код, заливаемый в карту и читающий идентификационные данные, может даже начинающий хакер. Достаточно заполучить эту карту. Стационарный ридер уже не нужен, ведь здесь перехватывается не протокол обмена, а сами идентификационные данные, которые с помощью все того же зловредного байт-кода могут быть «зашиты» в другую smart-карту. Первые попытки взлома были не очень удачными, и заливаемый байт-код затирал оригинальную прошивку. В результате чего карта умирала безвозвратно, поэтому ее требовалось похитить, что намного сложнее, чем «позаимствовать» на время. Но скоро в JVM удалось обнаружить множество дыр, позволяющих считывать незатертый байт-код оригинальной прошивки. Правда, содержимое ячеек памяти, поверх которых записывался атакующий байт-код, терялось безвозвратно и их приходилось реконструировать с нуля на основе анализа оставшегося кода, что по силам далеко не каждому.

Время шло, smart-карты стремительно «совершенствовались» и в последние несколько лет обзавелись встроенной операционной системой и даже научились поддерживать модульность, представляющую до предела упрощенную файловую систему. Как следствие, у хакеров появилась возможность не затирать прошивку, а добавлять новые модули, что существенно упростило взлом, и количество атак вновь резко возросло. Наличие же Интернета позволило хакерам обмениваться прошивками, идентификационными данными и другой информацией, устраивая настоящий мозговой штурм, против которого современным защитам, увы, не устоять.

Заключение

Smart-карты очень удобны, и призывать к отказу от них никто не собирается. Во всяком случае, механические замки еще менее надежны и замена замков (в случае хищения ключей) обойдется намного дороже, чем смена кодов доступа smart-карт. Однако следует помнить, что smart-карты — не панацея. Как и ключи, они могут быть похищены, с них легко снять «слепок», и что самое нехорошее — smart-карты допускают «клонирование» даже без наличия оригинала на руках. А все потому, что они становятся все более универсальными и стандартизированными.

Список литературы

IT спец № 07 ИЮЛЬ 2007