Смарт-карта и токен: в чём отличие
Электронная подпись должна храниться на защищённом носителе. Есть разные виды носителей, но их можно разделить две категории: смарт-карта и токен. Они выполняют одни и те же функции, но у каждого типа есть свои особенности.
Чем отличаются друг от друга эти носители и что лучше купить? Мы расскажем подробно в этой статье.
Работа со смарт-картой на компьютере
Для подключения смарт-карты к компьютеру:
- Если считыватель контактный, то вставьте в него смарт-карту.
- Если считыватель бесконтактный, то приложите к нему смарт-карту.
- Подключите считыватель к USB-порту компьютера. Если смарт-карта подключена корректно, то на считывателе начнет светиться индикатор. Если смарт-карта подключена некорректно, то индикатор на считывателе может мигать или не светиться (зависит от модели считывателя).
В ОС Windows
Изменение PIN-кода
Перед началом работы со смарт-картой необходимо изменить ее PIN-коды. Чтобы их изменить, загрузите и установите Комплект драйверов Рутокен.
После установки комплекта драйверов на компьютере появится специальная программа для обслуживания устройств Рутокен — Панель управления Рутокен.
Для того, чтобы изменить PIN-код Пользователя или Администратора:
Просмотр сведений об устройстве
В Панели управления Рутокен можно узнать следующую информацию об устройстве:
- наименование модели;
- уникальный цифровой идентификатор;
- версию прошивки и флаги состояния;
- общий объем памяти;
- объем свободной памяти;
- политику для смены PIN-кода Пользователя;
- возможность использования UTF-8 в PIN-кодах;
- возможность работы с КриптоПро Рутокен CSP по защищенному каналу ФКН;
- подключено ли оно по RDP.
Для просмотра сведений об устройстве Рутокен:
- Откройте Панель управления Рутокен.
- В раскрывающемся списке Подключенные Рутокен выберите Рутокен ЭЦП 3.0 NFC Смарт-карта.
- В разделе Информация нажмите на одноименную кнопку. Откроется окно Информация о Рутокен, в этом окне указана вся необходимая информация об устройстве.
Просмотр версии установленного комплекта драйверов Рутокен
Для просмотра версии установленного комплекта драйверов:
Выбор криптопровайдера, используемого по умолчанию, для устройства Рутокен
Криптопровайдер — это динамически подключаемая библиотека, реализующая криптографические функций со стандартизованным интерфейсом.
У каждого криптопровайдера могут быть собственные наборы алгоритмов и собственные требования к формату ключей и сертификатов.
Чтобы выбрать криптопровайдера, который будет использоваться для Рутокена по умолчанию:
- Открой Панель управления Рутокен.
- Перейдите на вкладку Настройки.
- В разделе Настройки криптопровайдера нажмите Настройка.
- В раскрывающемся списке Семейство Рутокен ЭЦП выберите название криптопровайдера.
- Чтобы применить изменения и продолжить работу с настройками нажмите Применить.
- Чтобы подтвердить выбор криптопровайдера нажмите ОК.
- В окне с запросом на разрешение внесения изменений на компьютере нажмите Да.
Выбор метода генерации ключевых пар RSA
Чтобы выбрать криптопровайдера для генерации ключевых пар RSA:
- Откройте Панель управления Рутокен.
- Перейдите на вкладку Настройки.
- В разделе Настройки криптопровайдера нажмите Настройка.
- В разделе Настройки криптопровайдера Aktive Co. Rutoken CSP v1.0 выберите способ генерации ключевых пар RSA 2048 бит для Рутокен ЭЦП, для этого установите переключатель в необходимое положение.
- Чтобы применить изменения и продолжить работу с настройками, нажмите Применить.
- Чтобы подтвердить выбор криптопровайдера, нажмите ОК.
- В окне с запросом на разрешение внесения изменений на компьютере нажмите Да.
Выбор настроек для PIN-кода
В Панели управления Рутокен можно задать настройки для PIN-кодов. Перечень настроек указан в таблице 1.
PIN-код Пользователя вводится один раз при первом использовании устройства Рутокен в приложении.
Эта настройка позволяет уменьшить количество вводов PIN-кода в прикладных приложениях за счет кратковременного хранения их криптопровайдером в зашифрованной памяти.
PIN-код может состоять из кириллических символов.
Эта настройка позволяет безопасно использовать PIN-коды, содержащие кириллические символы.
Чтобы выбрать настройки для PIN-кода:
Указание имени устройства Рутокен
Для того чтобы различать устройства Рутокен между собой следует задать имя каждому устройству. Оно не всегда будет отображаться в сторонних приложениях.
Рекомендуется указать имя и фамилию владельца устройства или краткое наименование области применения устройства.
Для указания имени устройства Рутокен:
Разблокировка Администратором PIN-кода Пользователя
PIN-код Пользователя блокируется в том случае, если пользователь несколько раз подряд ввел его с ошибкой.
После того как PIN-код Пользователя будет разблокирован, счетчик неудачных попыток аутентификации примет исходное значение.
После разблокировки PIN-код Пользователя не изменится.
Для того чтобы разблокировать PIN-код Пользователя:
Форматирование Рутокена
В ходе форматирования устройства все, созданные на нем объекты удалятся. Также при форматировании задаются новые значения PIN-кодов или выбираются значения, используемые по умолчанию.
Если пользователь исчерпал все попытки ввода PIN-кода Администратора, то существует возможность вернуть устройство в заводское состояние. Для такого форматирования ввод PIN-кода Администратора не требуется.
При форматировании устройства Рутокен все данные на нем, в том числе ключи и сертификаты, будут удалены безвозвратно.
В процессе форматирования не следует отключать устройство Рутокен от компьютера, так как это может привести к его поломке.
Для запуска процесса форматирования устройства Рутокен:
В окне с предупреждением об удалении всех данных на устройстве Рутокен нажмите ОК.
В окне с сообщением об успешном форматировании устройства Рутокен нажмите ОК.
В ОС семейства GNULinux
Проверка корректности подключения считывателя для смарт-карт к компьютеру
Первым делом подключите считыватель для смарт-карт к компьютеру и вставьте в него смарт-карту.
Для проверки корректности подключения считывателя для смарт-карт к компьютеру введите команду:
В результате в окне Терминала отобразится название модели считывателя для смарт-карт:
Это означает, что считыватель для смарт-карт подключен корректно.
Определить название смарт-карты и выполнить дальнейшие действия данной инструкции невозможно без предварительной установки дополнительного программного обеспечения.
Установка дополнительного программного обеспечения
В deb-based и rpm-based системах используются разные команды. Список систем указан в таблице 1.
Таблица 1. Список операционных систем GNU/Linux
Debian, Ubuntu, Linux Mint,
RedHat, CentOS, Fedora, ALT Linux,
ROSA Linux, МСВС, ГосЛинукс, РЕД ОС
Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:
в deb-based системах это обычно:
- библиотека libccid не ниже 1.4.2;
- пакеты libpcsclite1 и pcscd;
- pcsc-tools.
в rpm-based системах это обычно:
- ccid не ниже 1.4.2;
- pcsc-lite;
- pcsc-tools.
в ALT Linux это обычно:
- pcsc-lite-ccid;
- libpcsclite;
- pcsc-tools.
Также для всех типов операционных систем необходимо установить библиотеку OpenSC.
Перед установкой библиотек и пакетов проверьте их наличие в системе. Для этого введите команду:
В deb-based системах:
Если библиотека или пакет уже установлены в системе, то в разделе Status отобразится сообщение «install ok installed».
В разделе Version отобразится версия указанной библиотеки или пакета (версия библиотеки libccid должна быть выше чем 1.4.2).
В rpm-based системах:
Если библиотека или пакет уже установлены в системе, то на экране отобразятся их названия и номера версий (версия библиотеки ccid должна быть выше чем 1.4.2).
В ALT Linux:
Если у вас нет доступа к команде sudo, то используйте команду su.
Если библиотек и пакетов еще нет на компьютере, то необходимо их установить.
Для установки пакетов и библиотек:
В deb-based системах введите команду:
В rpm-based системах (кроме ALT Linux) введите команду:
В ALT Linux введите команду:
Если у вас нет доступа к команде sudo, то используйте команду su.
Проверка работы Рутокен ЭЦП 3.0 NFC в системе
Для проверки работы смарт-карты:
-
Подключите ее к компьютеру.
Изменение PIN-кода Пользователя
Перед запуском процесса смены PIN-кода установите библиотеку PKCS#11 и определите путь до библиотеки librtpkcs11ecp.so.
Для того чтобы загрузить библиотеку PKCS#11:
Определите разрядность используемой системы:
Если в результате выполнения команды отобразилась строка подобная «i686», то система является 32-разрядной.
Если в результате выполнения команды отобразилась строка подобная «x86_64», то система является 64-разрядной.
Для того чтобы определить путь до библиотеки librtpkcs11ecp.so введите команду:
Для изменения PIN-кода введите команду:
A — путь до библиотеки librtpkcs11ecp.so.
B — текущий PIN-код устройства.
C — новый PIN-код устройства.
В результате PIN-код устройства будет изменен.
В macOS
Проверка корректности подключения считывателя для смарт-карт к компьютеру
Для проверки корректности подключения считывателя для смарт-карт к компьютеру:
Для считывателя в окне программы отобразится название модели считывателя и информация о нем.
Это означает, что считыватель для смарт-карт подключен корректно.
Определение названия модели смарт-карты
Перед запуском процесса определения названия модели смарт-карты:
- загрузите и установите пакет OpenSC;
- загрузите и установите приложение Рутокен для macOS;
- опр еделите путь до библиотеки librtpkcs11ecp.dylib.
Актуальная версия установочного пакета OpenSC доступна по ссылке:
Для установки пакета OpenSC:
- Запустите программу установки пакета OpenSC.
- В окне с уведомлением о том, что автор программы является неустановленным разработчиком нажмите Отменить.
- Выберите в меню Apple ( ) пункт Системные настройки (System Preferences).
- Выберите настройку Защита и безопасность (Security & Privacy).
- Нажмите Подтвердить вход.
- Чтобы подтвердить открытие установочного пакета OpenSC нажмите Открыть.
- Снова запустите программу установки пакета OpenSC и нажмите Продолжить.
- Чтобы начать процесс установки нажмите Установить.
- В окне для ввода учетных данных укажите пароль пользователя и нажмите Установить ПО.
- После завершения процесса установки нажмите Закрыть. В результате пакет OpenSC будет установлен.
- Если после установки пакета необходимо остановить установщик, то нажмите Остановить.
Для того чтобы загрузить приложение Рутокен для macOS перейдите по указанной ссылке:
https://www.rutoken.ru/support/download/mac/
Для установки приложения Рутокен для macOS, в окне Рутокен для macOS перетащите значок Рутокен для macOS в папку Application.
Для того чтобы определить путь до библиотеки librtpkcs11ecp.dylib:
Нажмите Enter. В результате в окне Терминала отобразится путь до библиотеки librtpkcs11ecp.dylib.
Чтобы определить название модели смарт-карты, подключите ее к компьютеру и введите команду:
A — путь до библиотеки librtpkcs11ecp.dylib.
В разделе token model отобразится название модели смарт-карты.
Проверка работы смарт-карты в системе
Для проверки работы Рутокен ЭЦП:
-
Подключите устройство к компьютеру.
Откройте Терминал (Terminal).
Нажмите Enter и введите цифру «1».
Изменение PIN-кода смарт-карты
Для изменения PIN-кода введите команду:
A — путь до библиотеки librtpkcs11ecp.dylib.
B — текущий PIN-код устройства.
C — новый PIN-код устройства.
В результате PIN-код устройства будет изменен.
Операционные системы смарт-карт
- Фиксированная файловая структура. Этот тип рассматривает карту как безопасное устройство хранения данных. Файловая структура и логика работы карты заранее устанавливаются эмитентом. Эти параметры и функции карты неизменны для этого типа структуры карты. Примером карты такого типа будут карты которые используются в системах контроля доступа .
- Динамическая прикладная система. Операционная система этого типа, которая включает в себя разновидности карт JavaCard (JCOP) и карты MULTOS , позволяет разработчикам безопасно создавать, тестировать и развертывать различные приложения на картах. Поскольку операционная система карты и приложения разделены, данные на такой карте можно обновлять и перезаписывать. Наиболее известным примером такой смарт карты является SIM-карта , данные на карте загружаются в телефон и могут динамически изменяться.
Смарт-карты изготавливаться из пластика с одним или несколькими чипами внутри. Именно чип делает обычную пластиковую карту «смарт».
- Карточки форм-фактора CR-80 ( формат ID-1 ).
- SIM-карта , микро-SIM и нано-SIM
Дальнейшее покажется вам оксюмороном, но смарт-карты могут быть выполнены не только в формате карты.
- Браслета где чип запаян в резиновый корпус
- Брелока
- Метки (могут быть и в виде наклейки и в виде бруска пластика)
- Ключа «Touch Memory»
- Смарт-ключи с USB-интерфейсом ( Rutoken , eToken .)
Chip Cards — виды смарт-карт
Contact cards — контактные карты на базе стандарта ISO 7816. Contactless cards — бесконтактные карты. Multi Component Cards — мультикомпонентные карты. Memory Carda — карты памяти. CPU/MPU Cards — микропроцессорные карты. Vault Cards — карты, защищающие от скриммингового оборудования. Fingerprint Cards — карты с датчиком отпечатка пальца. One Time Password Display Cards — карты с дисплеем для ввода пароля. Bio Assaying Fluids Sensor Cards — карты с анализатором биологического материала.
Виды смарт — карт
Смарт — карты можно разделить на 2 основных вида:
- контактные;
- бесконтактные.
По функциональности они также делятся на 2 типа:
- карты памяти — такие карты содержат какое-то количество информации и функцию их разграничения;
- интеллектуальные карты — имеют возможность управления информацией, содержащиеся на микропроцессоре.
Теперь разберемся в видах и функционале подробнее.
Контактные смарт — карты, интерфейс ISO 7816
Такие смарт — карты содержат зону соприкосновения, в которой заключены несколько своеобразных лепестков. В момент, когда карту помещают в считыватель, происходит прикосновения чипа и коннекторов, благодаря считыватель может получить или записать данные с чипа.
Такие контактные карты не требуют батареек — вся энергия подается со считывателя. Распространение таких карта заключается в SIM-картах, банковских картах и т.д.
Контактные смарт — карты, USB — интерфейс
Идентичны микросхемы интерфейса ISO 7816, но в дополнение находится USB считыватель, оба интерфейса совмещены в едином корпусе. Такие карты более удобны для компьютерной аутентификации.
Бесконтактные смарт — карты
В данном виде карта имеет связь со считывателем при помощи техники RFID. Чтобы связь была установлена, карту нужно поднести максимально близко к считывателю для проведения какой-либо операции. Подобные карты необходимы для проведения процедуры в кратчайшие сроки, а именно: в общественном транспорте, в торговых центрах и т.д.
Карты памяти
Содержат определенные данные, а также встроенный механизм разграничения. Часто это карты для быстрых платежей в аквапарке, транспортах, метро и др.
Интеллектуальные карты
Карты имеют микропроцессоры и возможность загрузки алгоритма работы. Применяются такие карты в основном в сложных аутентификационных действиях, протоколах обмена и т.д.
Использование смарт-карты
Теперь мы имеем рабочую смарт-карту с сертификатом пользователя. Для того чтобы начать ее использовать, не требуется никаких особых настроек на компьютере пользователя, кроме установки драйверов для смарт-карт-ридера и ПО смарт-карты. После этого достаточно вставить смарт-карту в карт-ридер (или токен в USB-разъем), как стандартное окно запроса пароля при входе в систему сменится на запрос PIN-кода (см. рис. 5).
Рисунок 5. Вход в систему с использованием смарт-карты
Сменить PIN-код пользователь может с помощью ПО смарт-карты. В случае если PIN-код забыт, администратор с помощью административного пароля может установить новый PIN-код, а если утерян и административный PIN-код, можно повторно инициализировать смарт-карту с помощью системного PIN-кода. В этом случае все данные, содержащиеся на смарт-карте, будут уничтожены. Если утерян и системный PIN-код, смарт-карту можно смело выбрасывать.
На одну смарт-карту можно поместить несколько сертификатов, однако для входа в систему Windows XP/2003 будет использоваться только один – так называемый «контейнер по умолчанию». Его можно определить с помощью ПО смарт-карты. Для Windows Vista этого ограничения уже нет – в этой ОС можно указать, какой сертификат из имеющихся на карте нужно использовать для входа – по крайней мере это заявлено в документации.
Смарт-картой можно пользоваться и при входе на удаленные компьютеры по RDP-протоколу. Для этого в свойствах RDP-подключения надо на вкладке Local Resources (локальные ресурсы) нажать кнопку More (еще) и установить опцию Smart Card (смарт-карта) – однако и тут надо помнить о том, что на удаленном компьютере должно стоять все необходимое для работы смарт-карты ПО, иначе вы получите ошибку, о которой говорилось ранее в разделе «Общие сведения».
Что касается пользовательских настроек Active Directory, то для работы со смарт-картами предусмотрены две опции. Обе доступны в ветке: Local Computer Policy → Computer Configuration → Windows Settings → Security Settings → Local policies → Security Options («Локальная политика компьютера → Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Параметры безопасности»).
Первая опция Interactive logon: Require smart card (вход в систему: требуется смарт-карта) может принимать состояние Enable (включено) или Disable (выключено) и при включении означает безусловную необходимость в смарт-карте при входе в систему. В этом случае без смарт-карты пользователь не сможет осуществить вход. Это надо иметь в виду, так как может возникнуть ситуация, когда пользователь забыл или потерял смарт-карту, или же требуется войти в домен через компьютер, на котором не установлены драйвер карт-ридера или ПО смарт-карты.
Вторая опция: Interactive logon: Smart card removal behavior (вход в систему: поведение при извлечении смарт-карты) означает поведение рабочей станции при изъятии смарт-карты из карт-ридера. Допустимыми состояниями являются No action (бездействие), Lock workstation (блокировка рабочей станции) и Force Logoff (выход из системы). Эта опция работает только при включенной первой опции.
Как я уже говорил, применение смарт-карты не ограничивается только входом в систему. В настоящее время многие приложения умеют хранить сертификаты на смарт-карте, например Mozilla Firefox, OpenVPN, TrueCrypt и др. Как использовать смарт-карту – это уже решать вам, но надеюсь, что эта статья поможет вам в самом начале процесса внедрения смарт-карт в домене.
Чтение информации с карты
Аналогично реализуется функция чтения информации, например файла с карты. Текст функции приведен в Листинге 6 и в комментариях не нуждается.
Теперь попробуем воспользоваться замечательными функциями, предоставляемыми смарт-картами. Еще раз обращу внимание читателей на то, что все приведенные ниже примеры ориентированы на работу с карточками Schlumberger Sample Cryptoflex 8K и с другими картами, вероятнее всего, работать не будут. Стандарт ISO 7816-4 описывает, в какой форме передаются команды на смарт-карту. А именно — формируется структура, называемая application protocol data unit (APDU), содержащая как инструкции, так и данные. APDU представляет собой структуру, приведенную в Листинге 7, за которой может следовать буфер данных, размер которого зависит от типа исполняемой команды. Для удобства работы я использовал структуру, приведенную в Листинге 8.
Как правило, работа с картой начинается с ввода пароля. Выбранные нами для примера карты поддерживают два пароля (PIN-кода): административный, который еще называют транспортным, и пользовательский. Первый предоставляет доступ ко всем функциям карты, второй — к некоторому их подмножеству; пример обработки пароля приведен в Листинге 9. Отмечу, что большая часть карт не позволяет вводить неправильные пароли произвольное число раз. Как правило, после нескольких неудачных попыток карта блокируется. Вы это наверняка знаете на примере правил использования мобильных телефонов. Ведь сердцем телефонов всех современных стандартов как раз и является SIM-карта, которая представляет собой смарт-карту. Например, во многих телефонах используются карты Schlumberger Cyberflex 32k.
В картах Cryptoflex 8K длина пароля фиксирована и равна 8 байт. Это используется в тексте функции. Возвращаемый статус проверяется на значение, соответствующее успешному завершению операции, — 0x0090.
Как я говорил выше, смарт-карта кроме непосредственного хранения информации может выполнять различные функции. Например, генерировать последовательности случайных символов — функция очень полезная при автоматической генерации паролей. Как это происходит, показано в Листинге 10. Длина последовательности задается в поле bP3 структуры SC_COMMAND_HEADER.
Описание всех команд, поддерживаемых смарт-картами Schlumberger Sample Cryptoflex 8K, можно найти в документации, входящей в состав SDK, поставляемых компанией Schlumberger-Sema. Здесь мы рассмотрели лишь примеры работы с картами, и описание полного списка поддерживаемых ими функций выходит далеко за рамки этой статьи.