Java iButton компании Dallas Semiconductor - одна из первых разработок на базе спецификации Java Card 2.0 API
Набор интерфейсов Java Card предназначен не только для смарт-карт. Java Ring имеет гораздо более надежную и прочную конструкцию. Параметры данного устройства позволяют оснастить его большей вычислительной мощностью и емкостью памяти - возможностями, столь желанными для каждого программиста смарт-карт.
ОСОБЕННОСТИ ПРОЯВЛЯЮТСЯ В ДЕТАЛЯХ
Java Ring - хорошо защищенный электронный "жетон" (token) с ненастраиваемыми непрерывно функционирующими часами реального времени и различной комплектацией для многочисленных приложений. Наиболее ярким членом семейства Java Ring является устройство Java iButton, по сути представляющее собой однокристальный защищенный микрокомпьютер с миллионом транзисторов и мощной виртуальной машиной Java (JVM) в прочном корпусе из нержавеющей стали. Этот процессор, гарантирующий полную совместимость со стандартом Java Card 2.0 (о Java Card 2.0 мы рассказывали в мартовском выпуске JavaWorld Россия), дополнен быстродействующим 1024-разрядным блоком возведения в степень для поддержки шифрования RSA, памятью ОЗУ и ПЗУ большой емкости, а также ненастраиваемыми часами реального времени.
Согласно спецификации 1-Wire компании Dallas Semiconductor, модуль в корпусе имеет только один электрический контакт и вывод "земля". Энергонезависимая память, питаемая литиевой батарейкой, обеспечивает высокую скорость чтения/записи и не имеющую аналогов защиту, которая достигается за счет практически мгновенной очистки всей памяти при обнаружении вскрытия (эта функция получила название "быстрое обнуление"). Целостность данных и функционирование часов поддерживается в течение не менее 10 лет. Корпус из нержавеющей стали диаметром 16 мм может вмещать и кристаллы большего размера, увеличивая емкость быстродействующего статического энергонезависимого ОЗУ до 128 Кбайт. Небольшой и очень крепкий корпус модуля позволяет вмонтировать его в любые предметы по вашему вкусу: брелок для ключей, бумажник, часы, ожерелье, браслет или перстень.
ИСТОРИЧЕСКАЯ СПРАВКА
Летом 1989 года компания Dallas Semiconductor выпустила первые устройства памяти в корпусе из нержавеющей стали, использующие разработанный ею коммуникационный протокол 1-Wire. К 1990 году этот протокол был обновлен для применения в различных автономных устройствах. Первоначальное наименование "сенсорная память" (touch memory) было изменено на iButton. Упакованные подобно батарейкам, устройства iButton имеют только один активный электрический контакт на верхней поверхности, а оболочка из нержавеющей стали служит выводом "земля".
Данные можно считывать или записывать в память последовательно через простой и недорогой адаптер порта RS232C, который используется также для подачи питания, необходимого при выполнении операций ввода/вывода. Данные из памяти iButton можно считать (или записать их в нее) путем моментального касания контакта Blue Dot на приемной части адаптера. Если устройство не подключено к последовательному порту, данные в энергонезависимой памяти произвольного доступа (NVRAM, non-volatile random access memory) сохраняются благодаря литиевому источнику питания, поддерживающему информацию в течение как минимум 10 лет. В отличие от электрически стираемой программируемой постоянной памяти (EEPROM, electrically erasable programmable read-only memory), память NVRAM устройства iButton можно перезаписывать при малейшей необходимости - она от этого не изнашивается. Кроме того, содержимое памяти стирается и перезаписывается с высокой скоростью, характерной для комплементарных структур "металл-оксид-полупроводник" (CMOS, complementary metal oxide semiconductor). Длительного программирования, как в случае EEPROM, для этого не требуется.
Устройства памяти iButton с самого начала широко используются как прочные мобильные средства хранения данных, допускающие эксплуатацию в условиях неблагоприятной внешней среды. Среди наиболее крупномасштабных проектов по их применению можно упомянуть систему оплаты проезда в транспорте (Стамбул, Турция), контроль грузовых перевозок в транспортной компании и идентификация почтовых ящиков адресатов в почтовой службе США. Кроме того, они встраивались в ушные кольца коров в Канаде для контроля вакцинации животных и применялись сельскохозяйственными рабочими в качестве альтернативы карточек учета рабочего времени. Описание семейства продуктов iButton с примерами их использования можно найти на Web-узле iButton компании Dallas Semiconductor (см. раздел "Ресурсы"). Каждое изделие iButton выпускается с уникальным 8-байтовым серийным номером - два элемента ни в коем случае не могут иметь один и тот же номер. Среди простейших приспособлений iButton - устройства памяти, способные хранить файлы и подкаталоги, допускающие чтение и запись аналогично маленьким дискетам. Кроме того, существуют iButton, у которых область хранения файлов в целях безопасности защищена паролем. Они позволяют также контролировать процесс перезаписи информации в течение дня (для защиты финансовых операций). Выпускаются устройства iButton с температурными датчиками, с непрерывно работающими часами/календарем, бывают даже iButton с мощными микропроцессорами.
УСТРОЙСТВА ДЛЯ ЗАЩИТЫ ПОЧТЫ
В течение 10 лет компания Dallas Semiconductor проектирует, производит и продает семейство хорошо защищенных микропроцессоров, применяемых в устройствах декодирования спутниковых телеканалов, в банкоматах, электронных кассовых аппаратах и в других аналогичных приложениях, требующих криптографической защиты и высокой устойчивости к атакам хакеров. Спецификация Information Based Indicia Program Postal Security Device Specification, используемая почтовой службой США, - USPS (она дает возможность уполномоченному пользователю распечатывать почтовое отправление на любом ПК), заложила основы для объединения двух областей путем оснащения устройства iButton надежным микропроцессором.
Созданный в результате продукт под названием Crypto iButton сочетает в себе производительность процессора, высокую скорость создания криптографических примитивов и надежную защиту от физических и криптографических атак. Например, мощный механизм модульного возведения в степень способен выполнять 1024-разрядные модульные операции с 1024-разрядными степенями менее чем за секунду. Такая возможность реализации целочисленного модульного возведения в степень с высокой скоростью составляет основу шифрования RSA, обмена ключом по алгоритму Диффи - Хеллмана, стандарта цифровой подписи Digital Signature Standard (Федеральный стандарт по обработке информации FIPS 186) и многих других криптографических операций.
Соглашение между компаниями Dallas Semiconductor и RSA Data Security предусматривает предоставление каждому пользователю Crypto iButton оплачиваемой лицензии для выполнения шифрования RSA и применения цифровой подписи. При этом никакой другой лицензии на использование технологии шифрования RSA не требуется. За счет исключительно быстрого стирания содержимого памяти NVRAM обеспечивается хороший уровень защиты. Такое "быстрое обнуление" является обязательным требованием для устройств с высокой степенью безопасности, которые могут подвергаться атакам хакеров. Ожидается, что это свойство Crypto iButton позволит ему пройти сертификацию безопасности FIPS 140-1 Национального института стандартов и технологий (National Institute of Standards and Technology, NIST).
Для Crypto iButton разработана специальная операционная система, хранимая в ПЗУ и предназначенная для поддержки криптографии и общих финансовых операций (например тех, что требуются в программе почтовой службы). Данное микропрограммное обеспечение электронной коммерции (E-Commerce), в некотором отношении очень напоминает виртуальную машину Java, хотя пока и не является ею. В частности, оно имеет объектно-ориентированную архитектуру и интерпретатор байт-кода, способный интерпретировать и выполнять специальный язык сценариев E-Commerce Script Language, предложенный компанией Dallas Semiconductor. Кроме того, написан компилятор для трансляции языка высокого уровня (скажем, языка сценариев Script Language) в байт-коды, интерпретируемые виртуальной машиной E-Commerce VM. Хотя микропрограммное обеспечение E-Commerce предназначено в основном для приложений USPS, оно поддерживает различные общие модели электронной коммерции, предназначенные для многоцелевого использования. Кроме того, оно создает возможности для применения протоколов шифрования для безопасного обмена информацией, таких как протокол SKIP (Simple Key-Management for Internet Protocol), разработанный Sun Microsystems.
Более подробное описание ПО E-Commerce iButton и комплекта SDK для его программирования можно найти на базовой странице Crypto iButton (см. раздел "Ресурсы").
ОБЪЕДИНЕНИЕ С JAVA
Опыт проектирования операционной системы электронной коммерции и виртуальной машины (VM) для аппаратной платформы Crypto iButton подтолкнул разработчиков компании Dallas Semiconductor к идее создания для Crypto iButton новой ОС на основе Java. С помощью Java iButton огромная армия программистов, уже применяющих язык Java, может легко овладеть техникой написания апплетов, компилируемых стандартными средствами производства Sun Microsystems. Их нетрудно загрузить в устройство Java iButton и выполнять для поддержки разнообразных финансовых приложений.
Спецификация Java Card 2.0 дает возможность реализовать версию виртуальной машины Java (JVM) и среды выполнения даже в условиях ограниченных ресурсов и маленького микропроцессора. Кроме того, Crypto iButton представляет собой превосходную аппаратную платформу для выполнения Java-приложений, поскольку для хранения программ и данных используется память NVRAM. Обладая 6 Кбайт памяти NVRAM и имея потенциальную возможность для ее расширения до 128 Кбайт в существующем конструктиве iButton, Crypto iButton может выполнять Java с относительно большим Java-стеком в памяти NVRAM. При выполнении команд процессором эта память действует как обычная быстродействующая оперативная память, а литиевая батарейка обеспечивает запоминание полного состояния машины, даже когда устройство Java Ring отключается от считывателя. Таким образом, отпадает необходимость в какой-то специальной обработке постоянных объектов - они и так являются постоянными независимо от области действия. Программист может полностью управлять существованием объектов. Как и в стандартной среде Java, Java iButton содержит "сборщик мусора", используемый для удаления объектов с истекшим сроком (или областью) существования и повторного использования памяти. Апплеты можно загружать и выгружать из Java iButton так часто, как того требуют условия. Пока устройство iButton не касается приемного узла Blue Dot, все апплеты в Java iButton по существу выполняются "с нулевой скоростью".
После выхода спецификации Java Card 2.0 компания Dallas Semiconductor приобрела на нее лицензию у JavaSoft. Подписанное сторонами соглашение предусматривало создание реализаций Java Card 2.0, а также создание "дополнительных компонентов", оптимально использующих уникальные возможности памяти NVRAM устройств Crypto iButton, в числе которых поддержка истинного стека Java и "сборка мусора". Кроме постоянно работающих часов, питаемых литиевой батарейкой, и быстродействующего блока возведения в степень, реализация Java iButton спецификации Java Card 2.0 и дополнительные компоненты открывают возможности для создания эффективного набора средств для усовершенствованных приложений Java Card.
ХРАНИТЕ ВАШИ ДЕНЕЖКИ...
Аппаратная платформа Crypto iButton предлагает великолепный набор средств, специально созданных для предотвращения доступа хакеров к секретным ключам и другой конфиденциальной информации. Детали внутренней конструкции Crypto iButton представлены на рисунке. Кремниевый кристалл, содержащий процессор, ПЗУ и память NVRAM, сплавлен с окружающей защитной основой, сквозь которую проходят электрические контакты. Вместе с технологией трехслойной металлической конструкции, примененной при изготовлении кремниевого кристалла, обеспечивается надежная защита хранящихся в памяти NVRAM данных. При попытке проникнуть сквозь эти барьеры данные NVRAM немедленно стираются. Такая технология наряду с применением NVRAM для хранения секретных ключей и других конфиденциальных данных обеспечивает более высокую степень защиты данных, чем можно достичь в памяти EEPROM. Ограниченность связи Crypto iButton с "внешним миром" одной шиной данных создает дополнительную защиту против атак хакеров, сокращая диапазон доступных для "взломщиков аппаратуры" сигналов.
Кроме того, сам процессор управляется нестабилизированным кольцевым генератором, работающим в диапазоне от 10 до 20 МГц, поэтому тактовая частота процессора непостоянна, и внешними средствами определить ее невозможно. Подобный подход отличается от архитектуры альтернативных устройств, где сигнал тактовой частоты процессора генерируется считывателем и, таким образом, точно определяется процессором хост-системы. Внешнее управление синхронизацией - ценный инструмент для хакеров, так как они могут циклически "прогонять" процессор до нужной точки выполнения, применяя то же число тактовых циклов. Кроме того, внешнее управление тактовой частотой позволяет сгенерировать ошибку вычислений и таким способом получить информацию, раскрывающую секретные ключи шифрования. Работу часов в Java iButton обеспечивает 32-КГц кристалл-генератор. Он генерирует постоянную и хорошо контролируемую частоту, независимую от тактовой частоты процессора.
ЗАКЛЮЧЕНИЕ
Компания Dallas Semiconductor произвела более 20 млн. физически защищенных устройств памяти и компьютеров с прочным корпусом, оптимизированных для личного пользования. Java iButton представляет собой последнее и наиболее сложное устройство в целом семействе продуктов, доказавших возможность их успешного применения. Прочный корпус из нержавеющей стали обеспечивает им долговечность и способность выдержать самое небрежное обращение. Конструктив iButton позволяет встраивать это устройство в личные вещи, будь то брелки для ключей, бумажники, часы, ожерелья, браслеты или перстни. Таким образом, пользователь может выбрать для себя тот вариант, который более всего соответствует его вкусам и стилю жизни. Устройство Java iButton имеет 32-килобайтовую среду выполнения JCE (Java Card Environment) и подсистему ввода вывода в масочно-программируемом ПЗУ, непрерывно работающие часы реального времени и 6 Кбайт памяти NVRAM, расширяемой до 128 Кбайт. Оно поддерживает истинный стек Java, полные 32-разрядные целые значения Java и "сборку мусора". Такой набор средств обеспечивает выполнение достаточно мощных апплетов Java с существенными требованиями к вычислительным ресурсам.
Хотя Java iButton уже позволяет реализовать модели коммерции с использованием кредитных карточек, самые многообещающие перспективы в отношении этого устройства связаны с областью Internet, точнее с приложениями, где необходима надежная поддержка удаленной аутентификации и санкционированных удаленных финансовых операций. Применение технологии Java гарантирует совместимость таких приложений и предлагает общий язык для их программирования.
На прошлогодней выставке Java Internet Business Expo глава Sun Microsystems Скотт Макнили продемонстрировал одну из первых моделей устройства Java Ring, открыв с его помощью дверь на сцену, где проходила презентация. Это событие представляется глубоко символичным: в сущности, технология Java, реализуемая в устройствах самых разных форм и размеров, действительно открывает двери в будущее и создает колоссальные возможности для осуществления поистине персональных вычислений в новую информационную эпоху.
Стивен Карри руководит группой разработки программного и микропрограммного обеспечения для Java iButton в компании Dallas Semiconductor. С ним можно связаться по адресу stephen.curry@javaworld.com.
Ресурсы
http://www.ibutton.com
http://www.iButton.com/crypto