Меню

Etoken pro java 72k настройка

Работа с командами APDU на примере EToken

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

Тема APDU здесь поднималась неоднократно, но в основном касалась смарт карт, для которых нужен карт ридер и карта которую не жалко, плюс софт, так как работать с консольным интерфейсом OpenSC, по крайней мере в Window$, мягко говоря неудобно.
Для этого я написал небольшую программу с оконным интерфесом, работающую через winscard.
Исходники и бинарники можно скачать здесь.
Компилировалось это под Visual studio 2008, необходимо добавить в проект WinSCard.Lib из Microsoft Windows SDK.

Наверное у многих найдутся синие рыбки EToken PRO Java 72 K с истёкшими много лет назад сертификатами ЭЦП (использовать «боевой», с действующей ЭЦП, токен для экспериментов настоятельно не рекомендуется!).
Подойдут также JaCarta Pro, от етокенов отличающиеся только внешне.
Можно также попробовать работать с Gemalto SafeNet eToken 5100, у них можно просмотреть содержимое директорий, но прочитать файл не получится из-за очень маленького (вероятно несколько миллисекунд) таймаута между командами выбрать и прочитать файл, в результате чего команда прочитать файл при ручном вводе ссылается уже на пустое место (ошибка с кодом 69 85). Возможно это одна из причин того, что на некоторых платформах на этих токенах перестают видеть ключи. Относительно SafeNet eToken 5100 (с честной надписью на боку «Made in China») замечу следующее: «Единый клиент JaCarta» работать с ним не хочет и выводит сообщение, что сие изделие не поддерживается, 64-х разрядный eToken PKI Client 5.1 от Aladdin его не видит, но 32 версия под Win XP с ним работает, хотя для этого токена желательно конечно ставить оригинальный SafeNet Authentication Client.

Другие токены, в том числе семейства JaCarta, не подойдут, так как команды APDU у них всех абсолютно разные и их цифровое значение описанному в стандарте ISO7816 не соответствует.

Подробности про формат команд APDU можно прочитать например здесь.
Читатель имеющий синюю рыбку может ознакомиться с работой APDU не вставая с дивана.
Необходимо установить драйвер для eToken eToken PKI Client 5.1 или «Единый клиент JaCarta» и подключить токен.

Для подробного просмотра содержимого токена в удобном виде и сверки с тем, что дают команды APDU можно использовать написанный мной на Autoit JaCarta Editor.

Запускаем APDUExplorer, выбираем в списке ридеров «Aladdin Token JC 0» или «ARDS JaCarta 0» или «SafeNet Token JC 0» и можно вводить команды.
Вводить можно как через двоеточия так и через пробелы или всё слитно.

Для начала можно проверить работоспособность, кликнув «Check ATR» и получить ответ токена.

Первая команда — выбор апплета по умолчанию и переход в корневую директорию с идентификатором 3f00 (этот идентификатор пожалуй единственное общее у токенов любых вендоров).
00:A4:00:04:00

Далее получаем список папок корневой директории
80:01:01:00:04:09:02:00:00:CD (команда является константой «Сообщить список папок»).
Должен быть получен ответ:
0a 02 66 66 0b 01 00 90 00

Второй по счёту байт в ответе размер полученных данных — два байта, то есть только одна папка (идентификатор файла или папки в APDU всегда занимает два байта).
И мы видим только одну папку с идентификатором 66 66, называемую Aladdin AID directory.

Читайте также:  Настройка монитора acer для игр

Сообщить список файлов (тоже константа)
80:01:02:00:04:09:02:00:00:CD
Должно быть получено
0a 00 0b 01 00 90 00
Ответ в позиции 01 — файлов 00.

Переходим в директорию 66 66
00 A4 08 04 02 66 66 00
Это команда SELECT FILE, её формат: четыре байта сама команда 00 A4 08 04, далее размер поля данных полного пути (в примере 02 байта), затем сам путь (в примере 66 66) и обязательно завершение 00.

Сообщить список папок директории 66 66
80:01:01:00:04:09:02:00:00:CD
Resv bytes:
0a 04 50 01 50 00 0b 01 00 90 00
В поле ответа 01 (размер ответа) указано 04, т.е. 4 байта = две папки 50 01 и 50 00, при этом 50 01 — служебная, а 50 00 основная, называемая PKCS#11 directory, где хранятся все данные

Сообщить список файлов директории 66 66
80:01:02:00:04:09:02:00:00:CD
Resv bytes:
0a 00 0b 01 00 90 00
Файлов здесь нет.

Как показали исследования видимых папок и файлов в директории 50 01 нет, поэтому переходим в основную директорию 50 00
00 A4 08 04 04 66 66 50 00 00
Сообщить список папок
80:01:01:00:04:09:02:00:00:CD
Ответ будет зависить от того что хранится на токене.
Сообщить список файлов
80:01:02:00:04:09:02:00:00:CD
Resv bytes:
0a 14 00 0f 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 0b 01 00 90 00
Мы видим 14 файлов (поле ответа 01), далее каждые 2 байта это имена файлов, затем идёт служебная информация.

У каждого токена изучаемых моделей всегда пристутствует системная директория b000 и в ней системный файл 0002, попробуем его прочитать, по этому же принципу можно читать и другие файлы.
Переходим в директорию b0 00
00 A4 08 04 06 66 66 50 00 B0 00 00
Получаем список файлов
80:01:02:00:04:09:02:00:00:CD
Resv bytes:
0a 02 00 02 0b 01 00 90 00
Видим файл 00 02 (байт в поле ответа 01 — размер имени (каждое имя всегда занимает два байта, следующие поля — имена файлов, в данном случае файл только один, что определяем по значению поля 01).

Выбрать файл 0002 из B000 по полному пути
00 A4 08 04 08 66 66 50 00 B0 00 00 02 00
Resv bytes:
01 01 02 02 02 00 02 03 02 00 10 04 08 00 ff 00 00 ff ff ff ff 05 00 90 00
Формат ответа здесь следующий: преамбула — 2 байта, тип файла — 1 байт (02 файл, 01 папка), разделитель — 2 байта, имя файла — 2 байта, разделитель — 2 байта, размер файла — 2 байта, разделитель — 2 байта, права доступа — 1 байт (00 — доступен для всех, 63 защищён пин кодом). Далее идёт некая служебная информация, завершающаяся кодом успешного выполнения APDU команды — 90 00.

Прочитать этот файл, последние два байта команды размер буфера сколько надо прочитать (в данном случае равен размеру файла).
80 18 00 00 04 0E 02 00 00 10
Resv bytes: (значение в каждом случае будет своё):
00 06 63 61 72 64 63 66 00 00 00 00 00 00 00 00 90 00

Читайте также:  Ubiquiti powerap n настройка

Аутентификацию на етокене я здесь не рассматриваю, так как она состоит из последовательности команд вопрос-ответ и происходит в зашифрованном виде (существует проект Antitoken где проблему авторизации на этих изделиях решили кардинально).
Некоторые другие токены, например JaCarta ГОСТ-2 поддерживают аутентификацию простой передачей пин кода.

Получить значения APDU команд любых смарт-карт и токенов можно путём перехвата трафика WinSCard.dll, запустив сниффер, скомпилированный отсюда (как показали эксперименты, этот сниффер устанавливается и запускается только под Win XP).

Справочно, возможные результаты выполнения APDU команд:
90 00 — OK
69 85 — Conditions of use not stisfied
63 00 — Authentication of host cryptogram failed (Ext auth)
64 00 — No specific diagnosis
67 00 — Wrong length in Lc
67 XX — Error, incorrect parameter P3 (ISO code)
68 81 — Logical channel not supported or is not active
69 82 — Security status not satisfied
69 83 — Secret code locked
69 85 — No currently selected EF, no command to monitor / no Transaction Manager File
6A 80 — The parameters in the data field are incorrect
6A 81 — Card is blocked or command not supported
6A 82 — File not found
6A 85 — Lc inconsistent with TLV structure
6A 86 — Incorrect P1 P2
6A 88 — Referenced data not found (Init upd)
6D 00 — Invalid instruction
6E 00 — Invalid class

Источник

SSH-аутентификация при помощи USB-ключа eToken Pro

В этой заметке я расскажу вам, как настроить SSH-аутентификацию при помощи USB-ключа eToken.

Для этого нам понадобятся:

— Собственно сам USB-ключ eToken Pro (в моем случае это eToken Pro 64k)
— Операционная система Windows с установленными драйверами eToken PKI Client
— Mozilla Firefox с установленным плагином Key Manager
— SSH-клиент с поддержкой смарт-карт. Лично мне нравится PuTTY SC — модифицированная версия PuTTY.

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

Создание открытого/закрытого ключа.

2) Вводим пользовательский пароль для eToken

3) В главном меню Key Manager выбираем «Generate Self-Signed Cert»

4) Заполняем поля как показано на рисунке и нажимаем «Generate Self-Signed Cert». Естественно вам необходимо ввести свои данные, такие как город, страна, и fqdn сервера. Также по желанию можно указать дополнительные свойства сертификата — срок действия и т.д.

5) Выберите нужный токен из списка и нажмите «ОК». Обратите внимание, что если вы генерируете сертификат сразу на токене то экспортировать закрытый ключ потом будет невозможно.

6) В главном меню Key Manager выделите только что созданный сертификат, и нажмите кнопку «Export»

7) В появившемся окне выберите формат «OpenSSH Pubkey» и нажмите кнопку «ОК»

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

Настройка аутентификации по ключу на сервере.

В качестве сервера в моем случае выступает машина с установленным Debian Lenny.

Вам необходимо убедиться что в конфигурации sshd разрешена аутентификация при помощи публичных ключей. Для этого необходимо в файле «sshd_config» указать значение параметра «PubkeyAuthentication» в «yes».

/.ssh/authorized_keys» добавляем наш публичный ключ полученный ранее (одной строкой). Обратите внимание, файл «.ssh/authorized_keys» находится в домашнем каталоге того пользователя, который потом будет логиниться по публичному ключу.

Читайте также:  Как сделать чтобы автомагнитола сохраняла настройки

Настройка SSH-клиента PuTTY SC на использование смарт-карт.

PuTTY SC — это модифицированная версия PuTTY. Единственное значительное отличие от оригинальной версии — поддержка смарт-карт.

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

При подключении вас попросят ввести пользовательский пин-код к USB-ключу.

Поздравляю, теперь вы можете использовать SSH-аутентификацию при помощи eToken Pro!

Примечание: несомненно, генерировать ключи можно различными способами, используя различное ПО и различные операционные системы. Связка Windows+Firefox была выбрана как наиболее простая и понятная.

Еще примечание: по вкусу можно отключить на сервере другие методы аутентификации, оставив только аутентификацию по ключу.

Источник

eToken PRO Java

Применение

Возможности

Двухфакторная аутентификация пользователей

Поддержка Java-апплетов

В электронных ключах eToken PRO (Java) базовые функции токена могут быть расширены за счет загрузки дополнительных приложений, разработанных на языке Java (Java-апплетов). Для разработки собственных апплетов необходим комплект разработчика eToken Java Card SDK (предоставляется по требованию технологическим партнерам).

Увеличенный объем защищенной памяти

По сравнению с электронными USB-ключами и смарт-картами предыдущего поколения eToken PRO (Java) оснащен увеличенным до 72 Кб объемом защищенной памяти для безопасного хранения персональных данных и ключевой информации пользователя.

Работа без установки драйвера eToken PKI Client

Электронные ключи eToken PRO (Java) поддерживают спецификацию Microsoft CCID (USB Chip/Smart Card Interface Devices), которая позволяет использовать eToken Minidriver – компактную версию драйвера eToken PKI Client с базовой функциональностью, которая загружается автоматически через службу Windows Update. Однако в этом случае существует ряд ограничений, а именно: недоступна работа с eToken из приложений, использующих интерфейс PKCS#11 (Mozilla Firefox, Lotus Notes и др.), а также отсутствует утилита «Свойства eToken», с помощью которой можно инициализировать и администрировать eToken. Для получения дополнительной информации о eToken Minidriver рекомендуем обратиться к документу «Сравнение eToken PKI Client и eToken Minidriver».

Возможность централизованного управления

Наличие системы eToken TMS (Token Management System), предназначенной для внедрения, использования и учета аппаратных средств аутентификации в масштабах компании, является удобным и простым в применении решением для централизованного управления электронными ключами eToken.

Модели

USB-ключ eToken PRO (Java) архитектурно реализован как USB карт-ридер с встроенной в него микросхемой (чипом) смарт-карты. Ключ выполнен в виде брелка и напрямую подключается к порту USB, при этом не требует для своей работы каких-либо дополнительных устройств.

Смарт-карта eToken PRO (Java) может использоваться с любым стандартным PC/SC совместимым ридером. Функционально USB-ключ и смарт-карта eToken PRO (Java) идентичны и выполнены на одной и той же микросхеме смарт-карты; они одинаково поддерживаются использующими их приложениями.

Кастомизация

Интеграция с системами контроля доступа
Cмарт-карты и USB-ключи eToken PRO (Java) на заказ могут выпускаться со встроенными пассивными радио-метками RFID для контроля физического доступа в помещения и контроля логического доступа к информационным ресурсам. Применяются в системах контроля и управления доступом (СКУД), бесконтактных «электронных проходных», системах учёта рабочего времени персонала и т.п.
Нанесение логотипа заказчика

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

Источник

Adblock
detector