4.4. Радиочастотные идентификаторы

 

В настоящее время для бесконтактной идентификации объектов наряду со штриховыми кодами все шире применяется радиочастотная идентификация (Radio Frequency IDentification RFID). В состав типовой системы, использующей радиочастотную идентификацию, входят:

радиочастотные метки или транспондеры (Tag, Transponder);

считыватель информации с радиочастотных меток (Reader);

устройство обработки информации. Основным преимуществом такой системы является наличие устройств дистанционного автоматического сбора информации, что позволяет исключить ошибки оператора.

Радиочастотный идентификатор обычно включает в себя приемник, передатчик, антенну и устройство для хранения информации (память). В ряде случаев в состав идентификатора входит источник электропитания.

Считыватель содержит передатчик и антенну, излучающую электромагнитное поле заданной частоты. Находящиеся в зоне действия считывающего поля радиочастотные метки отвечают на той же самой или другой выделенной частоте. Сигнал метки принимается антенной считывателя, расшифровывается и передается в компьютер для последующей обработки.

Радиочастотные метки различают по следующим группам параметров:

диапазон рабочих частот;

способ записи информации в резидентную память;

наличие автономной системы электропитания.

Согласно действующим нормативам разрешено использовать несколько диапазонов радиочастот для обмена информацией между радиочастотной меткой и считывающим устройством. В настоящее время существуют низкочастотные метки, работающие в диапазоне частот 100...500 КГц; среднечастотные, использующие частотный диапазон 3...30 МГц и высокочастотные с рабочими частотами в диапазонах 850...950 МГц и 2,45...9,0 ГГц.

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

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

Способ записи информации в радиочастотные идентификаторы зависит от типа памяти используемой интегральной микросхемы и от возможностей доступа для записи информации. В связи с этим идентификаторы подразделяются на 2 группы:

1-я группа используется память типа Read Only RO, данные в которую заносятся изготовителем и не могут быть изменены в процессе эксплуатации;

2-я группа в другом используется память типа Write Once Read Мапу WORM (в такие идентификаторы необходимая информация однократно записывается пользователем) или память типа Read/Write R/W с многократной записью и многократным считыванием информации.

Идентификаторы с встроенными автономными источниками питания называются активными, без автономных источников пассивными. Дальность считывания информации активных идентификаторов не зависит от мощности излучения считывателя. Пассивные радиочастотные идентификаторы получают необходимую для функционирования энергию за счет преобразования принятых сигналов, излучаемых терминалом (считывающим устройством). Поэтому дальность достоверного обмена информацией зависит от излучаемой им мощности.

Системы радиочастотной идентификации позволяют:

при необходимости модифицировать данные, используемые для идентификации;

записывать в идентификатор значительный объём данных;

кодировать данные, записываемые в идентификатор.

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

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

Международным органом по стандартизации в области радиочастотной идентификации (RFID) является Рабочая группа № 4 (WG4), которая была образована в 1997 г. в составе подкомитета по автоматической идентификации (SC31) объединенного технического комитета №1 Международной организации по стандартизации ISO, которая приступила к разработке стандартов радиочастотных систем, гарантирующих их совместимость. Первым результатом работы Группы явилась стандартизация бесконтактного интерфейса (air interface ) между считывателем и радиочастотной меткой. На этом этапе были стандартизированы рабочие частоты, физические характеристики среды и сигналы, которыми обмениваются считыватели и метки (транспондеры). Разработкой стандартов "air interface" занимается специальная группа TF3 в составе ISO. В работе группы ФС4/TF3 наряду с Австрией, Германией, Данией, США, Францией и Японией принимают участие представители России, где производится целая гамма различных идентификаторов [47].

 

Глава 5. ОСОБЕННОСТИ ОПЕРАЦИОННЫХ СИСТЕМ "СМАРТ-КАРТ"

 

5.1. Развитие операционных систем

 

На ранних этапах развития технологии смарт-карт разрабатывалось программное обеспечение, ориентированное на конкретные пользовательские приложения. Программы, созданные для микропроцессоров смарт-карт 80-х годов, хранились в памяти типа ROM. Однако, так как производство маск-программируемой памяти типа ROM дорогостоящий и длительный процесс, возникла необходимость в универсализации основных процедур для создания программного обеспечения с использованием памяти типа EEPROM. Применение программ на базе памяти типа ROM оправдано только в случае крупносерийного выпуска микропроцессоров для конкретных приложений [38, 43].

Специализированные программы непрерывно обобщались и расширялись, что привело к созданию гибкой универсальной операционной системы, основанной на стандартных командах, пригодных для использования в приложениях путем модификации.

Следующим шагом в развитии операционных систем смарт карт" стал переход к более открытой архитектуре. Современные операционные системы обеспечивают менеджмент памяти, имеют систему структур файлов и автоматы состояний, что позволяет независимо управлять несколькими приложениями и приближает их по возможностям к многофункциональным операционным системам. В отличие от общеизвестных операционных систем системы смарт-карт не имеют пользовательских интерфейсов или доступа к внешним устройствам памяти. Основными приоритетами такой операционной системы являются безопасное выполнение программы и защита от несанкционированного доступа к данным.

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

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

Операционная система смарт-карт должна отвечать требованиям по низкому содержанию ошибок, должна быть простой и надежной, а внешние команды не должны нарушать ее функционирование и снижать уровень защищенности.

На реализацию определённых системных функций в смарт-картах влияет используемая аппаратная часть. Например, счётчики ошибок должны быть устроены таким образом, чтобы состояние их переполнения совпадало с моментом очистки памяти типа EEPROM, что исключает сброс счётчиков при отключениях источника электропитания.

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

Операционная система смарт-карт ориентирована на следующие основные задачи:

передачу данных в карту и из карты;

контроль выполнения команд;

управление данными;

управление выполнением криптографических алгоритмов. Типичная обработка команд в рамках операционной системы смарт-карт производится в следующей последовательности. Команды поступают в карту через последовательный интерфейс I/О. При необходимости менеджер входа "I/О" выполняет распознавание и коррекцию ошибок независимо от последующих операций более высокого уровня. После получения полной, свободной от ошибок команды менеджер защиты сообщений может декодировать её или проверить на целостность. Если попытка интерпретатора команд ее декодировать заканчивается неуспешно, вызывается менеджер кода возврата, который генерирует соответствующий код и направляет его через менеджера входа "I/О" на терминал, в который введена карта. Если команда декодирована, менеджер логического канала выбирает соответствующий канал, переключается на него и, в случае успеха, вызывает автомат состояний, который проверяет, разрешена ли посланная в карту команда с установленными параметрами. При положительном ответе выполняется программный код команды приложения.

Если команда запрещена, терминал получает код возврата через менеджера входа "I/О". Если во время исполнения команды необходимо получить доступ к файлу, это организуется через менеджера файлов, который преобразует логические адреса микропроцессора в физические. Он также осуществляет контроль адресной области и проверяет условия доступа. Менеджер файлов использует следующий уровень менеджер памяти, управляющий физической адресацией памяти типа EEPROM. Генерация кода возврата реализуется центральным менеджером кода возврата, который вырабатывает полный ответ для каждой программной секции.

Кроме команд приложения может использоваться тестовая программа, которая осуществляет контроль над программами, содержащимися в файлах, и выполняет или интерпретирует их.

 

5.2. Оптимизация использования ресурсов памяти

 

Объём памяти в смарт-картах жёстко ограничен и это, зачастую, исключает реализацию стандартных для операционных систем ПК команд и структур файлов. По этой причине для операционных систем "смарт-карт были введены так называемые профили смарт-карт EN 726-3 и ISO/IEC 7816-4. Каждый из них определяет поднабор команд и структуры файлов для соответствующих стандартов. Приведённый в них перечень команд является необходимым минимумом для смарт-карт данного профиля. Однако описание пяти профилей карт является только рекомендацией для разработчиков систем.

Время существования операционной системы смарт-карт делится на два периода до, и после установки. При этом до установки системы в память микропроцессора вводятся все разделы программы, предназначенные для памяти типа ROM, а память типа EEPROM остаётся незаполненной, данные из неё не считываются и программы не выполняются. Если обнаруживается наличие ошибок в памяти типа ROM, установка операционной системы становится невозможной и вся партия микропроцессоров уничтожается.

Для снижения вероятности возникновения некорректируемых ошибок можно было бы записать в память типа ROM компактную загрузочную программу для памяти типа EEPROM, а затем загрузить в нее операционную систему. Но так как площадь, приходящаяся на 1 бит информации в памяти типа EEPROM, в 4 раза больше, чем в памяти типа ROM, то это скажется на цене микросхемы. По этой причине в память типа ROM записывается максимально возможное число данных. Одновременно сохраняется возможность ограниченного числа обращений к памяти типа EEPROM. Отдельные системы работают исключительно с памятью типа ROM и после установки системы, а в памяти типа EEPROM хранят только информацию, обеспечивающую минимизацию используемых объёмов дорогостоящего типа памяти, что, однако, ограничивает гибкость системы в целом.

Во время установки операционной системы блоки памяти типа ROM адаптируются под конкретные приложения. Память типа ROM является объёмной библиотекой, которая может расширяться и связываться с функциональным приложением путем использования памяти типа EEPROM. Как правило, современные операционные системы позволяют впоследствии загружать в память типа EEPROM программные коды для команд или специальных криптографических алгоритмов.

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

Память типа RAM функционирует при подаче на карту электропитания, пропадание которого приводит к полной потере данных в памяти. Информация в память типа RAM может записываться на максимальной рабочей скорости и уничтожаться неограниченное число раз.

Память типа EEPROM может хранить данные без внешнего источника питания. Однако у неё есть три недостатка: ограниченный срок службы; большое время, необходимое для реализации процедуры записи и стирания информации (около 1 мс/байт); блочная структура.

Программные коды для операционной системы, хранящиеся в памяти типа ROM, управляются только командами прерывания. Индивидуальные программные блоки для минимизации расстояния между программными переходами могут объединяться произвольно, что позволяет экономить объём памяти.

Типичное деление ресурсов 256-байтной памяти типа RAM предусматривает области, предназначенные для регистра, стека, общих переменных, рабочего пространства для криптографических алгоритмов и буфера входа "I/О". Если, например, требуется 256 байтный буфер для информации, поступающей по входу "I/О", или нужно записать в память типа RAM дополнительные переменные, свободное место в памяти быстро исчерпывается. Проблема решается с помощью рабочего пространства, имеющегося в памяти типа EEPROM, которая используется как память типа RAM. Недостатком такого варианта организации памяти является большое время записи, превышающее время доступа к ресурсам памяти типа RAM. Другим недостатком является ограниченный срок службы ячеек памяти типа EEPROM, в которые, в отличие от ячеек памяти типа RAM, нельзя записывать информацию неограниченное число раз.

Структура памяти типа EEPROM является более сложной и по этой причине более дорогостоящей, чем в двух других типах памяти, используемых в смарт-картах. В современных операционных системах, как правило, промежуточные данные, например, используемые однократно, записываются в блок, расположенный в начале памяти типа EEPROM, в зону, имеющую аппаратную защиту. Зачастую она предназначена только для реализации функции доступа WORM (Write Once, Read Маny однократная запись, многократное чтение).

После этого блока следуют таблицы и системные пойнтеры. Они загружаются в память типа EEPROM во время установки операционной системы. Для обеспечения работы в защищённых условиях информация сопровождается контрольной суммой (EDC), которая вычисляется перед каждым доступом. Обнаружение ошибки в блоках памяти во время проверки приводит к тому, что в дальнейшем они не используются, а доступ к ним закрывается.

За блоком защиты системы следует блок, содержащий коды дополнительных программ приложений, который также может защищаться контрольной суммой. В этом блоке могут содержаться необходимые команды или алгоритмы, которые не обязательно хранить в памяти типа ROM, или которые не были загружены в неё по причине недостаточного объема памяти.

Следующий блок содержит файловые древовидные структуры. Он не защищается контрольной суммой, но обычно имеет файл ориентированную защиту.

В памяти типа EEPROM могут наличествовать свободные блоки памяти, администрируемые внутренним менеджером. Однако она в основном предназначена для индивидуальных приложений, содержащихся в файловом блоке, и может быть использована для создания новых файлов.

 

5.3. Особенности организации структуры файлов

 

Фундаментальным принципом организации памяти в пределах файлового блока является то, что операционная система может контролировать использование памяти в установленных границах в рамках конкретных приложений. Кроме чисто программного решения контроль используемой памяти обеспечивается модулем MMU (Memory Management Unit блок менеджмента памяти) процессора. Современные операционные системы дают возможность установки новых файлов после их персонализации.

При удалении файла занимаемый им объём переходит к свободной памяти. При таком разбиении на файловую и свободную память объем памяти, использовавшийся файлом, после его стирания может быть перенесен в свободную область (рис.5.1). Такая ситуация ограничивает возможности менеджмента памяти. Предпочтительным был бы менеджмент памяти с двумя связанными списками: один для используемой памяти, а второй для свободной.

Кроме того, что операционная система смарт-карт имеет функции идентификации и опознавания, в ней хранится информация, например, тарифный ресурс. Первые карты имели прямую адресацию памяти при записи и считывании

 

 

 

данных, для чего требовалось наличие ее физической адресации. Современные карты имеют иерархически организованные системы менеджмента файлов. Менеджеры файлов обладают свойствами, специфическими для смарт-карт, файлы адресуются шестнадцатеричным кодом. Выполнение прочих команд также основано на непосредственном взаимодействии во время информационного обмена между картой и терминалом.

Важным свойством менеджеров файлов является предусмотренная минимизация объёмов используемой памяти для ограничения доступа к её ресурсам. При удалении файла свободное место не обязательно может быть занято новым файлом. Как правило, они создаются во время инициализации или при персонализации карты. Свойства используемых типов памяти влияют на организацию менеджмента файлов. Например, в блоках памяти типа EEPROM можно производить запись и стирание данных ограниченное число раз. По этой причине предусматриваются специальные атрибуты файлов для хранения избыточной скорректированной информации. Современные версии операционных систем смарт-карт являются, обычно, объектно-ориентированными, в них файлы разделены на две части. Первая часть заголовок содержит данные о структуре файла и условиях доступа, а вторая непосредственно информацию. Помимо улучшения структурирования данных такой подход обеспечивает физическую защиту информации. Память типа EEPROM, в которой хранятся файлы, разделена на два блока.   Заголовок и тело файла хранятся в различных блоках памяти. Как правило, заголовок, который содержит условия доступа, не модифицируется, а ошибка записи или стирания информации в теле файла не влияет на него. Если бы заголовок и тело находились в едином блоке памяти типа EEPROM, было бы возможно изменить условия доступа к её ресурсам путём преднамеренной ошибки записи информации и конфиденциальные данные могли быть считаны из тела файла. Структура файлов операционной системы смарт-карт установлена стандартом ISO/IEC 7816-4 и подобна используемой в операционных системах DOS или UNIX. Существуют различные директории, которые служат папками и могут содержать несколько связанных файлов. Корневая директория, неявно выбираемая после "сброса" карты (установки в исходное состояние), называется мастер-файл Master File (MF). Она содержит все прочие директории и файлы и контролирует память, выделенную в карте для записи файлов. На следующем уровне предусмотрено использование специализированных файлов Dedicated Files (DF), которые также могут содержать специализированные файлы. Ограниченность объёма памяти смарт-карт, как правило, определяет существование единственного уровня директории. Директория пользовательских данных предназначена для приложений, содержащихся в элементарных файлах Elementary Files (EF), которые могут быть расположены непосредственно под уровнем директории MF или внутри уровня директории DF. Операционная система также поддерживает различные внутренние структуры файлов ЕЕ В дополнение имеются внутрисистемные файлы с данными как для операционной системы, так и для выполнения приложений, а также с секретными ключами, доступ к которым особо защищён операционной системой. Имеются два способа интеграции внутрисистемных файлов в менеджер файлов. В соответствии со стандартом ISO такие файлы маскируются в директории DF соответствующего приложения и доступ к ним закрыт. В модели ETSI таким системным файлам присваиваются файловые идентификаторы File Identifier (FID).

На более низких уровнях под DF-приложением могут присутствовать дополнительные файлы этой директории. Например, файл DF, предназначенный для приложения система менеджмента трафиком, может находиться сразу под директорией MF. Следующие вложения в файлы DF-приложения могут содержать, например, варианты языковой поддержки, для которых выделены собственные файлы DF.

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

Адресное пространство с файловыми именами (FID) может оказаться мало. Поэтому кроме идентификаторов FID директории DF имеют идентификатор приложения Application Identifier (AID). Он может иметь объём от 5 до 16 байт и состоит из двух блоков данных, определяемых стандартом ISO.

Объектно-ориентированные системы менеджмента файлов требуют выбора конкретного файла для доступа к нему. Выбор нового файла автоматически приводит к отмене предыдущего обращения, т.е. в данный момент может быть выбран единственный файл. Из-за свободного выбора файловых имён на адресуемость файлов должны быть наложены некоторые ограничения для исключения ситуации, когда в дереве файлов одновременно окажется несколько доступных для выбора файлов, имеющих одинаковый идентификатор FID.

В отличие от файлов операционной системы DOS, файлы EF имеют внутреннюю структуру, которая может быть выбрана индивидуально для каждого файла EF в зависимости от его назначения. Такая организация файловой структуры даёт возможность сформировать данные таким образом, чтобы сократилось время доступа к ним.

Все файлы содержат данные, регулирующие доступ к ним в рамках системы менеджмента файлов, и с этой целью в заголовки файлов вводятся соответствующие коды. Все возможные типы доступа к файлам EF определяются соответствующими правами доступа.

Число соответствующих команд и их перечень варьируются в зависимости от типа конкретной операционной системы.

В объектно-ориентированном определении все файлы EF имеют специальные атрибуты для уточнения дополнительных свойств. Они зависят от операционной системы и области применения карты. Атрибуты определяют свойства файлов EF, которые в основном относятся к среде хранения памяти типа EEPROM. Это связано с потенциальной возможностью возникновения ошибок при записи информации. Атрибуты присваиваются при создании файлов и, как правило, не модифицируются.

В их число входят: атрибуты однократной записи с многократным чтением WORM (Write Once, Read Many) и многократной записи, а также атрибут для использования кода обнаружения ошибок (EDC).

В области систем GSM используется атрибут "высокой частоты обновления", существующий исключительно по причине ограниченности числа циклов записи/чтения в память типа EEPROM. В файлы с этим атрибутом можно многократно без ошибок записывать информацию, что достигается применением многократной записи и мажоритарных решений. Обычно применяется тройная параллельная запись данных и мажоритарное решение 2 из 3 при считывании.

Атрибут для обнаружения ошибок используется для контроля критичной к ошибкам информации с помощью кода обнаружения ошибок Error Detection Code (EDC). Такая мера позволяет, по крайней мере, обнаружить инверсию информационных символов в памяти типа EEPROM. EDC-защита в комбинации с многократной записью данных также позволяет корректировать ошибки. Возможности кода коррекции ошибок Error Correction Code (ЕСС) используются, в основном, в области электронных платежей.

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

Данные, содержащиеся в описании файла, зависят от возможностей, предлагаемых менеджером файлов. Однако в описании файла всегда должна присутствовать информация об имени, типе, структуре и размере файла, условиях доступа, атрибуте и соединении с деревом файлов. Если все основные свойства файла описаны, операционной системе необходима подробная информация об условиях доступа, т.е. по каким командам и в каком состоянии к нему можно получить доступ.

Могут быть также определены специальные атрибуты, такие как высокая частота обновления, WORM или EDC-защита. Всё вышеизложенное относится к файлу как объекту. Для определения положения файла в древовидной структуре внутри директорий MF или DF необходимы также несколько пойнтеров.

            Проблема, с которой сталкивается менеджер файлов это ограниченное число циклов записи/стирания в память типа EEPROM и ее разделение на отдельные блоки. Эти ограничения влияют на структуру менеджера файлов и самих файлов. Поэтому данные, касающиеся управления файлами, должны быть отделены в памяти от основного содержания, иначе может произойти нежелательное взаимодействие между данными в заголовке и пользовательской информацией, в результате чего может быть разрушена структура защиты в операционной системе карты. Если условия доступа к файлу являются секретными и нечитаемые ключи содержатся в том же блоке памяти, что и общедоступные для записи и считывания пользовательские данные другого файла, то это повлияет на условия доступа, записанные в том же блоке памяти.

Малый объем памяти смарт-карт накладывает значительные ограничения на свободный менеджмент памяти типа EEPROM. Однако появились системы, в рамках которых можно создавать или удалять файлы после персонализации карты. Вместе с тем, полностью свободный менеджмент памяти с назначением, перемещением файлов и освобождением областей памяти применяться не может из-за ограниченности её объёмов, используемых для хранения программного обеспечения.

Если в операционную систему "смарт-карт" необходимо внедрить автомат состояний, это можно сделать различными способами. В послойной модели операционной системы автомат состояний должен располагаться после интерпретатора команды и до команды её исполнения. Его задачей является определение в соответствии с таблицей может ли команда быть исполнена в данном состоянии. Автомату состояний требуется определённая информация для анализа команд, содержащихся в буфере I/О, которая с учётом специфики технологий смарт-карт должна быть структурирована так, чтобы его можно было реализовать с использованием минимума памяти.

Особое место в операционной системе "смарт-карт" занимают процедуры, которые всегда должны выполняться полностью. Неделимые процедуры, удовлетворяющие этому требованию, называются аварийными и связаны с процессом записи информации в память типа EEPROM.

Например, в случае, если пользователь несвоевременно извлечёт карту из терминала или при пропадании электропитания, т.е. когда программа работы будет прервана, необходимо удостовериться, что соответствующие данные записаны в неё в полном объеме. В случае электронных платежей с помощью смарт-карт ввод данных в файл должен быть полным и правильным при любых обстоятельствах. Недопустимо, если при извлечении карты из терминала баланс будет сведён не полностью. Так как аппаратная часть смарт-карт не поддерживает аварийные процедуры, то они должны быть реализованы программным способом.

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

Целесообразность использования программных кодов определяется также возможностью исправления ошибок программирования в персонализированных картах.

 

5.4. Набор команд

 

Процесс взаимодействия между терминалом и смарт-картой основан на процедуре “запрос-ответ”. Таким образом, карта направляет данные на терминал только по получении от него команды. Выполнение команды ATR также не является исключением из этого правила, так как она выполняется как ответ карты на “сброс”, т.е. установку в исходное состояние.

Процесс взаимодействия карты и терминала всегда происходит в рамках выбранного протокола передачи, а именно Т=0 или Т=1. Эти несложные протоколы отвечают специальным требованиям, выдвигаемым приложениями смарт-карт. Отклонения от этих точно определённых протоколов во время выполнения картой конкретного приложения не допускаются. Протоколы позволяют организовать информационный обмен с картой способом, который прозрачен с позиций слоя передачи. Данные организуются в контейнер, называемый Блоком Данных Протокола Приложения (Application Protocol Data Unit, APDU). Соответствующий блок данных APDU, направленный терминалом на карту, содержит команды, управляющие её функционированием. Сформированные картой ответы также оформляются в виде APDU в рамках протокола передачи. Эти механизмы образуют базис, который управляет процессами, происходящими в карте, включая чтение или запись команд, связанных с хранящимися в ней файлами.

В приложениях смарт-карт файлы используются для хранения данных и записи кодов доступов. Это привело к созданию наборов команд, специально оптимизированных для этих требований, и специализированных протоколов передачи. Из-за крайней ограниченности объемов памяти смарт-карт и необходимости ее оптимизации по экономическим соображениям, набор команд обычно ориентирован на конкретное приложение. Все команды, которые не используются в данном приложении, исключаются во время процесса оптимизации. Только отдельные операционные системы имеют полный набор команд, который не ориентирован на конкретное применение. Такие карты, естественно, дороже, производятся малыми сериями и используются в фазе создания прототипа при работе над большими проектами.

Другой особенностью, типичной для набора команд смарт-карт и распространённой в новых технологиях, является возможность расширения набора команд. Каждый производитель смарт-карт ищет возможности создания уникальных команд для операционной системы или для разрабатываемого приложения. Зачастую это приходится делать из-за отсутствия функциональных аналогов в существующих стандартах.

В ряде случаев создаются сложные команды, оптимизированные с точки зрения функциональности и использования памяти. Выбор состава команд должен осуществляться дистрибьютором системы. Очевидно, что решение в пользу команд, базирующихся на существующих стандартах, предпочтительно для открытых, развивающихся систем, таких, где многие приложения могут быть объединены в одной карте. С другой стороны, имеется множество примеров, где применение смарт-карт оказалось возможным, в первую очередь, благодаря использованию хорошо оптимизированных специальных команд.

Существуют четыре основных международных стандарта, определяющие типичные наборы команд смарт-карт. Они описывают более 50 команд и соответствующих параметров их исполнения. Команды, определённые в этих стандартах, хорошо совместимы в смысле простоты формирования и функциональности.

Специальные команды, которые используются только в узких областях, не охватываются перечисленными стандартами, и поэтому должны быть определены индивидуально. Такая ситуация иллюстрируется на примере набора команд, определённых в проекте стандарта CEN prEN 1546. После его принятия он станет Европейским стандартом, объединяющим все команды, необходимые для электронных платежей, и параметры их исполнения. Такие стандарты, ограниченные единственным приложением, создаются только в областях, имеющих особую значимость для конкретного применения.

Команды в стандартах, описанных выше, могут быть классифицированы по функциям следующим образом:

выбор файла;

чтение и запись файла;

поиск файла;

операции с файлами;

идентификация;

опознавание;

выполнение криптографических алгоритмов;

менеджмент файлов;

команды для электронных кредитных/платёжных карт;

создание операционной системы;

тестирование аппаратной части смарт-карт;

специальные команды, реализуемые только в одиночных приложениях;

команды, поддерживающие протоколы передачи.

В настоящее время в реальных операционных системах смарт-карт реализован сокращённый набор перечисленных команд. В зависимости от создателя системы могут существовать те или иные отклонения от стандартов по функциональности и кодированию команд. Однако всегда предполагается, что сохраняются команды, которые обеспечивают выполнение основных функций системы.

По ориентировочным оценкам объем памяти, необходимый для хранения полного набора команд, в 3-4 раза превышает объём памяти, использующийся в настоящее время в типичной смарт-карте. Более того, смарт-карте, исходя из конкретного приложения, как правило, нет необходимости исполнять весь спектр команд. В то же время, в зависимости от конкретной области применения смарт-карт, некоторые классы команд могут поддерживаться более широко.

Многофункциональные карты имеют важное преимущество, заключающееся в том, что дополнительные приложения могут быть введены в них после персонализации. Например, карта, разработанная для приложений, использующих защитное кодирование, должна иметь полный набор криптографических команд с различными алгоритмами при условии, что имеется достаточный объём памяти для их хранения.

 

 

 

Глава 6. ПРОТОКОЛЫ ИНФОРМАЦИОННОГО ОБМЕНА МЕЖДУ КАРТОЙ И ТЕРМИНАЛОМ

 

6.1. Взаимодействие карты и терминала

 

Для обеспечения взаимодействия терминала с картой необходим двусторонний информационный обмен. Однако, так как имеется только один канал, по которому карта и терминал обмениваются цифровыми данными, то передавать их они могут по очереди: при работе одной стороны другая находится в режиме приёма. Такая процедура информационного обмена известна, как "полудуплексная".

Дуплексный обмен информацией, при котором обе стороны могут функционировать одновременно в режиме приема и передачи информации, в настоящее время в индустрии смарт-карт не используется. Однако, так как большинство процессоров смарт-карт имеют два порта I/О, а два из восьми контактов зарезервированы (например, для подключения второго входа I/О), полный дуплексный режим технически вполне реализуем. Такой режим в перспективе позволит вести диалог с картой в реальном масштабе времени.

Информационный обмен с картой всегда инициируется терминалом, а карта отвечает на полученные команды. Такое взаимодействие соответствует схеме клиент-сервер, где терминал выступает в роли сервера, а карта выполняет роль клиента [87].

Когда карта помещается в терминал, она подключаются к контактам, которые активизируются в последовательности, определённой стандартом ISO. При подаче электропитания в карте автоматически начинается процедура сброса и вырабатывается Ответ на сброс" (Answer То Reset, ATR), который поступает на терминал (рис.6.1). Терминал анализирует информацию ATR, определяющую различные параметры карты, и посылает первую команду. Карта обрабатывает команду и формирует ответ терминалу. Процесс обмена командами и соответствующими ответами продолжается до момента отключения карты.

 

Между данными ATR и первой командой, посылаемой в карту, терминал может также передать команду Выбора Типа Протокола (Protocol Туре Selection, PTS). Эта команда подобно информационному блоку ATR не зависит от протокола передачи и может использоваться терминалом для установки различных параметров передачи, относящихся к используемому типу протокола.

Процесс передачи данных в карту и из неё может быть представлен как часть модели слоя OSI (Open Systems Interconnections Взаимодействие открытых систем). При этом необходимо различать слой физической передачи в канале I/О, логические процедуры в действительном протоколе передачи и выполнение соответствующих приложений. Взаимодействие между этими слоями и их поведение определены рядом международных стандартов.

Функции асинхронных протоколов передачи, описываемые ниже, регулируются соответствующими стандартами, в которых определены необходимые параметры сигналов и их соотношения. Карта, как правило, не поддерживает весь спектр протоколов из-за ограниченности ресурсов памяти.

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

 

 

6.2. Слой «физической передачи

 

Слой физической передачи со всеми универсальными параметрами определён стандартом ISO/IEC 7816-3, который является фундаментальным стандартом для всех коммуникационных опций на физическом уровне.

Обмен данными со смарт-картами осуществляется в цифровой форме с логическими уровнями, общепринятыми в цифровой технологии, которые, как правило, составляют 0 и +5 В. В настоящее время внедряются новые микропроцессоры с электропитанием, имеющим напряжение 3 В. При создании систем со смарт-картами за уровень логической 1 может приниматься как высокий, так и низкий уровень напряжения. Выбор прямой или обратной логики индицируется в первом байте ATR. В исходном состоянии, когда данные не передаются, напряжение на выходе канала I/О имеет высокий уровень.

В системах со смарт-картами данные передаются в последовательной форме побайтно. Байт делится на восемь последовательно формируемых индивидуальных битов. Порядок следования битов определяется стандартами ISO. В прямом порядке (рис. 6.2 а) первым битом данных после стартового является младший бит. В случае обратного порядка сразу после стартового бита передается старший бит в байте (рис.6.2 б).

 

 

 

Передача данных между картой и терминалом происходит асинхронно, что означает, что каждый передаваемый байт сопровождается дополнительными битами синхронизации (рис.6.3). Начало каждого последовательно передаваемого байта сопровождается стартовым битом, который сигнализирует приёмной стороне о начале первой посылки в передаваемой информационной последовательности. В конце каждого байта передающая сторона добавляет бит четности для обнаружения ошибок и один или два стоповых бита. Время, относящееся к стоповому биту, определяется в протоколе Т = 0 как защитный интервал, который является разновидностью стопового бита. В течение этого временного интервала приёмная и передающая стороны имеют необходимое время для подготовки к обработке следующего передаваемого байта. Контрольная сумма каждого байта всегда должна быть чётной. Бит четности, таким образом, должен иметь логическое значение “1”, если число единиц в байте нечётное, и “0”, если это число чётное.

В составе микропроцессоров смарт-карт отсутствуют генераторы тактовой частоты. По этой причине они функционируют от внешних тактовых импульсов, и длительность информационной единицы (бита данных) не может быть оговорена в абсолютных единицах и определяется как функция подаваемой внешней тактовой частоты. В каждом конкретном случае определяется необходимый коэффициент деления подводимой частоты, который определяет число тактовых импульсов, приходящихся на 1 бит. Временной интервал, соответствующий длительности одного бита, определяется как элементарный промежуток времени etu (elementary time unit).

Поэтому не имеет смысла определять фиксированную скорость передачи данных (например, 9600 бит/с), так как она прямо пропорциональна подаваемой внешней тактовой частоте. Имеются два общепринятых коэффициента деления внешней тактовой частоты, один из которых имеет значение 372, а другой 512. Для увеличения скорости передачи некоторое время использовались меньшие коэффициенты деления, но в настоящее время они исключены. Следует ожидать, что ситуация изменится в ближайшем будущем, так как скорость передачи данных является узким местом при выполнении команд, подаваемых в операционной системе смарт-карт. При меньших коэффициентах деления появляются затруднения при приеме и обработке данных, так как при этом сокращается время выполнения этих задач процессором. При приёме данных с коэффициентом деления 256 процессор имеет всего 256 импульсов, в течение которых он должен проанализировать поступившую информационную единицу и ввести её в буфер входной информации I/О.

Для определения предельно допустимой скорости передачи при использовании стандартных делителей частоты сигналов синхронизации необходимо разделить значения тактовой частоты, подаваемой с терминала, на величину коэффициента деления.

Например, для общепринятых в телевизионной технике значений тактовых частот 3.5712 и 4.5712 МГц скорость передачи данных составляет 9600 бит/с. Необходимость получения стандартного значения скорости передачи данных 9600 бит/с является причиной использования неокруглённых значений коэффициентов деления. На первоначальных этапах внедрения технологии смарт-карт использовался ряд частот, на которые были рассчитаны широко доступные кварцевые генераторы. При этом применялись стандартные генераторы, выпускавшиеся для нужд телевидения, и уже исходя из этого определялись необходимые коэффициенты деления в картах для достижения стандартной скорости передачи 9600 бит/с.

Если в качестве исходного значения тактовой частоты принять 10 МГц, а в качестве наименьшего коэффициента деления 32, то можно получить верхний предел для скорости передачи информации: На байт информации приходится 1 стартовый бит, 1 бит четности и два стоповых бита.

Для увеличения скорости передачи информации можно уменьшить коэффициент деления. Однако это потребует значительных дополнительных издержек в отношении программных кодов карты, которые обычно не используются из-за ограниченности ресурсов памяти. Во многих новых поколениях смарт-карт обмен данными осуществляется через последовательный интерфейс с помощью встроенного в карту универсального асинхронного приемника/передатчика (модуля UART (Universal Asynchronous Receiver/Transmitter). Программа поддержки информационного обмена для этого типа карт предельно упрощена, а используемое техническое решение позволяет резко увеличить скорость передачи. В этом случае с помощью интерфейсного модуля, находящегося в микросхеме карты, достижима стандартная скорость передачи в Ш.6 кбит/с. Такая скорость передачи является верхним пределом для программного решения задачи передачи данных даже в условиях высокого темпа выполнения машинных команд микропроцессором.

Продолжительность одного бита информации можно вычислить, исходя из значений тактовой частоты и коэффициента деления. При тактовой частоте 3.5712 МГц и коэффициенте деления 372 его продолжительность равна 104 мкс, что составляет одну элементарную единицу времени при данном коэффициенте деления. Соответствующие графики представлены на рис. 6.4.

 

 

При таком способе передачи информации значение скорости передачи информации может отклоняться от номинального. Так как многие микропроцессоры смарт-карт не имеют модулей интерфейса, на практике иногда может быть разрешена определенная временная погрешность, корректируемая программно. Временная погрешность между моментом поступления заднего фронта стартового бита и последним фронтом n-ого бита информации не должна превышать величину 0.2 etu. С позиции передающей стороны это означает, что индивидуальный бит может иметь погрешность 0.2 etu, но большая погрешность не допустима даже для нескольких битов. Временные погрешности на единичном информационном интервале, следовательно, не могут в сумме превышать разрешённой погрешности.

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

 

 

периодическое тестирование. Типичная процедура включает три возможных режима захвата, что позволяет с малыми затратами компенсировать небольшие искажения в уровне сигнала (рис. 6.5).

 

6.3. Протоколы информационного обмена

 

6.3.1. Типы протоколов

 

После того, как карта направит данные ATR и произойдёт выбор типа протокола PTS, она переходит в режим ожидания первой команды от терминала. Последующая процедура всегда соответствует принципу клиент-сервер, где терминал является сервером, а карта клиентом. Терминал посылает команду карте, которая выполняет её и возвращает сформированный ответ.

Существуют различные варианты для структурирования информационного обмена смарт-карт. При нарушении процесса передачи предусмотрены процедуры для восстановления процесса информационного обмена. Конкретная реализация этих команд, соответствующих ответов и алгоритма, используемого в случае ошибок передачи, описаны в стандартах ISO/IEC 7816-3. Для использования в системах со смарт-картами предусмотрено 15 типов протоколов передачи с определением их основных функций. Протоколы обозначаются "Т=" плюс его порядковый номер (табл. 6.1).

Первые два типа этих протоколов в настоящее время широко используются во всём мире: протокол Т=0, стандартизированный

 

 

ISO/IEC 7816-3 в 1989 г., и протокол Т=1, стандартизированный как приложение к стандарту ISO/IEC 7816-3 в 1992 г. Целесообразно использовать полнодуплексный протокол T=2, основанный на протоколе Т=1.

Протокол Т=14 используется в Германии в телефонных картах и принят в качестве стандарта РВР Telecom.

Блоки данных, поддерживаемые протоколами передачи, называются TPDU (Transmission Protocol Data Unit Блок данных протокола передачи). Они являются зависимыми от выбранного типа протокола контейнерами, предназначенными для транспортировки данных при информационном обмене между картой и терминалом.

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

 

 

6.3.2. Синхронная передача данных

 

Синхронная передача данных ориентирована на карты с памятью, которые выпускаются в больших количествах для осуществления различных электронных платежей. Процедура синхронной передачи данных не используется в смарт-картах с микропроцессорами, которые взаимодействуют с терминалом только в асинхронном режиме.

Процедура синхронной передачи данных в картах с памятью увязана со структурой микросхемы карты и служит для упрощения информационного обмена. Синхронный протокол передачи не имеет разделения на слои, в нем отсутствует логическая адресация, так что приложение в терминале должно осуществлять непосредственную адресацию выбранных зон памяти микросхемы, а затем производить необходимые процедуры записи или считывания.

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

Протоколы синхронной передачи разнообразны и могут различаться в зависимости от типа используемой микросхемы карты. Стандартной остаётся только процедура ATR. Поэтому терминалы, рассчитанные на применение различных типов карт с памятью, должны поддерживать различные версии протоколов синхронной передачи.

Точное определение передачи данных карты с памятью может быть сформулировано как “последовательная передача данных, синхронизированная с тактовой частотой”. Исходя из него, вытекают условия, связанные с этим типом информационного обмена. В этом случае, как и для асинхронного протокола передачи информации, данные передаются между картой и терминалом последовательно. Они синхронизированы с подаваемыми на карту тактовыми импульсами, что исключает необходимость передачи стартовых и стоповых символов.

В упрощенных картах с памятью отсутствуют механизмы распознавания ошибок, и поэтому не передаётся бит четности и контрольная сумма. Однако малая вероятность ошибки в информационном потоке обеспечивает применение низкой скорости используемого синхросигнала, находящегося в пределах от 10 до 100 кГц. С учетом того, что на тактовом интервале передаётся один бит информации, при тактовой частоте в 20 кГц техническая скорость передачи информации будет равна 20 кбит/с. Эффективная скорость будет меньше из-за необходимости передачи дополнительной адресной информации.

Для детального описания процедуры синхронной передачи данных карт памяти следует учитывать принципы их построения. В простейшем случае такие карты имеют память, состоящую из двух частей: не модифицируемой памяти типа ROM и памяти, обеспечивающей запись/стирание информации, типа EEPROM, адресация данных в которых осуществляется побитно.

Проявление взаимоотношений клиент-сервер в картах с памятью выражено более явно, чем в микропроцессорных смарт-картах. Например, если терминал управляет физической адресацией памяти, то в карте могут быть заблокированы от стирания определённые области. Этот процесс контролируется аппаратной логикой, которая управляет доступом к ресурсам памяти.

Примером телефонной карты памяти является карта с микросхемой фирмы Siemens типа SLE4403. Память этой микросхемы является бит-ориентированной, предполагающей выполнение всех необходимых операций над индивидуальными битами информации. Для организации информационного обмена с другими типами микросхем могут потребоваться протоколы с иными характеристиками. Однако основные принципы передачи данных одинаковы для всех синхронных карт.

Для обеспечения информационного обмена между картой и терминалом используются три канала. Взаимный обмен данными между картой и терминалом организуется по двунаправленному каналу передачи данных. По каналу синхронизации в карту передаются импульсы, генерируемые терминалом. Третьим каналом, необходимым для обеспечения информационного обмена, является канал управления, который определяет текущую работу микросхемы.

Для управления картой с памятью необходима реализация четырех различных функций, которые должны распознаваться логикой микросхемы карты: чтение, запись, очистка памяти и увеличение адресного пойнтера. В картах с памятью используется глобальный пойнтер, с помощью которого все ресурсы ее памяти могут адресоваться побитно. При достижении пойнтером последнего адреса памяти происходит его возврат в исходное состояние, соответствующее первому её биту.

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

Адресация ресурсов памяти. Имеется несколько способов доступа к ресурсам памяти типа EEPROM. При применении одного из них, описываемого ниже, одновременно считывается один байт информации. Однако имеется возможность последовательного считывания нескольких байтов.

Процесс считывания информации инициируется стартовым сигналом (рис.6.6). За ним следует адрес карты, который задаёт режим записи информации и информирует карту о готовности занесения входной информации в буфер. Этот буфер является байт-ориентированным адресным пойнтером для памяти типа EEPROM. После получения

 

 

картой первого байта информации передаётся подтверждение на терминал. С этой целью на время, равное длительности тактового интервала, блокируется канал SDA. После этого терминалом посылается необходимый адрес памяти типа EEPROM и карта снова подтверждает приём информационного блока. Затем терминал передаёт стартовый сигнал и адрес памяти карты. В свою очередь, карта посылает на терминал данные, адресованные пойнтером. Терминалу нет необходимости подтверждать приём данных, он только направляет в карту стоповый сигнал, завершающий процесс считывания байта информации.

Запись информации. По аналогии с процедурами считывания данных из памяти типа EEPROM предусмотрены различные режимы записи информации. Простейшим из них является режим записи одиночного байта в произвольно выбранную область памяти (рис. 6.7).

 

 

Процесс записи начинается с приёма стартового сигнала от терминала, за которым следует информация, определяющая режим записи. Карта подтверждает приём информации, а затем получает от терминала адрес памяти типа EEPROM для осуществления записи информации. Карта подтверждает получение адресной информации, после чего принимает информацию, которую необходимо записать. После получения третьего подтверждения о приеме информации от карты терминал направляет на карту стоповый сигнал. Затем карта осуществляет запись принятых данных в память типа EEPROM, для функционирования которой не требуются сигналы синхронизации. На этом процедура записи информации завершается.

 

6.3.3. Протокол передачи типа Т = 0

 

Протокол передачи Т=0 формировался на первоначальных этапах развития технологии смарт-карт и поэтому разрабатывался, исходя из требований минимизации объёма памяти и максимальной простоты технической реализации. Этот протокол используется в SIM картах во всём мире и является самым распространённым из всех существующих протоколов для смарт-карт.

Протокол типа Т=0 является байт-ориентированным, а это значит, что минимальный объём информации равен 1 байту (рис.6.8).

 

 

 

Блок передаваемых данных состоит из заголовка, который включает байт класса, байт команды и три байта параметров. За этим блоком передаются данные. В противоположность блоку данных APDU (Application Protocol Data Unit Блок данных протокола приложения), по стандарту ISO/IEC 7816-4, в этом протоколе информацию об объёме передаваемых данных несёт параметр P3. Он определяет длину информационного блока, команды или ответа и также соответствует стандарту ISO/IEC 7816-3.

По причине байтовой ориентации протокола в случае обнаружения ошибки передачи ошибочный байт должен быть запрошен повторно. При использовании блоковых протоколов в случае ошибки целый блок данных, включающий последовательность байтов, должен быть послан повторно. Обнаружение ошибки передачи в протоколе типа Т=0 осуществляется с помощью бита четности, включаемого в каждый передаваемый байт. Ситуацию безошибочной передачи данных по каналу I/О с протоколом типа Т=0 иллюстрирует рис. 6.9.

 

 

При обнаружении приёмной стороной ошибки передачи на выходе канала I/О с середины первого бита защитного интервала, соответствующего ошибочному байту, должен быть установлен низкий логический уровень с продолжительностью 1 etu (рис.6.10). В результате терминал получает сигнал о необходимости повторной передачи последнего байта.

 

Эта процедура имеет существенный недостаток, связанный с тем, что большинство интерфейсных модулей воспринимает временной интервал etu как наименьшую обнаруживаемую единиц и поэтому не может распознать низкий уровень в канала I/О, если он устанавливается в середине стопового бита. Поэтому в этом случае стандартные интерфейсные модули не могут быть использованы.

Протокол типа Т=0 обеспечивает режим включения и выключения внешнего напряжения программирования для EEPROM или EPROM. Для этого в принятый байт команды добавляется единица, и он возвращается в терминал в качестве байта подтверждения выполнения команды. По этой причине разрешено использование только чётных байтов команд, так как в противном случае этот механизм работать не будет.

Основной функцией защитного временного интервала является разделение индивидуальных файлов при передаче информации, что обеспечивает дополнительное время на выполнение необходимых функций, предусмотренных протоколом передачи.

Рассмотрим, например, ситуацию передачи команды от терминала на карту и последующий возврат данных кода ответа. Терминал передаёт в карту 5-байтный заголовок команды, состоящий из байта класса, байта команды и байтов Р1, Р2 и P3. Если он принимается безошибочно, карта посылает на терминал подтверждение (АСК, Acknowledge) в качестве процедурного байта (РВ, Procedure Byte), который закодирован как принятый байт команды. После приёма процедурного байта терминал посылает точное число байтов данных, заданное в байте P3. В результате карта получает полную команду, может ее выполнить и сформировать ответ на терминал.

Если в дополнение к 2-байтному возвратному коду ответ содержит данные, карта информирует терминал специальным возвратным кодом с указанием объёма данных в SW2. После приёма этого сообщения терминал посылает карте команду GET RESPONSE, которая состоит из заголовка команды и данных. После этого карта передает в терминал данные, сформированные после выполнения первой команды с возвратным кодом. Этим завершается информационный обмен для одной команды (табл. 6.2).

При посылке команды в карту, которая генерирует возвратный код без данных, функция GET RESPONSE не используется. Для выполнения операции выбора данных, относящихся к предыдущей команде, требуется новая команда от слоя приложения.

Описанные процедуры графически иллюстрирует рис. 6.11. Протокол Т=0 позволяет карте после приёма заголовка принимать индивидуальные байты данных. Для этого в качестве процедурного байта в терминал передается инвертированный байт команды, на который терминал отвечает байтом данных. Следующий байт данных передаётся после приёма нового процедурного байта. Побайтный информационный обмен будет продолжаться до тех пор, пока карта не получит полный объём данных или не направит на терминал

 

 

α обрабатываемая команда;

1 - исходное состояние;

2 - принятый заголовок с CLA, INS, Р1, P2, РЗ;

3 - ожидание данных (P3 = число байт);

4 - ожидание команд (заголовок с CLA, INS, Р1, P2, P3) (РЗ- объем данных);

5 - передача SW1, SW2/приём GET RESPONSE;

А - приём заголовка (5 байт);

В - данные (P3! = 0)?

С - имеющиеся данные, передача процедурных байтов в терминал;

D - принятые данные (РЗ = число байт);

Е - содержит ли команда данные? (т.е., идти ли по С и D)?

F - есть ли возвратный код (т.е., нет ошибок)?

С - передача SW1 и SWZ;

Н - передача возвратных кодов и SW1, SW2;

I - передача SW1 и SW2 (SW2 = число возвратных кодов);

J- приём команд (заголовок = 5 байт);

К - является ли принятая команда GET RESPONSE?

 

 

Не инвертированный байт команды в качестве процедурного байта. После этого терминал передаст карте оставшиеся байты, и она получит полную команду (табл. 6.3).

При выборе протокола передачи пользователь в основном заинтересован в достижимой скорости передачи данных и наличии механизмов обнаружения и коррекции ошибок.

При передаче байта информации, т.е. 8 бит, передаются 12 бит, в том числе 1 стартовый бит, 1 бит четности и 2 etu в качестве защитного временного интервала. При тактовой частоте 3.5712 МГц и коэффициенте деления 372 передача одного байта займёт 12 х 1 etu = 1.25 мс.

Механизм обнаружения ошибок, предусмотренный протоколом Т=0, предполагает введение проверочного бита чётности в конце каждого байта, что позволяет надежно распознавать одиночные ошибки в информационном сигнале, но парные ошибки при этом не обнаруживаются. Если байт в процессе передачи от терминала к карте утрачивается, карта блокируется, так как она находится в режиме ожидания поступления конкретного числа байтов, а режим прерывания с управлением частотой синхросигнала не предусмотрен. Выйти из этой ситуации можно, прекратив информационный обмен по команде терминала на сброс карты и начав новый сеанс информационного обмена с картой.

В ходе упрощенного информационного обмена характерное для данного протокола несущественное разделение между канальным и

 

 

транспортным слоями не приводит к возникновению проблем, что иллюстрируется созданным на его основе эффективным GSM приложением. Однако защищённая передача данных вызывает ряд затруднений. При частично кодированном заголовке и полностью кодированных данных использование данного протокола приводит к издержкам. Причиной этого является необходимость применения в качестве процедурного байта не кодированной команды.

Из-за отсутствия разделения слоёв и проблем, возникающих при ошибках в ходе информационной сессии, протокол Т=0 считается устаревшим. Однако следует учитывать, что в реальных условиях при связи между картой и терминалом ошибки практически никогда не возникают. Достижимая средняя скорость передачи, минимальные затраты на техническую реализацию и широкое распространение на рынке являются основными достоинствами данного типа протокола.

 

6.3.4. Протокол передачи типа Т=1

 

Протокол передачи типа Т=1 является асинхронным полудуплексным протоколом, базирующимся на стандарте ISO/IEC 7816-3 (Приложение 1). Протокол информационного обмена между картой и терминалом Т=1 принадлежит классу блоковых протоколов, в которых блок является наименьшим объёмом передаваемой информации.

Особенностью этого протокола является четкое разделение слоёв, он может быть классифицирован в эталонной модели OSI (Open Systems Interconnections Межсоединение открытых систем) как слой информационного обмена. Такое разделение слоёв означает, что данные, предназначенные для высших слоев, например, для приложений, могут обрабатываться коммуникационным слоем прозрачным образом.

Передача защищённой информации требует особо четкого разделения слоёв. Только при таких условиях кодированные пользовательские данные могут быть переданы по интерфейсу без использования различных специализированных приемов. Протокол Т=1 в настоящее время является единственным международным протоколом смарт-карт, который обеспечивает защищенную передачу данных.

Протокол передачи активируется после того, как карта пошлет информацию ATR или после успешного выполнения процедуры PTS. Первый информационный блок посылается терминалом, а следующий картой и т.д.

Протокол Т=1 также часто используется для обеспечения информационного обмена между терминалом и центральным процессором для передачи данных и сигналов управления.

Структура блока. Передаваемые блоки используются для двух различных целей: прозрачной передачи данных конкретного приложения и передачи данных управления используемого типа протокола, а также для выявления и исправления ошибок передачи (рис.6.12).

Информационные блоки начинаются полем пролога, за которым следует информационное поле, завершающееся полем эпилога. Поля пролога и эпилога являются обязательными и неизменными, а информационные поля опционными, содержащими данные для слоя приложения. Они могут содержать команду APDU для смарт-карты, или ответ, подтверждающий ее выполнение картой.

Различаются три принципиально разных типа блоков, используемых в протоколе типа Т=1:

информационные блоки (1-блоки), используемые для обмена данными слоев приложения;

блоки подтверждения приёма (К-блок), которые не содержат данных, информирующих терминал о результатах приема информации картой (подтверждение или отказ);

системные блоки (S-блоки), использующиеся для данных управления и относящиеся к используемому протоколу. В зависимости от конкретных данных управления они могут иметь информационное поле.

Поле пролога. Поле пролога состоит из трёх субполей: узлового адреса (Node Address, NAD), управляющего байта протокола (Protocol Control Byte, РСВ) и длины (LENgth, LEN). Поле пролога имеет объём 3 байта и содержит данные управления и пойнтинга для передаваемого блока.

Узловой адрес (NAD ). Первый байт в поле пролога называется узловым адресом или байтом NAD, который содержит узловые адреса приёма и передачи блока данных, закодированные в виде 3 бит. Если адресация не используется, соответствующий бит принимает нулевое значение. Совместимость с микропроцессорами предыдущих поколений может быть обеспечена за счет управления программирующим напряжением памяти типов EEPROM или EPROM. Однако такое управление не находит практического применения, так как в настоящее время смарт-карты имеют встроенный умножитель напряжения.

Поле PCB.  Субполем, следующим за узловым адресом, является управляющий байт протокола РСВ, который служит для управления протоколом передачи. Поле РСВ кодирует первый блок и необходимые дополнительные данные.

Поле LEN. Однобайтное поле 1.EN определяет в шестнадцатеричной форме длину информационного поля.

Информационное поле. В 1-блоке информационное поле служит контейнером для данных слоя приложения. Содержимое этого поля передаётся прозрачным образом, что означает его передачу без какого-либо анализа.

В S-блоке информационное поле используется для передачи данных для протокола передачи. Это исключительная ситуация, так как содержимое поля используется слоем передачи.

Размер информационного поля (в соответствии с ISO) лежит в пределах от "00" до "FE" (254) байта. Значение 'FF' (255) зарезервировано ISO для перспективного использования. Терминал и карта могут иметь различные объёмы 1-полей. Исходное значение объёма 1-поля терминала равно 32 байтам (IFSD Information Field Size for the interface Device Размер информационного поля для устройства интерфейса) и может быть изменено с помощью специального S-поля. Это исходное значение в 32 байта также относится и к карте (IFSC Information Field Size for the Card Размер информационного поля для карты), но его нельзя изменить по команде в ATR. На практике размер 1-поля и в терминале, и в карте находится в пределах от 50 до 140 байт.

Поле эпилога. Поле эпилога, передаваемое в конце блока, содержит код обнаружения ошибок, который охватывает все предыдущие байты в блоке. Процедура организована либо с LRC (Longitudinal Redundancy Check Проверка избыточности по длине кода), либо с CRC (Cyclic Redundancy Check цикличная проверка избыточности). Выбор способа обнаружения ошибок определяется интерфейсным символом ATR. Если тип кода обнаружения ошибок не задаётся, то по умолчанию используется метод LRC. В противном случае (в соответствии с ISO 3309) выполняется вычисление CRC. Применяемый многочлен G(x) = x16 + х12 + х5 + 1 идентичен нормам ССIТТ Рекомендации V41. Оба кода обнаружения ошибок могут использоваться только для выявления ошибок и не способны их исправить.

Однобайтная проверочная сумма вычисляется применением операции XOR ко всем байтам данного блока. Вычисления должны производиться оперативно в процессе передачи или приёма информации.

Использование процедуры CRС обеспечивает гораздо большую вероятность выявления ошибок, чем упрощенная процедура определения контрольной суммы XOR. Тем не менее, на практике этот подход используется редко, так как на её выполнение требуются значительные временные затраты.

Счётчик последовательностей приём/передача. Каждый информационный блок в протоколе Т=1 снабжён номером последовательности передачи, состоящим только из одного бита, и содержится в байте РСВ. Счётчик последовательностей передачи N(S) имеет нулевое начальное значение при инициализации протокола. Счётчики терминала и смарт-карты функционируют независимо.

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

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

Временные интервалы ожидания символа ( Character Waitina Time. CWT). Временной интервал ожидания символа определяется как интервал между нарастающими фронтами двух соседних символов в блоке. Таким образом, на приёмной стороне увеличивается значение счётчика импульсов при каждом нарастающем фронте (рис. 6.13). Его начальным значением является временной интервал ожидания символа.

 

 

Если при срабатывании счетчика за этот временной интервал не будет обнаружено возрастающего фронта нового символа, приёмная сторона сделает заключение, что переданный блок принят полностью. Данные проверки по циклической избыточности CRC могут также использоваться для распознавания окончания блока данных. Это, однако, снижает скорость передачи данных, так как каждый блок увеличивается на объём данных CRC. Поэтому удобнее распознавать конец блока путём подсчёта числа поступивших байтов.

Временной интервал ожидания блока (Block Waitinu Time. ВWT). Временной интервал ожидания блока задаётся с целью задания максимально возможного перерыва в сеансе связи при не поступлении ответа от смарт-карты. BWT является временным интервалом между нарастающим фронтом последнего байта в блоке, посланном в карту, и нарастающим фронтом первого блока, возвращаемого картой.

В терминах протокола типа Т=1 временной интервал ожидания блока является максимальным временным интервалом, задаваемым между нарастающим фронтом байта XOR в поле эпилога блока команды и нарастающим фронтом байта NAD в ответе карты.

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

Защитный временной интервал блока (Block Guard Time. BGT). Минимально допустимый временной интервал между нарастающим фронтом первого байта и нарастающим фронтом первого байта ответа называется защитным временным интервалом блока. Защитный временной интервал блока BGT является производной от временного интервала ожидания блока BWT, который определяется как максимальный временной интервал между двумя возрастающими фронтами. Защитный временной интервал блока обязательно должен обеспечиваться в ходе информационной сессии для обоих ее участников, в то время как временной интервал ожидания блока важен только для смарт-карты (рис. 6.14).

 

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

Механизмы протокола передачи. Расширение времени ожидания. В случае, если для выработки ответа карте терминалу требуется временной интервал больше временного интервала ожидания блока (BWT), карта может запросить терминал об увеличении временного интервала ожидания ответа. С этой целью смарт-карта передаёт специальный S-блок, который запрашивает расширение и принимает от терминала соответствующее подтверждение.

Терминал получает информацию о параметрах расширения времени ожидания байтом, содержащимся в информационном поле.

Связывание блоков в цепочки. Одной из главных особенностей протокола типа Т=1 является предусмотренная функция связывания блоков данных в цепочку (рис.6.15). Эта функция позволяет любой из сторон информационного обмена поочерёдно передавать блоки

 

 

данных, объём которых превышает объёмы соответствующих буферов передачи или приёма. Это особенно полезно при ограниченном объёме ресурсов памяти, имеющихся в смарт-карте. Такое связывание данных в цепочку разрешено только для имеющих большие объёмы информационных блоков. В этом случае пользовательские данные разделяются на индивидуальные блоки, которые последовательно посылаются на приемную сторону.

Данные слои приложения должны быть разделены таким образом, чтобы ни один из генерируемых блоков не превышал допустимый для приёмной стороны объём. Затем первая область вкладывается в информационное поле в соответствии с протоколом типа Т=1, снабжается полями пролога и эпилога и отправляется получателю. В поле блока РСВ вводится М-бит (More Data Bit Бит увеличения объёма информации) для того, чтобы показать приёмной стороне, что режим связывания блоков в цепочку активизирован.

После того, как приёмная сторона безошибочно примет информационный блок с первой частью пользовательских данных, она сигнализирует R-блоком, порядковый номер которого N(R) соответствует состоянию счетчика последовательностей передачи N(S) следующего I-блока, о готовности к приёму нового связанного I-блока. После этого процесс передачи возобновляется.

Такой обмен I и R-информационными блоками продолжается до тех пор, пока передающая сторона не пошлет 1-блок, М-бит в поле PCB которого показывает, что это последний блок в цепочке.

Существует ограничение, накладываемое на процедуру связывания блоков в цепочку. В пределах одного цикла "команда-ответ" связывание в цепочку может осуществляться только в одном направлении. Например, если терминал посылает связанные в цепочку блоки, карта не может отвечать связанными блоками.

Другое ограничение вызвано ограниченностью ресурсов памяти смарт-карт. Если объём приёмного буфера карты в памяти типа RAM недостаточен для хранения необходимого объёма данных и если они связаны в цепочку, то необходимо организовать аналогичный буфер в памяти типа EEPROM, что приведёт к резкому снижению скорости передачи информации. В результате многие реализации протокола типа Т=1 потеряют функции связывания блоков в цепочку, так как соотношение цена/эффективность не будет оправдывать её применения.

Обработка ошибок. В протоколе типа Т=1 предусмотрен совершенный механизм обнаружения и коррекции ошибок. В случае приёма ошибочных блоков данных используются предусмотренные для восстановления безошибочного информационного обмена процедуры.

Сначала сторона, передавшая ошибочный блок, получает R блок, который индицирует ошибку бита EDC/четности или общую ошибку. Получатель такого R-блока должен повторить передачу последнего блока.

Если восстановить безошибочный информационный обмен не удается, осуществляется второй шаг, который предполагает, что смарт-карта принимает от терминала запрос на повторную синхронизацию в виде S-блока. После этого терминал ожидает ответ на повторную синхронизацию. Одновременно и терминал, и карта устанавливают счётчики приема и передачи в исходное (нулевое) состояние, что соответствует состоянию, следующему непосредственно за данными ATR. После возврата в исходное состояние терминал делает попытку возобновить сеанс связи.

Если терминалу не удаётся установить безошибочное взаимодействие с картой на первых двух этапах, он осуществляет сброс смарт-карты в исходное состояние по каналу сброса. При этом все исходные данные и состояния информационной сессии теряются, после чего сеанс связи повторяется.

Если эта процедура не обеспечит успешного взаимодействия терминала с картой, то после трёх попыток начать сессию информационного обмена терминал отключает карту.

После этого, как правило, пользователь информируется о неисправности карты.

 

6.3.5. Сравнение асинхронных протоколов передачи

 

В предыдущих разделах описаны два протокола передачи. Для сравнения в табл. 6.4. представлены их основные параметры.

 

При сравнении двух типов протокола Т=0 и Т=1 по эффективной скорости передачи (с точки зрения максимально достижимой скорости передачи) следует учитывать, что скорость информационного обмена зависит от множества конкретных факторов, например, частоты появления ошибок передачи, объёма буфера I/О карты и конкретной реализации протокола. В большинстве приложений оба протокола имеют примерно одинаковую среднюю скорость передачи. Для ее увеличения следует уменьшить коэффициент деления частоты внешнего синхросигнала.

 

6.4. Ответ на сброс

                          

После подачи электропитания, сигналов синхронизации и сброса смарт-карта посылает на контакт I/О ответ на сброс. По стандарту ISO/IEC 7816-3 ответ на сброс представлен последовательностью данных объёмом до 33 байт с коэффициентом деления 372, содержащей данные, связанные с процедурой взаимодействия карты и терминала. Указанный коэффициент деления должен быть выбран даже в том случае, если тип протокола, используемый после процедуры ATR, предусматривает другой коэффициент деления, например, 512. Такая мера обеспечивает независимость приёма данных ATR от параметров выбранного типа протокола.

Информация ATR редко достигает максимально допустимого объёма и зачастую появляется необходимость сформировать ATR всего из нескольких байт. Например, объём информации ATR бывает ограниченным в тех случаях, когда карта после загрузки оперативно включается в работу. Блок данных ATR должен быть послан на терминал через 400...40000 тактовых интервалов Т после посылки терминалом сигнала сброса, т.е. должно выполняться условие 400 T≤ t1 ≤ 40 000T. Если терминал не получает ATR в течение этого временного интервала, он повторяет загрузочную процедуру, как правило, до 3 раз. Если все попытки заканчиваются неудачей, карта считается неисправной (рис.6.16):

 

 

В течение временного интервала приёма информации ATR возрастающие фронты индивидуальных байтов могут разделяться временным интервалом в 9600 etu в соответствии с ISO/IEC 7816-3. Этот период называется начальным периодом ожидания, и при тактовой частоте 3,5712 МГц он будет равен 1 с. Это означает, что перед посылкой следующего байта в терминал стандарт допускает наличие интервала, равного 1 с, между индивидуальными байтами информации ATR. В некоторых операционных системах смарт-карт этот временной интервал используется для проведения необходимых вычислений и записи информации в память типа EEPROM.

Цепочка данных ATR и элементы данных подробно описаны в ISO/IEC 7816-3. Базовый формат ATR в свой состав включает начальный символ (TS), символ формата (ТО), символ интерфейса, исторические символы и проверочный символ (ТСК).

Два первых байта, обозначенные как TS и ТО, определяют основные параметры передачи и наличие последующих байтов данных. Символы интерфейса определяют специальные символы и типы протоколов передачи. Исторические символы описывают расширение базовых функций смарт-карт. В зависимости от типа протокола передачи последний байт может содержать проверочный символ, который является контрольной суммой предыдущих байтов.

Начальный символ. Начальный байт данных, обозначенный как TS, определяет условия, используемые для всех данных в ATR, и последующую процедуру информационного обмена (рис.6.17а). Кроме того, байт TS содержит характеристическую последовательность

 

 

 

 

 

 

 данных, которая может использоваться терминалом для определения коэффициента деления. Терминал измеряет временной интервал между первыми спадающими фронтами в байте TS, делит его на 3 и в результате определяет 1 etu. Байт TS является обязательным компонентом ATR и может быть закодирован двумя способами: "3В" в прямом направлении или "3F" в обратном. Временная диаграмма начального символа TS при инверсном порядке расположения символов (3F) представлена на рис.6.17б.

Символ формата. Второй байт, обозначаемый Т0, служит для обозначения символа интерфейса, а также содержит ряд "исторических символов". Так же, как и байт TS, он должен обязательно присутствовать в данных ATR.

Символы интерфейса. Символы интерфейса определяют все параметры информационного обмена используемого типа протокола. Они состоят из байтов TAi, TBi, TCi и TDi. Однако передача данных ATR этих байтов может варьироваться и при необходимости может быть исключена. Так как основные параметры определены выбранным типом протокола, то при обычном информационном обмене символы интерфейса в данных ATR часто не используются.

Символы интерфейса могут быть разделены на глобальные и специфические. Первые определяют основные параметры протокола передачи и относятся ко всем существующим протоколам. Специфические символы устанавливают параметры для выбранного типа протокола передачи.

Глобальные символы интерфейса используются во всех существующих протоколах. По историческим причинам первоначально был стандартизирован протокол типа Т=0 и некоторые из этих символов относятся только к нему. Если протокол типа Т=0 не применяется, то эти символы можно исключить.

Единственной целью использования байта TDi является обеспечение связывания в цепочку любых последующих символов интерфейса. Наибольший значащий полубайт TDi побайтно индицирует наличие последующих символов интерфейса, что аналогично кодированию символа формата ТО. Наименьший значащий полубайт TDi индицирует тип используемого протокола передачи. Если байт TDi отсутствует, это означает, что TAi = 1, TBi+ 1, TCi+ 1 и TDi+ 1 не передаются.

Другие символы в информации интерфейса, не используемые для связывания данных в цепочку (TAi, TBi и TCi), определяют возможные типы протоколов передачи. Их интерпретация определена стандартом ISO/IEC 7816-3.

Глобальный символ интерфейса ТА1. Байт глобального символа интерфейса определяет коэффициент деления тактовой частоты и включает полубайты F непосредственно кодирования коэффициента деления и D фактора подстройки коэффициента передачи.

Глобальный символ интерфейса TB1. Байт глобального символа интерфейса определяет режим подачи напряжения программирования в битах б6 и б7. Эти параметры были нужны в первых поколениях смарт-карт, которые для хранения данных вместо используемой в настоящее время памяти типа EEPROM имели память типа EPROM. Высокие напряжения и токи, требуемые для программирования EPROM, подавались от терминала через контакт Vpp. Элементы данных символа всегда имеют нулевое значение, что говорит о том, что внешнего напряжения программирования не требуется. Если элемент данных ТВ1 пропущен в составе информации ATR, то применяется стандартная установка напряжения электропитания Vpp =5B при токе 50 мА.

Глобальный элемент интерфейса ТС1. Глобальный элемент интерфейса определяет дополнительный защитный временной интервал. Его значение определяет число etu, на которое должен быть увеличен защитный временной интервал. Элемент ТС1 интерпретируется линейным образом за исключением того, что при N = "FF" защитный временной интервал, как правило, равный двум HU, должен быть сокращен до одной etu.

Глобальный байт интерфейса ТВ2. Глобальный байт интерфейса имеет значение PI2, которое определяет подачу внешнего высоковольтного напряжения программирования памяти. Однако этот байт в настоящее время не используется в составе данных ATR по тем же причинам, что и байт ТВ1.

Специфический символ интерфейса ТС2. Последний элемент данных в протоколе типа Т=0 задаёт рабочий временной интервал ожидания и обозначается ТС2. Он определяется как максимально допустимый временной интервал между нарастающими фронтами двух соседних байтов.

Если в данных ATR символ ТС2 не содержится, то используется исходное значение рабочего временного интервала ожидания WI=10.

Следующие дополнительные байты для протокола передачи типа Т=1 определяются в соответствии со стандартом ISO/IEC 7816-3 (Приложение 1). Символы интерфейса, определённые ранее для протокола типа Т=0 используются в этом случае только при необходимости. Такие элементы данных, как байт ТС1, используемый для определения дополнительного защитного временного интервала, могут быть пропущены, так как они не связаны с протоколом типа Т=1.

В протоколе типа Т=1 индекс элемента данных i всегда должен быть больше 2. Специфические символы интерфейса TAi, TBi, TCi (i >2) всегда используются с протоколом, выбранным байтом TD(i-1).

Специфический символ интерфейса TAi (i>2). Байт TAi определяет максимально допустимый объем информационного поля, который может быть введён в карту (IFSC). Его значение может составлять от 1 до 254 байт. Исходная установка значения IFSC равна 32 байтам.

Специфический символ интерфейса TBi (i>2). Специфический символ интерфейса TBi содержит коды для определения временного интервала ожидания символа CWT.

Специфический символ интерфейса TCi (i>2). Специфический символ интерфейса TCi задаёт используемый метод обнаружения ошибок.

Глобальный символ интерфейса ТА2. Байт данных глобального символа интерфейса ТА2 определяет возможные режимы выбора типа протокола PTS.

Исторические символы. В течение длительного периода исторические символы не были стандартизированы, содержали самые разные данные и определялись производителем системы. Исторические символы в данных ATR стандартами не задаются и поэтому их можно опустить.

Кроме исторических символов стандарт ISO/IEC 7816-4 описывает структуру данных ATR. Этот файл с зарезервированным FID "2F01" содержит дополнительные данные ATR и служит в качестве расширения для размещения исторических символов, объём которых ограничен длиной 15 байт. Содержимое этого файла, структура которого не стандартизирована, кодируется по правилам ASN.1.

Данные, содержащиеся в исторических символах файла ATR, могут определять номер версии конкретных смарт-карт и содержать сведения об используемой операционной системе и о поддерживаемых картой функциях выбора файлов и механизме логических каналов. Более того, там могут содержаться дополнительные данные о производителе карты, серийные номера карты и чипа, номера версий памяти типа ROM и др. Кодирование соответствующих данных определяется ISO/IFC 7816-5.

Проверочный символ. Последним байтом в ATR является контрольная сумма, вычисленная для всех байтов от ТО до последнего байта, расположенного перед ТСК. Этот байт может содержать бит контроля четности для обеспечения безошибочной передачи данных ATR.