Рекомендации по применению смарт-карт в приложениях, относящихся к обеспечению безопасности
Раздел книги "Информационная безопасность и смарт-карты" (в авторском варианте). © Константин Мытник, Сергей Панасенко, 2018
Вопросы поддержки смарт-картой криптографических алгоритмов, протоколов аутентификации и возможностей защищенного хранения данных обсуждаются в восьмой части спецификаций PC/SC [186]. Более точно, данный документ посвящен следующим проблемам:
Как было сказано ранее, смарт-карты, использование которых предполагается в приложениях, относящихся к обеспечению информационной безопасности, должны быть разработаны так, чтобы исключить возможное воздействие извне на реализуемые картой алгоритмы и протоколы.
В требованиях предполагается, что подобные смарт-карты должны реализовывать следующие криптографические алгоритмы:
Поскольку использование смарт-карт для шифрования данных не всегда возможно и целесообразно (в т. ч. по причине невысокой скорости обмена данными между картой и компьютером), поддержка картой алгоритмов симметричного шифрования является опциональной.
В части генерации и использования ключей для асимметричных криптоалгоритмов предполагается, что смарт-карта должна иметь возможность генерировать ключевую пару и работать с ключами таким образом, чтобы секретный ключ мог храниться в защищенном виде и использоваться, не покидая карту, тогда как для открытого ключа должна поддерживаться возможность его экспорта.
Смарт-карта может поддерживать следующие возможности по аутентификации различных сущностей (протоколы аутентификации были описаны в главе 7):
Требования устанавливают, что смарт-карта должна иметь файловую систему, соответствующую стандарту ISO 7816-4 [193]. Карта должна поддерживать механизмы разграничения доступа к файлам и каталогам, причем для каждого возможного вида доступа (чтение, запись, модификация и удаление) должны поддерживаться следующие варианты ограничений:
Кроме того, в восьмой части спецификаций описываются специальные файлы, наличие которых необходимо для реализации криптографических функций, протоколов аутентификации и механизмов контроля доступа к объектам файловой системы карты. Здесь же приведены рекомендации по структуре таких файлов.
Специальные файлы включают в себя файлы следующих категорий:
Наконец, в требованиях приведены списки и описания команд, имеющих отношение к криптографическим функциям и функциям работы с файловой системой смарт-карты, которые должны поддерживаться картой. Краткое описание этих команд приведено в следующей таблице:
Таблица 8.9. Команды, относящиеся к обеспечению безопасности и к работе с файловой системой смарт-карты
№ |
Команда |
Краткое описание |
Команды, относящиеся к обеспечению безопасности |
||
1 |
VERIFY |
Предъявление кода верификации в рамках аутентификации пользователя |
2 |
CHANGE CODE |
Смена кода аутентификации пользователя или приложения |
3 |
UNBLOCK |
Разблокировка заблокированного ранее (например, за превышение количества неуспешных попыток аутентификации) кода аутентификации приложения или пользователя |
4 |
GET CHALLENGE |
Запрос случайного числа для последующей аутентификации |
5 |
INTERNAL AUTH |
Аутентификация карты внешним (например, работающим в операционной системе компьютера) приложением |
6 |
EXTERNAL AUTH |
Аутентификация на основе протокола типа «запрос-ответ» пользователя-владельца карты в какой-либо внешней системе (например, на удаленном сервере) и аутентификация картой внешней системы |
7 |
INVALIDATE |
Временно выводит конкретный файл из обычного использования |
8 |
REHABILITATE |
Возвращает в обычное состояние файл, к которому ранее была применена команда INVALIDATE |
Криптографические команды |
||
9 |
LOAD PUB KEY |
Загрузка в хранилище ключей карты открытого или секретного криптографического ключа |
10 |
GENERATE KEY |
Генерация криптографического ключа или ключевой пары |
11 |
GET PUBLIC KEY |
Запрос открытого ключа |
12 |
DELETE KEY |
Удаление криптографического ключа или ключевой пары из хранилища ключей |
13 |
LOAD DATA |
Загрузка данных для генерации или проверки их электронной подписи |
14 |
SIGN DATA |
Генерация электронной подписи предварительно загруженных данных |
15 |
LOAD VERIFY KEY |
Загрузка внешнего открытого ключа для проверки с его помощью электронной подписи |
16 |
VERIFY SIGNATURE |
Проверка электронной подписи предварительно загруженных данных |
17 |
LOAD EXPORT KEY |
Выполнение различных криптографических операций в рамках процедуры обмена ключами |
18 |
HASH DATA |
Вычисление хэш-значения данных |
Основные команды работы с файлами и каталогами |
||
19 |
CREATE FILE |
Создание файла или каталога |
20 |
DELETE FILE |
Удаление файла или каталога |
21 |
SELECT |
Выбор файла или каталога для последующего использования |
22 |
READ BINARY |
Команды чтения информации из текущего файла или каталога |
23 |
GET RESPONSE |
Возвращает данные, запрошенные предыдущей командой |
24 |
WRITE BINARY |
Команды записи информации в текущий файл или каталог |