Статья

Статья JAVA на smart-картах

Работа добавлена на сайт bukvasha.net: 2015-10-29

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 8.11.2024



JAVA на smart-картах

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

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

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

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

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

Можно условно выделить следующие три источника угрозы:

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

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

3. Перезапись идентификационных данных с увеличением уровня привилегий (например, если smart-карта обеспечивает доступ к объекту А — minimum security unit, хакер может «вслепую» модифицировать идентификационные данные так, чтобы получить доступ ко всем объектам, даже не имея соответствующих smart-карт на руках).

Хакерские методы исследования 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



1. Лекция на тему Інформаційні ресурси економічної діяльності
2. Реферат Разновидности, структура, свойства алгоритма
3. Реферат Анализ внутренней и внешней среды туристической компании MEGATRAVEL
4. Курсовая на тему Анализ ликвидности бухгалтерского баланса 2
5. Реферат Определение трудоемкоси на производстве
6. Реферат на тему Kiss The Dust Essay Research Paper Kiss
7. Реферат Этапы диагностики кризиса
8. Реферат на тему Hamlet Psycho Analysis Essay Research Paper HamletHamlet
9. Реферат Специфіка митного регулювання операцій з давальницькою сировиною
10. Методичка на тему Наследование и классы коллекции