Часть полного текста документа: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-карт заложили в них криптографический протокол, устойчивый к перехвату. ............ |