Перехватив или подсмотрев PIN-код для токена, выполняющего роль средства строгой двухфакторной аутентификации, злоумышленник с использованием вредоносного ПО может попытаться получить несанкционированный доступ в личный кабинет электронного сервиса от лица легального пользователя.
Антифрод-терминал позволяет запрашивать ввод PIN-кода для используемого средства ЭП (смарт-карты или USB-токена) на своей клавиатуре. Это защищает от “троянов-кейлоггеров”, желающих заполучить PIN-код путём перехвата данных, вводимых на клавиатуре ПК.
Антифрод-терминал содержит внутренний файрвол, который блокирует попытки ввода из приложения PIN-кода для подключенной смарт-карты, поддерживающей спецификацию EMV (в частности, JaCarta-2 ГОСТ или JaCarta ГОСТ). Такой файрвол защищает от попыток вредоносного ПО ввести перехваченный или подсмотренный PIN-код в карту программно из приложения. PIN-код для смарт-карты JaCarta ГОСТ, подключенной к Антифрод-терминалу, разрешается вводить только на самом терминале. Для этого предусмотрена специальная команда, которую прикладное ПО должно отправить на терминал, который в ответ на эту команду запросит у пользователя ввести PIN-код на своей клавиатуре и попытается “залогиниться” на смарт-карте с использованием этого PIN-кода.
Прикладное ПО на стороне клиента
Пользователь
Антифрод-терминал
Прикладное ПО на стороне клиента
Предусмотрена специальная команда для Антифрод-терминала, в соответствии с которой Антифрод-терминал запрашивает PIN-код на своей клавиатуре, а после его ввода пользователем возвращает этот PIN-код прикладному ПО в качестве результата выполнения этой команды. При этом PIN-код возвращается в операционную систему ПК не в открытом, а в зашифрованном виде. Симметричный ключ шифрования терминал вырабатывает в соответствии с пунктом 5.2. VKO GOST R 34.10-2001 стандарта rfc4357. Библиотека из состава комплекта разработчика вырабатывает такой же ключ и выполняет расшифрование PIN-кода прозрачно для программы, вызвавшей команду запроса PIN-кода, возвращая ей этот код уже в открытом виде.
После получения PIN-кода от Антифрод-терминала прикладное ПО отправляет PIN-код на USB-токен обычным способом, как если бы этот код вводился на клавиатуре ПК. Рекомендуется использовать USB-токены JaCarta-2 ГОСТ или JaCarta ГОСТ с неизвлекаемым ключом электронной подписи.
Такая реализация защищает от “троянов-кейлоггеров”, желающих заполучить PIN-код путём перехвата данных, вводимых на клавиатуре ПК. Однако не защищает от перехвата PIN-кода в оперативной памяти ОС в ходе его передачи от прикладной программы на USB-токен. Поэтому при использовании USB-токенов в качестве средства ЭП для надёжной аутентификации рекомендуется делать дополнительный запрос аутентификации в личном кабинете на Антифрод-терминале. В этом случае сценарий безопасной аутентификации реализуется следующим образом:
Прикладное ПО на стороне сервера
Прикладное ПО на стороне клиента
Пользователь
OK
на терминале.Прикладное ПО на стороне клиента
Прикладное ПО на стороне сервера
Прикладное ПО на стороне клиента
Пользователь
Антифрод-терминал
Прикладное ПО на стороне клиента