СРЕДСТВО ЧТЕНИЯ СМАРТ-КАРТЫ С БЕЗОПАСНОЙ ФУНКЦИЕЙ ЖУРНАЛИРОВАНИЯ Российский патент 2017 года по МПК G06F21/55 G06F21/64 G06F21/77 G07F7/08 

Описание патента на изобретение RU2607620C2

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА СВЯЗАННЫЕ ЗАЯВКИ

[0001] Данная заявка связана с и испрашивает приоритет предварительной патентной заявки США №61/559503, поданной 14 ноября 2011 г., содержимое которой полностью включено в настоящий документ посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0002] Настоящее изобретение относится к обеспечению безопасности удаленного взаимодействия пользователей со службами посредством электронных носителей с помощью электронных подписей. Более конкретно настоящее изобретение относится к безопасным средствам чтения смарт-карт для обеспечения защиты подписи пользователем электронных данных с использованием смарт-карты.

УРОВЕНЬ ТЕХНИКИ

[0003] Постоянно увеличивающаяся роль удаленного доступа и взаимодействия пользователей со всеми видами служб посредством электронных носителей привела к росту потребности в электронных подписях пользователей. Из соображений безопасности такие электронные подписи предпочтительно являются результатом применения к некоторым электронным данным криптографического алгоритма, параметризованного криптографическим ключом, который связан с пользователем. В некоторых случаях криптографический алгоритм может включать в себя функцию хеширования по ключу, посредством чего комбинация секретного ключа и данных, подлежащих подписыванию, обрабатывается односторонней криптографической хеш-функцией или функцией свертки (такой как криптографические хеш-функции из семейств хеш-функций MD5, SHA-1, SHA-2 или SHA-256), и полученный в результате этого хеш или свертка составляет электронную подпись. В других случаях криптографический алгоритм может включать в себя симметричный шифрующий (или дешифрующий) блочный шифр, такой как (тройной) DES (Data Encryption Standard, стандарт шифрования данных) или AES (Advanced Encryption Standard, усовершенствованный стандарт шифрования), который может использоваться в режиме CBC (Cipher Block Chaining, сцепление блоков шифра) для того, чтобы сгенерировать MAC (Message Authentication Code, код аутентификации сообщений), который может составить электронную подпись. В других случаях, например в контексте PKI (Public Key Infrastructure, инфраструктура управления открытыми ключами), электронная подпись может быть сгенерирована с использованием схемы электронной подписи, которая основана на криптографии с асимметричными шифрами. В этих случаях данные, подлежащие подписыванию, зачастую хешируются или обрабатываются функцией свертки, и полученный в результате этого хеш или свертка затем шифруется асимметричным алгоритмом шифрования с использованием секретного ключа пользователя. Примеры асимметричных криптографических алгоритмов, используемых для генерирования электронных подписей, включают в себя RSA (алгоритм цифровой подписи Райвеста-Шамира-Адлемана) и DSA (Digital Signature Algorithm, алгоритм цифровой подписи). Для того, чтобы улучшить мобильность и безопасность, секретный или личный ключ часто хранится в отдельном безопасном контейнере, который обычно также способен к выполнению криптографических операций, включающих в себя этот ключ. Популярное решение для генерирования электронных подписей включает в себя смарт-карту, включающую в себя защищенную память для надежного хранения одного или более секретных или личных ключей и другую информацию, относящуюся к безопасности, такую как ПИН-коды (Personal Identification Number, персональный идентификационный номер), профили безопасности, счетчики попыток ввода ПИН-кода, …, а также криптографический механизм для использования этих секретных или личных ключей с некоторым симметричным или асимметричным криптографическим алгоритмом для того, чтобы генерировать криптограммы на основе данных, получаемых от хоста. Большинство смарт-карт соответствуют по меньшей мере частям набора стандартов ISO/IEC 7816. Во многих случаях криптографическая функциональность смарт-карты защищается требованием ввода пользователем правильного ПИН-кода.

[0003] В типичном варианте использования пользователь использует основное вычислительное устройство (хост), например PC (персональный компьютер), для взаимодействия с некоторой удаленной службой, например с веб-сайтом банковского интернет-обслуживания. У пользователя есть смарт-карта (как описано выше), которая вставляется в средство чтения смарт-карты, которое в свою очередь может обмениваться информацией с основным вычислительным устройством (то есть может получать инструкции от хоста и возвращать свои ответы хосту). В типичном случае средство чтения смарт-карты является довольно компактным устройством, которое присоединено к основному вычислительному устройству посредством соединения USB (Universal Serial Bus, универсальная последовательная шина). Удаленный пользователь просматривает на основном вычислительном устройстве документ или данные, которые должны быть подписаны. После одобрения пользователем документа или данных, которые должны быть подписаны, документ или данные могут быть переданы приложением (которое может быть специальным приложением или веб-браузером) криптографической библиотеке для выполнения подписи. Примеры API (Application Programming Interface, прикладной программный интерфейс), которые часто используются для интерфейса между приложением и такой криптографической библиотекой, включают в себя MS-CAPI (Microsoft Cryptography API) и прикладной программный интерфейс, определенный стандартом PKCS#11 (Public-key Cryptography Standards # 11), опубликованным лабораториями RSA и включенным в настоящий документ посредством ссылки. Криптографическая библиотека (часто называемая промежуточным программным обеспечением) может преобразовать запрос приложения на подпись в последовательность инструкций для смарт-карты в виде команда-ответ, обмен которыми со смарт-картой осуществляется посредством драйвера средства чтения смарт-карты. Прикладным программным интерфейсом, который часто используется для таких драйверов средства чтения смарт-карты на персональных компьютерах, является PC/SC (Personal Computer/Smart Card). Непосредственно перед фактическим подписанием с использованием смарт-карты от пользователя обычно требуется ввести на основном вычислительном устройстве ПИН-код, который затем предоставляется смарт-карте для проверки. В большинстве случаев средство чтения смарт-карты является так называемым средством чтения прозрачного типа, что означает, что это средство не выполняет никаких функций безопасности и по существу является лишь транспортной средой для того, чтобы передавать команды от основного вычислительного устройства (далее также называемого главным компьютером или хостом) к смарт-карте, и передавать ответы от смарт-карты главному компьютеру.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

ТЕХНИЧЕСКАЯ ПРОБЛЕМА

[0004] В то время как криптографические смарт-карты, как правило, оснащены всеми видами сложных методов для пресечения всех видов атак, существует фундаментальная проблема безопасности в описанном выше сценарии, которая не может быть решена мерами, предпринимаемыми на смарт-карте. Основная проблема в действительности заключается в том, что в кратко описанном выше сценарии (который типичен для способа, которым смарт-карты используются для генерации электронных подписей) все взаимодействие с пользователем, включая очень секретные операции, такие как ввод PIN-кода, происходит на главном компьютере. В огромном большинстве случаев, однако, главный компьютер нельзя рассматривать как защищенную безопасную платформу. На самом деле большинство основных вычислительных устройств являются персональными компьютерами или подобными им устройствами, которые по самой своей природе являясь открытыми вычислительными платформами общего назначения, обычно очень уязвимы для всех видов вирусов и вредоносного программного обеспечения. Это делает настройку вышеописанного сценария очень уязвимой для атак, в которых вредоносное программное обеспечение на основном компьютере пользователя вмешивается в пользовательский интерфейс главного компьютера, например для того, чтобы получить ПИН-код, который вводит пользователь (например, с использованием перехватчиков клавиатурного ввода), или даже подменяет подписываемые данные, которые пользователь просмотрел и одобрил, мошенническими данными прежде, чем эти данные будут отправлены смарт-карте для подписывания.

[0005] Одно решение заключается в том, чтобы обеспечить средства чтения смарт-карты, снабженные безопасной клавиатурой (или некоторым другим безопасным интерфейсом ввода данных для приема ввода от пользователя), которые позволяют пользователю вводить ПИН-код смарт-карты на средстве чтения смарт-карты, а не на небезопасном хосте, после чего средство чтения смарт-карты может представить введенный ПИН-код непосредственно смарт-карте, не передавая его хосту. Это решение, однако, не защищает от атак, которые подменяют подписываемые данные, в результате чего данные, которые реально представляются смарт-карте для подписания, отличаются от данных, которые были рассмотрены и одобрены пользователем на хосте.

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

[0007] Для того, чтобы предотвратить этот последний тип атаки, средство чтения смарт-карты может обеспечить некоторую разновидность брандмауэра, то есть средство чтения смарт-карты может сканировать каждую входящую команду смарт-карты и проверять, соответствует ли она команде подписи. В случае, если полученная команда является командой подписи, средство чтения смарт-карты может тогда принять соответствующие меры, чтобы гарантировать, что хост не способен послать смарт-карте команды подписи, содержащие данные, которые не были представлены (и одобрены) пользователю на безопасном дисплее средства чтения смарт-карты. Например, средство чтения смарт-карты может автоматически блокировать команду (например, когда средство чтения смарт-карты поддерживает безопасную команду подписи средства чтения смарт-карты, в которой хост представляет данные для подписывания средству чтения смарт-карты, после чего средство чтения смарт-карты представляет данные пользователю на своем безопасном дисплее, и только после одобрения пользователя создает и отправляет смарт-карте команду подписи, содержащую одобренные данные). Альтернативно, средство чтения смарт-карты может извлечь подписываемые данные из полученной команды, представить эти данные пользователю, и только после того, как будет получено одобрение пользователя, пропустить команду подписи к смарт-карте.

[0008] Такое безопасное средство чтения смарт-карты, поддерживающее безопасный ввод ПИН-кода на клавиатуре средства чтения смарт-карты, безопасный анализ и одобрение подписываемых данных на дисплее средства чтения смарт-карты, а также брандмауэр, дает возможность предотвратить атаки. Тем не менее, некоторые проблемы все равно остаются. В частности, остаются следующие две проблемы.

[0009] Во-первых, брандмауэр средства чтения смарт-карты настраивается на команду подписи, поддерживаемую определенной смарт-картой. На практике набор команд смарт-карт для подписывания данных не стандартизирован. Как следствие, одно и то же средство чтения смарт-карт может очень хорошо защитить первый тип смарт-карт, но может оставить незащищенным второй тип смарт-карт (поддерживающий команду подписи, которая не распознается брандмауэром средства чтения смарт-карты). Если пользователь изменяет тип подписывающей смарт-карты или хочет использовать различные типы смарт-карт, это может создать проблему для безопасности. Острота этой проблемы может быть уменьшена за счет обеспечения реконфигурируемости брандмауэра, однако для того, чтобы избежать создания слабых мест в безопасности, реконфигурирование брандмауэра должно происходить в соответствии с безопасной процедурой, которая легко может возложить тяжелое бремя на средство чтения смарт-карты и/или уменьшить удобство использования средства чтения смарт-карты.

[0010] Другая проблема состоит в том, что это решение не препятствует атакующему убедить пользователей использовать свою смарт-карту для подписи на небезопасных или поддельных средствах чтения смарт-карты.

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

ТЕХНИЧЕСКОЕ РЕШЕНИЕ ПРОБЛЕМЫ

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

[0013] Настоящее изобретение основано на понимании автором (авторами) настоящего изобретения того, что в то время как очень трудно или даже невозможно гарантировать, что атакующий не сможет убедить пользователя использовать небезопасное средство чтения смарт-карт вместо безопасного для того, чтобы помешать такой атаке, будет вполне достаточно обнаружить, что было использовано небезопасное средство чтения смарт-карт.

[0014] В одном варианте осуществления в соответствии с настоящим изобретением способ для обнаружения того, что было использовано небезопасное средство чтения смарт-карт, включает в себя разрешение пользователю использовать безопасное средство чтения смарт-карт, которое предоставляет доказательство своего использования, и допущение (или заключение) при отсутствии такого доказательства о том, что вместо безопасного было использовано небезопасное средство чтения смарт-карт.

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

[0016] Настоящее изобретение дополнительно основано на понимании автором (авторами) настоящего изобретения того, что возможно средству чтения смарт-карты нет никакой необходимости иметь точное знание чувствительных команд смарт-карты, если главный компьютер может передать эту информацию средству чтения смарт-карты и если средство чтения смарт-карты способно предоставить доказательства действий, которые имели место на безопасном средстве чтения смарт-карты (например, какие именно данные были представлены для одобрения пользователю), и обмен какими именно командами был осуществлен со смарт-картой (например, какая команда подписи использовалась и с какой информационной нагрузкой). Это позволяет обнаружить любое несоответствие между тем, что фактически произошло, и тем, что должно было произойти. Это в свою очередь означает, что потребность в брандмауэре может быть меньше или что брандмауэр может быть сделан менее ограничивающим так, чтобы средство чтения смарт-карты могло быть более гибким относительно типов используемых смарт-карт и режимов использования этих смарт-карт.

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

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

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

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

[0021] В некоторых вариантах осуществления безопасное средство чтения смарт-карты поддерживает возможность добавления содержимого одного журнала к содержимому другого журнала. В некоторых вариантах осуществления безопасное средство чтения смарт-карты выполнено с возможностью отправки содержимого журнала смарт-карте в качестве команды смарт-карты. В некоторых вариантах осуществления безопасное средство чтения смарт-карты выполнено с возможностью отправки содержимого журнала смарт-карте в качестве части команды смарт-карты. В некоторых вариантах осуществления безопасное средство чтения смарт-карты выполнено с возможностью генерировать подпись средства чтения смарт-карты по содержимому или по части содержимого одного или более журналов.

[0022] В некоторых вариантах осуществления безопасное средство чтения смарт-карты включает в себя защищенную память для хранения одного или более секретных или личных ключей средства чтения смарт-карты, которые оно использует с криптографическим алгоритмом для того, чтобы сгенерировать подпись средства чтения смарт-карты. В некоторых вариантах осуществления криптографические алгоритмы, которые безопасное средство чтения смарт-карты использует для того, чтобы сгенерировать подпись средства чтения смарт-карты, включают в себя по меньшей мере один из алгоритмов симметричного шифрования или дешифрования, таких как DES или AES, криптографический алгоритм хеширования с ключом (например, на основе SHA-1 или SHA-256), криптографическая функция свертки (например, на основе SHA-1 или SHA-256) или алгоритм цифровой подписи на основе криптографии с асимметричными шифрами (например, на основе алгоритма RSA, или алгоритма DSA, или эллиптических кривых).

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

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

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

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

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

[0028] В другом наборе вариантов осуществления средство чтения смарт-карты дополнительно выполнено с возможностью получить запрос посредством команды средства чтения смарт-карты и зарегистрировать полученный запрос.

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

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

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

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

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

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

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

[0036] В некоторых вариантах осуществления этого способа передача вставленной смарт-карте данных, которые должны быть подписаны, включает в себя обмен между главным компьютером и вставленной смарт-картой прозрачными командами смарт-карты для передачи смарт-карте данных, которые должны быть подписаны; причем запись средством чтения смарт-карты в журнал на средстве чтения смарт-карты данных, которые должны быть подписаны, переданных смарт-карте, или электронной подписи смарт-карты, сгенерированной вставленной смарт-картой, включает в себя запись прозрачных команд смарт-карты, которыми обмениваются между собой главный компьютер и вставленная смарт-карта для передачи смарт-карте данных, которые должны быть подписаны, или для получения электронной подписи смарт-карты, сгенерированной вставленной смарт-картой, на данных, переданных смарт-карте для подписания.

ПОЛЕЗНЫЕ ЭФФЕКТЫ

[0037] Важным преимуществом настоящего изобретения является то, что оно позволяет обнаруживать атаку, в которой атакующий убеждает пользователя использовать его карту для подписи на небезопасном средстве чтения смарт-карты. Другое преимущество настоящего изобретения состоит в том, что оно позволяет обнаруживать несогласованности между тем, что должно было произойти на средстве чтения смарт-карты и/или со смарт-картой и что произошло фактически, так что брандмауэр, применяемый средством чтения смарт-карты, может быть ослаблен, что в свою очередь означает, что средство чтения смарт-карты может использоваться с более широким диапазоном карт или в более широком диапазоне вариантов использования.

[0038] Другие преимущества настоящего изобретения будут очевидны для специалиста в данной области техники.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

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

[0043] Фиг. 1 иллюстрирует безопасное средство чтения смарт-карты в соответствии с одним вариантом осуществления настоящего изобретения;

[0044] Фиг. 2 иллюстрирует систему для проведения безопасных транзакций в соответствии с одним аспектом настоящего изобретения; и

[0045] Фиг. 3a и 3b иллюстрируют способ для защиты удаленных транзакций в соответствии с одним аспектом настоящего изобретения.

СПОСОБ (СПОСОБЫ) ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

[0046] Фиг. 1 иллюстрирует безопасное средство (100) чтения смарт-карты в соответствии с одним аспектом настоящего изобретения, включающее в себя коммуникационный интерфейс (110) для обмена информацией с главным компьютером (99), слот (120) средства чтения смарт-карты для приема смарт-карты (98), разъем (130) смарт-карты для обмена информацией со смарт-картой (98); по меньшей мере один компонент памяти (140) для безопасного хранения одного или более криптографических ключей и/или одного или более файлов журнала, пользовательский интерфейс, включающий в себя выходной интерфейс (151) пользователя для того, чтобы представлять информацию пользователю, и интерфейс (152) ввода данных пользователем для того, чтобы получать указания пользователя, один или более обрабатывающих компонентов (160) для обмена информацией с главным компьютером (99), обмена информацией со смарт-картой (98) и управления пользовательским интерфейсом (151/152). Средство (100) чтения смарт-карты дополнительно выполнено с возможностью работать в безопасном режиме журналирования, в котором средство (100) чтения смарт-карты поддерживает журнал, содержимое которого относится к безопасности и может отражать по меньшей мере некоторые из событий, связанных с безопасностью, которые касаются средства чтения смарт-карты и/или использования средства чтения смарт-карты и которые происходят в то время, как средство чтения смарт-карты находится в безопасном режиме журналирования и это может оказать влияние на уровень безопасности. События, которые средство чтения смарт-карты может таким образом записывать в файл журнала, могут включать в себя команды средства чтения смарт-карты, которые средство чтения смарт-карты получает от приложения (например, локальное приложение на хосте или удаленное приложение на сервере, соединенном с главным компьютером), такие как, например, команды средства чтения смарт-карты для представления данных пользователю для анализа и одобрения или для установки или изменения некоторых данных конфигурации, команды смарт-карты, которыми средство чтения смарт-карты обменивается со вставленной смарт-картой (и которые средство чтения смарт-карты, возможно, получило от приложения), такие как, например, команды смарт-карты для подписывания данных, взаимодействия с пользователем, такие как одобрение или отклонение пользователем данных, которые средство чтения смарт-карты представляет пользователю, другие события, которые могут иметь отношение к безопасности, такие как обнаружения условий, которые могут указывать на попытку постороннего вмешательства в средство чтения смарт-карты. Средство (100) чтения смарт-карты дополнительно выполнено с возможностью генерировать подпись средства чтения смарт-карты на упомянутом журнале, используя по меньшей мере один из одного или более криптографических ключей, хранимых по меньшей мере одним компонентом памяти (140). Для генерирования подписи средства чтения смарт-карты средство чтения смарт-карты может включать в себя обрабатывающий компонент (162), который включает в себя криптографический механизм, способный к выполнению криптографических вычислений с использованием по меньшей мере одного из одного или более криптографических ключей, хранимых по меньшей мере одним компонентом памяти (140). В некоторых вариантах осуществления средство обработки (160) может включать в себя обрабатывающий компонент (162). В некоторых вариантах осуществления вышеупомянутые компоненты могут содержаться в корпусе (170). В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью генерировать подпись средства чтения смарт-карты на упомянутом файле журнала путем применения к содержимому файла журнала (или к его представлению, такому как свертка или криптографический хеш) асимметричного криптографического алгоритма, параметризованного личным ключом пары публичных/личных ключей, хранимой по меньшей мере в одном компоненте памяти (140) средства чтения смарт-карты.

[0047] В некоторых вариантах осуществления коммуникационный интерфейс (110) для обмена информацией с главным компьютером (99) может включать в себя интерфейс USB, который может включать в себя разъем USB, который может использоваться для того, чтобы подсоединить средство (100) чтения смарт-карты кабелем USB (97) к порту USB главного компьютера (99). В некоторых вариантах осуществления средство обработки (160) для обмена информацией с главным компьютером (99) может быть выполнено с возможностью поддерживать протокол USB с главным компьютером (99). В некоторых вариантах осуществления кабель USB (97) может быть прикреплен к средству (100) чтения смарт-карты. В других вариантах осуществления кабель USB (97) может быть отсоединяемым от средства (100) чтения смарт-карты.

[0048] В некоторых вариантах осуществления смарт-карта (98) является соответствующей или совместимой с по меньшей мере частью спецификаций стандарта ISO/IEC 7816 для смарт-карт, и слот (120) средства чтения смарт-карты для приема смарт-карты (98), разъем (130) смарт-карты для обмена информацией со смарт-картой (98) и средство обработки (160) для обмена информацией со смарт-картой (98) выполнены с возможностью работать со смарт-картами, соответствующими или совместимыми с по меньшей мере частью спецификаций стандарта ISO/IEC 7816 для смарт-карт, а также выполнены с возможностью обработки протоколов в соответствии с по меньшей мере частью спецификаций стандарта ISO/IEC 7816.

[0049] В некоторых вариантах осуществления смарт-карта (98) может поддерживать криптографические функции для подписи данных. В некоторых вариантах осуществления смарт-карта может поддерживать функцию подписи данных, основанную на криптографии с симметричными шифрами. В некоторых вариантах осуществления смарт-карта может поддерживать функцию подписи данных, основанную на криптографии с асимметричными шифрами. В некоторых вариантах осуществления смарт-карта включает в себя защищенную память для того, чтобы надежно хранить один или более симметричных или асимметричных криптографических ключей. В некоторых вариантах осуществления смарт-карта включает в себя безопасный криптографический агент для выполнения криптографических операций, таких как симметричное или асимметричное шифрование или дешифрование, а также операций подписи данных, основанных на криптографии с симметричными шифрами или на криптографии с асимметричными шифрами. В некоторых вариантах осуществления безопасный криптографический агент смарт-карты может быть выполнен с возможностью использования одного или более криптографических ключей, хранимых в защищенной памяти смарт-карты. В некоторых вариантах осуществления некоторые из операций или функций, поддерживаемых смарт-картой, могут быть защищены или могут выполняться только при условии корректного ввода значения ПИН-кода.

[0050] В некоторых вариантах осуществления средство (100) чтения смарт-карты может включать в себя часы (180) для обеспечения значений времени. В некоторых вариантах осуществления эти часы (180) могут включать в себя часы реального времени. В некоторых вариантах осуществления средство чтения смарт-карты может использовать значение времени, обеспеченное часами (180), для добавления отметки времени к определенным данным или действиям или событиям. В некоторых вариантах осуществления значение времени может отражать абсолютное реальное время, то есть значение времени средства чтения смарт-карты может иметь прямое отношение к реальному всемирному времени. В других вариантах осуществления значение времени может быть значением времени относительно некоторого события, специфичного для средства чтения смарт-карты, такого как, например, момент производства средства чтения смарт-карты. В некоторых вариантах осуществления значение времени средства чтения смарт-карты может быть, например, значением времени системы Unix (в некоторых вариантах осуществления в пределах определенных границ точности), значением GMT (время по Гринвичу) или значением UMT (универсальное метрическое время). В некоторых вариантах осуществления часы реального времени могут указывать на текущее время в пределах определенных границ точности. В некоторых вариантах осуществления часы (180) указывают на значение времени, которое синхронизируется (в пределах определенных границ точности) со значением часов сервера.

[0051] Доказательство постороннего вмешательства, обнаружение постороннего вмешательства и противодействие постороннему вмешательству.

[0052] В некоторых вариантах осуществления безопасное средство (100) чтения смарт-карты выполнено с возможностью гарантированного обнаружения и/или противодействия попыткам постороннего вмешательства в средство чтения смарт-карты. В некоторых вариантах осуществления корпус (170) средства (100) чтения смарт-карты выполнен с возможностью противодействия открытию корпуса (170) и/или увеличения вероятности того, что пользователь заметит попытки открыть корпус (170) посредством деформации корпуса (170) (доказательство постороннего вмешательства). В некоторых вариантов осуществления части, которые вместе составляют корпус (170), могут быть сварены или склеены так, чтобы попытки отсоединить эти части приводили к очевидной деформации корпуса (170). В некоторых вариантах осуществления средство (100) чтения смарт-карты включает в себя переключатель, который обнаруживает открытие корпуса (170). В некоторых вариантах осуществления средство (100) чтения смарт-карты выполнено с возможностью принятия соответствующих мер после обнаружения попытки постороннего вмешательства. В некоторых вариантах осуществления средство (100) чтения смарт-карты может стереть определенные уязвимые данные, такие как криптографические ключи, или средство (100) чтения смарт-карты может (возможно, безвозвратно) войти в режим ошибки или прекратить функционирование после обнаружения попытки постороннего вмешательства в средство (100) чтения смарт-карты. В некоторых вариантах осуществления средство (100) чтения смарт-карты может установить и запомнить информацию, относящуюся к обнаружению попытки постороннего вмешательства (такую как дата и время и/или тип попытки постороннего вмешательства), и включать эту информацию в последующие вычисления подписи средства чтения смарт-карты.

[0053] В некоторых вариантах осуществления средство (100) чтения смарт-карты может включать в себя автономный источник питания, например, для того, чтобы быть в состоянии стать или остаться активным даже будучи не подсоединенным к главному компьютеру (99), например, для того, чтобы гарантировать активное обнаружение постороннего вмешательства, позволить часам (180) поддерживать реальное время или обеспечить питание энергозависимой памяти (140). В некоторых вариантах осуществления источник питания может включать в себя батарею. В некоторых вариантах осуществления батарея может быть заменяемой.

[0054] Средство (100) чтения смарт-карты может иметь безопасный пользовательский выходной интерфейс (например, безопасный дисплей) и безопасный входной интерфейс (например, безопасную клавиатуру). В некоторых вариантах осуществления средство чтения смарт-карты имеет выходной интерфейс, который безопасен за счет того, что им полностью управляет средство чтения смарт-карты и что он не может использоваться для представления данных или информации пользователю внешним процессом по отношению к средству чтения смарт-карты, если этот внешний процесс не авторизован и не управляется средством чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты имеет входной интерфейс, который безопасен за счет того, что им полностью управляет средство чтения смарт-карты и что он не может использоваться для получения данных или информации от пользователя внешним процессом по отношению к средству чтения смарт-карты, если этот внешний процесс не авторизован и не управляется средством чтения смарт-карты. В некоторых вариантах осуществления безопасность безопасного входного и выходного интерфейсов поддерживается тем, что средство чтения смарт-карты не позволяет никаких изменений его встроенного микропрограммного обеспечения или обеспечивает безопасный механизм обновления встроенного микропрограммного обеспечения, который позволяет изменение встроенного микропрограммного обеспечения средства чтения смарт-карты только через безопасный протокол, который гарантирует, что средство чтения смарт-карты принимает только авторизованные обновления встроенного микропрограммного обеспечения из доверенного источника.

[0055] Средство (100) чтения смарт-карты может быть выполнено с возможностью гарантировать безопасность встроенного микропрограммного обеспечения и/или поддерживать безопасную перепрошивку встроенного микропрограммного обеспечения.

[0056] Обрабатывающие компоненты (160) могут включать в себя один или более обрабатывающих компонентов. Эти обрабатывающие компоненты могут включать в себя микрочипы, интегральные схемы, микроконтроллеры, микропроцессоры, FPGA (программируемые пользователем логические микросхемы), ASIC (специализированные интегральные схемы) и т.п.

[0057] Память (140) может быть выполнена с возможностью безопасного хранения криптографических ключей. Память (140) может включать в себя один или более компонентов памяти, включающих в себя оперативную память произвольного доступа RAM (возможно с аварийным батарейным питанием), постоянное запоминающее устройство ROM, электрически стираемое программируемое постоянное запоминающее устройство EEPROM, флэш-память или другие типы компонентов памяти. В некоторых вариантах осуществления память (140) может включать в себя один или более модулей безопасного доступа SAM. В некоторых вариантах осуществления память (140) может включать в себя один или более модулей идентификации абонента SIM. В некоторых вариантах осуществления память (140) может включать в себя одну или более внутренних смарт-карт или микросхемы смарт-карты. Средство (100) чтения смарт-карты может быть выполнено с возможностью защиты конфиденциальности хранящихся чувствительных данных, таких как, например, секретные данные, которые могут включать в себя криптографические ключи. Эти секретные криптографические ключи могут включать в себя симметричные криптографические ключи, которые будут использоваться с алгоритмами симметричного шифрования, и/или асимметричные криптографические ключи, которые будут использоваться с асимметричными криптографическими алгоритмами, такие как личные ключи или пары "публичный ключ/личный ключ". Средство (100) чтения смарт-карты может быть выполнено с возможностью стирания некоторых областей памяти после обнаружения попыток постороннего вмешательства в средство чтения смарт-карты. Некоторое содержимое памяти (140) может быть зашифровано.

[0058] Средство (100) чтения смарт-карты также может быть выполнено с возможностью хранения публичных ключей и/или сертификатов, связанных с личными ключами, в памяти (140).

[0059] Средство (100) чтения смарт-карты может быть выполнено с возможностью поддерживать криптографические возможности, такие как поддержка вычислений для асимметричных криптографических алгоритмов и/или алгоритмов симметричного шифрования и/или хеш-функций. Средство чтения смарт-карты может быть выполнено с возможностью генерировать подписи средства чтения смарт-карты на данных, представляющих события, связанные с безопасностью, а также действия, которые могут включать в себя данные, представляющие собой команды средства чтения смарт-карты, которые средство чтения смарт-карты получает от хоста (99), команды смарт-карты, которыми средство чтения смарт-карты обменивается со вставленной смарт-картой (98), данные, которые средство чтения смарт-карты представляет пользователю для одобрения (например, посредством пользовательского выходного интерфейса (151)), или параметры конфигурации, которые средство чтения смарт-карты применяет при обработке любого из вышеперечисленного. Средство (100) чтения смарт-карты, кроме того, может быть выполнено с возможностью поддерживать журналы определенных событий, связанных с безопасностью, и действий, которые могут включать в себя обмен командами средства чтения смарт-карты с хостом, обмен командами смарт-карты со вставленной смарт-картой, и/или взаимодействие с пользователем. Безопасное средство (100) чтения смарт-карты может быть выполнено с возможностью генерировать подпись средства чтения смарт-карты на одном или более из этих журналов.

[0060] Средство (100) чтения смарт-карты может генерировать подпись средства чтения смарт-карты путем применения к данным, которые должны быть подписаны, криптографического алгоритма, параметризованного криптографическим ключом, хранящимся в памяти (140). Криптографический алгоритм может включать в себя функцию хеширования по ключу, посредством чего комбинация секретного ключа и данных, которые должны быть подписаны, обрабатывается односторонней криптографической хеш-функцией или функцией свертки (такой как криптографические хеш-функции из семейств хеш-функций MD5, SHA-1, SHA-2 или SHA-256) и полученный в результате этого хеш или свертка составляет электронную подпись. Криптографический алгоритм может включать в себя симметричный шифрующий (или дешифрующий) блочный шифр, такой как (тройной) DES (Data Encryption Standard, стандарт шифрования данных) или AES (Advanced Encryption Standard, усовершенствованный стандарт шифрования), который может использоваться (например, в режиме CBC (Cipher Block Chaining, сцепление блоков шифра) или в некотором другом режиме сцепления блоков) для того, чтобы сгенерировать MAC (Message Authentication Code, код аутентификации сообщений), который может составить электронную подпись. Средство чтения смарт-карты может сгенерировать подпись средства чтения смарт-карты, используя схему электронной подписи, которая основана на криптографии с асимметричными шифрами. В этих случаях данные, которые должны быть подписаны, могут быть хешированы или обработаны функцией свертки, и полученный в результате этого хеш или свертка затем шифруется асимметричным алгоритмом шифрования с использованием секретного ключа пользователя. Примеры асимметричных криптографических алгоритмов, используемых для генерирования электронных подписей, включают в себя RSA (алгоритм цифровой подписи Райвеста-Шамира-Адлемана) и DSA (Digital Signature Algorithm, алгоритм цифровой подписи).

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

[0062] Брандмауэр.

[0063] Средство чтения смарт-карты может поддерживать брандмауэр, который проверяет команды смарт-карты, отправленные хостом и предназначенные для смарт-карты, посредством чего средство чтения смарт-карты может блокировать команды в зависимости от определенных критериев. В некоторых вариантах осуществления средство чтения смарт-карты может конфигурировать брандмауэр в зависимости от типа смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты определяет тип смарт-карты посредством одной или более команд смарт-карты SELECT APPLICATION. В некотором варианте осуществления брандмауэр поддерживает список команд смарт-карты, которые должны быть блокированы (при этом другие команды смарт-карты брандмауэром пропускаются). В некоторых вариантах осуществления брандмауэр поддерживает список команд смарт-карты, которые можно пропускать (при этом все другие команды смарт-карты брандмауэром блокируются). В некоторых вариантах осуществления брандмауэр распознает команды смарт-карты на основе значения определенных байтов в заголовке команды (таких как байты CLA, INS, P1 и/или P2). В некоторых вариантах осуществления средство чтения смарт-карты может иметь брандмауэр, который может проверять и/или изменять содержимое некоторых команд смарт-карты. Команды смарт-карты, которые средство чтения смарт-карты получает от хоста и которые хост намеревается передать смарт-карте через средство чтения смарт-карты и которые средство чтения смарт-карты пересылает смарт-карте, не блокируя их и не изменяя их содержимое, могут упоминаться как прозрачные команды смарт-карты. Если средство чтения смарт-карты работает в режиме, в котором никакие команды смарт-карты не блокируются и не изменяются брандмауэром, тогда о средстве чтения смарт-карты можно сказать, что оно работает в прозрачном режиме.

[0064] Команды средства чтения смарт-карты.

[0065] Средство чтения смарт-карты может быть выполнено с возможностью получать и выполнять команды средства чтения смарт-карты от главного компьютера (то есть, например, от локального приложения на главном компьютере или от удаленного приложения на сервере приложений, соединенном с главным компьютером). Такие команды средства чтения смарт-карты могут включать в себя команды для изменения данных конфигурации средства чтения смарт-карты, для ввода средства чтения смарт-карты в безопасный режим журналирования, для безопасной проверки идентификационных данных пользователя (такой как безопасный ввод ПИН-кода), для представления средством чтения смарт-карты определенных данных пользователю и для одобрения или отклонения пользователем представленных данных и т.д.

[0066] Безопасная аутентификация пользователя.

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

[0068] Например, в некоторых вариантах осуществления средство чтения смарт-карты может поддерживать команды средства чтения смарт-карты, которые могут использоваться для того, чтобы дать средству чтения смарт-карты команду запросить у пользователя ввести ПИН-код (или пароль), получить ПИН-код (или пароль), введенный пользователем, и передать полученный ПИН-код (или пароль) смарт-карте для того, чтобы он был проверен смарт-картой. В некоторых вариантах осуществления такие команды средства чтения смарт-карты для безопасного ввода ПИН-кода могут содержать параметры, указывающие средству чтения смарт-карты, как построить команду смарт-карты PIN Verify. В некоторых вариантах осуществления средство чтения смарт-карты выполнено с возможностью стирания из памяти всех копий ПИН-кода или значения пароля после того, как он был передан смарт-карте для проверки.

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

[0070] Безопасное подписывание.

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

[0072] Рассмотрение и одобрение данных.

[0073] В некоторых вариантах осуществления средство чтения смарт-карты может поддерживать команды средства чтения смарт-карты, которые позволяют пользователю рассмотреть и одобрить данные, передаваемые приложением средству чтения смарт-карты. В некоторых вариантах осуществления такие команды средства чтения смарт-карты могут включать в себя команды средства чтения смарт-карты для инициирования безопасного подписания, как описано выше. В некоторых вариантах осуществления такие команды средства чтения смарт-карты могут включать в себя команды средства чтения смарт-карты, которые не позволяют средству чтения смарт-карты автоматически передавать смарт-карте на подпись рассмотренные и одобренные данные. Например, в некоторых вариантах осуществления средство чтения смарт-карты может поддерживать команды средства чтения смарт-карты, которые позволяют пользователю рассмотреть и одобрить данные, передаваемые приложением средству чтения смарт-карты, посредством чего средство чтения смарт-карты после одобрения данных пользователем добавляет одобренные данные (или данные, представляющие одобренные данные, такие как команда (команды) средства чтения смарт-карты, содержащая эти данные или хеш этих данных) в файл журнала. После этого приложение может передать те же самые данные смарт-карте для подписания, например, путем отправки смарт-карте прозрачных команд смарт-карты. Средство чтения смарт-карты может также добавить их в файл журнала. После этого средство чтения смарт-карты может подписать файл журнала. Подпись средства чтения смарт-карты на файле журнала таким образом доказывает, что данные, которые были подписаны смарт-картой, были также рассмотрены и одобрены пользователем на безопасном средстве чтения смарт-карты.

[0074] В некоторых вариантах осуществления данные, которые должны быть рассмотрены и одобрены пользователем, визуализируются средством чтения смарт-карты на, например, (безопасном) дисплее средства чтения смарт-карты. В некоторых вариантах осуществления данные, которые должны быть рассмотрены и одобрены пользователем, могут быть представлены пользователю средством чтения смарт-карты, например, посредством генерирования искусственной речи. В некоторых вариантах осуществления пользователь может одобрить данные, например, путем нажатия кнопки OK на клавиатуре средства чтения смарт-карты. В некоторых вариантах осуществления пользователь может отклонить данные, например, путем нажатия кнопки отмены на (безопасной) клавиатуре средства чтения смарт-карты.

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

[0076] Безопасный режим журналирования.

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

[0078] Механизмы, которые средство чтения смарт-карты может использовать для добавления данных в файл журнала.

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

[0080] В некоторых вариантах осуществления средство чтения смарт-карты может форматировать данные, которые оно добавляет к файлу журнала, и добавлять отформатированные данные к файлу журнала, как описано выше. Например, средство чтения смарт-карты может добавить разделители для того, чтобы отличить последовательные элементы данных, которые добавляются к файлу журнала. В некоторых вариантах осуществления средство чтения смарт-карты может добавить начальные и конечные разделители к элементам данных, которые добавляются к файлу журнала. В некоторых вариантах осуществления элементы данных, которые добавляются к файлу журнала, могут быть снабжены метками прежде, чем они будут добавлены к файлу журнала. В некоторых вариантах осуществления элементы данных, которые добавляются к файлу журнала, могут быть встроены в TLV-структуру (Tag-Length-Value, структура переменной длины «метка-длина-значение») прежде, чем они будут добавлены к файлу журнала. В некоторых вариантах осуществления метки могут использоваться для того, чтобы указать на природу различных элементов данных, которые добавляются к файлу журнала. Например, различные метки могут использоваться для того, чтобы указать, представляют ли определенные данные команду смарт-карты или ее ответ, или команду средства чтения смарт-карты или его ответ, или данные конфигурации средства чтения смарт-карты, или данные, относящиеся к взаимодействию с пользователем (например, указание того, были ли определенные данные представлены средством чтения смарт-карты для просмотра, и одобрил ли пользователь данные, представленные для просмотра), или данные, представляющие определенные события (например, обнаружение вероятной попытки постороннего вмешательства в устройство), или представляют ли данные отметку времени. В некоторых вариантах осуществления отметка времени может быть добавлена к элементам данных прежде, чем они будут добавлены к файлу журнала. В некоторых вариантах осуществления отметка времени может быть частью структуры форматирования, которая применяется к данным, которые добавляются к файлу журнала.

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

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

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

[0084] Конфигурируемость безопасного режима журналирования.

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

[0086] Добавление отметки времени.

[0087] В некоторых вариантах осуществления средство (100) чтения смарт-карты может быть выполнено с возможностью добавления отметки времени к определенным данным. Средство (100) чтения смарт-карты может использовать для добавления отметки времени к определенным данным время, обеспечиваемое часами (180). Данные, к которым средство чтения смарт-карты может добавлять отметку времени, могут включать в себя данные, которые добавляются к одному из журналов, данные, которые подписываются смарт-картой (98), данные, подписанные средством (100) чтения смарт-карты, подписи, сгенерированные смарт-картой, или подписи, сгенерированные средством чтения смарт-карты. В некоторых вариантах осуществления к каждому элементу данных, которые добавляются к файлу журнала, автоматически добавляется отметка времени. В некоторых вариантах осуществления отметка времени добавляется только к конкретным элементам данных, которые добавляются к файлу журнала. В некоторых вариантах осуществления средство чтения смарт-карты обеспечивает отметку времени на определенных событиях, таких как момент входа или выхода средства чтения смарт-карты в или из безопасного режима журналирования или момент запроса или получения подписи у смарт-карты, или момент некоторого взаимодействия с пользователем, такого как представление данных пользователю для одобрения или получение от пользователя одобрения данных. В некоторых вариантах осуществления средство чтения смарт-карты поддерживает команды средства чтения смарт-карты, которые позволяют давать средству чтения смарт-карты команду добавлять отметку времени к файлу журнала. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью добавления элемента данных, представляющего текущее время средства чтения смарт-карты, к файлу журнала, например, в ответ на конкретную команду средства чтения смарт-карты или в ответ на определенное событие.

[0088] Меры против повторного воспроизведения.

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

[0090] Безопасный обмен информацией со смарт-картой.

[0091] В некоторых вариантах осуществления средство (100) чтения смарт-карты выполнено с возможностью защиты его обмена информацией со смарт-картой (98). Например, в некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью аутентификации смарт-карты, например, путем проверки сертификатов смарт-карты или путем проверки MAC (кодов аутентификации сообщений), генерируемых смарт-картой. В некоторых вариантах осуществления средство чтения смарт-карты может быть способно аутентифицировать себя смарт-карте, например, путем генерирования кодов аутентификации сообщений, которые могут быть проверены смарт-картой. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью генерировать симметричные сеансовые ключи, которые оно использует совместно со вставленной смарт-картой. В некоторых вариантах осуществления средство чтения смарт-карты выполнено с возможностью шифрования и/или дешифрования команд и/или ответов, которыми оно обменивается со смарт-картой. Например, средство чтения смарт-карты может быть выполнено с возможностью зашифровывать команды смарт-карты, в которых средство чтения смарт-карты представляет смарт-карте уязвимые данные, такие как биометрические данные или значения пароля или ПИН-кода. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью дешифрования зашифрованных данных, приходящих из смарт-карты, таких как, например, биометрические справочные данные.

[0092] Безопасный обмен информацией с приложением.

[0093] В некоторых вариантах осуществления средство (100) чтения смарт-карты выполнено с возможностью защиты его обмена информацией с внешним приложением, которое связывается со средством чтения смарт-карты посредством команд средства чтения смарт-карты. Внешнее приложение может работать (полностью или частично) на главном компьютере, с которым соединено средство чтения смарт-карты. Внешнее приложение может также работать (полностью или частично) на удаленном сервере приложений, который соединяется через компьютерную сеть с главным компьютером, с которым соединено средство чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты может совместно с внешним приложением использовать секретный ключ, который может использоваться для защиты обмена информацией между средством чтения смарт-карты и приложением. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью устанавливать с приложением совместно используемый секретный сеансовый ключ. В некоторых вариантах осуществления средство чтения смарт-карты может хранить личный ключ пары «публичный ключ/личный ключ», и средство чтения смарт-карты может быть выполнено с возможностью получать начальное число, зашифрованное приложением с открытым ключом этой пары «публичный ключ/личный ключ», дешифровать зашифрованное начальное число и использовать дешифрованное начальное число для того, чтобы установить секретный сеансовый ключ, используемый совместно с приложением. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью дешифрования или аутентификации команд или данных, приходящих из приложения (или считающихся приходящими из приложения). В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью проверки подписей или кодов аутентификации сообщений на командах или данных, считающихся приходящими из приложения. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью шифрования ответов или данных, которые оно возвращает приложению. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью использовать криптографию с симметричными шифрами с секретным ключом, который оно использует совместно с приложением для дешифрования, шифрования и/или аутентификации сообщений и/или данных, которыми средство чтения смарт-карты обменивается с приложением. В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью использовать асимметричную криптографию с публичным ключом, который оно хранит и который связан с поставщиком приложения или с доверенным центром сертификации для аутентификации сообщений, команд или данных, считающихся приходящими из приложения (например, путем проверки подписей приложения на таких сообщениях, командах или данных). В некоторых вариантах осуществления средство чтения смарт-карты может быть выполнено с возможностью использовать асимметричную криптографию с публичным ключом, который оно хранит, для аутентификации (например, путем подписи) сообщений или данных, которые оно возвращает или отправляет приложению.

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

[0095] Идентификация средства чтения смарт-карты.

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

[0097] Обмен командами средства чтения смарт-карты и их формат.

[0098] В некоторых вариантах осуществления средство чтения смарт-карты поддерживает команды средства чтения смарт-карты, которые формально имеют тот же самый формат или структуру, что и оригинальные смарт-карты APDU (Application Protocol Data Unit, блок данных прикладного протокола, определяемый стандартом ISO/IEC 7816), или которые имеют формат и структуру, которые по меньшей мере достаточно подобны оригинальным смарт-картам APDU так, чтобы ими можно было обмениваться со средством чтения смарт-карты таким же образом и с использованием того же самого программного обеспечения и драйверов на главном компьютере средства чтения смарт-карты, что и для команд оригинальных смарт-карт. В некоторых вариантах осуществления средство чтения смарт-карты может отличать команды средства чтения смарт-карты от фактических команд смарт-карты на основе контекста или на основе значений параметра получаемых команд. Например, в некоторых вариантах осуществления средство чтения смарт-карты может распознавать команды средства чтения смарт-карты на основе определенных конкретных значений байтов CLA и/или INS в блоке APDU. В некоторых вариантах осуществления средство чтения смарт-карты может поддерживать одну или более команд, которые могут указывать средству чтения смарт-карты, должны ли последующие команды быть интерпретированы как команды смарт-карты или как команды средства чтения смарт-карты.

[0099] В некоторых вариантах осуществления для того, чтобы обмениваться командами средства чтения смарт-карты, могут использоваться другие механизмы, например собственные команды USB.

[0100] Автономный режим.

[0101] В некоторых вариантах осуществления средство (100) чтения смарт-карты может быть выполнено так, чтобы оно могло работать и тогда, когда оно не соединено с главным компьютером (99). В таком автономном режиме средство (100) чтения смарт-карты может получать питание от своего собственного автономного источника питания. В автономном режиме средство чтения смарт-карты может работать, например, как токен строгой аутентификации и генерировать одноразовые пароли, ответы на запросы или подписи данных транзакции. Одноразовые пароли, ответы на запросы и/или подписи данных транзакции, которые средство чтения смарт-карты таким образом генерирует в автономном режиме, могут генерироваться средством чтения смарт-карты путем применения алгоритма, который основан на криптографии с симметричными шифрами, использующей симметричный секретный ключ, который также известен серверу проверки. В некоторых вариантах осуществления средство чтения смарт-карты может использовать вставленную смарт-карту (98) при генерировании одноразовых паролей, ответов на запросы и/или подписи данных транзакции. В некоторых вариантах осуществления смарт-карта может использоваться для выполнения по меньшей мере части криптографических вычислений при генерировании одноразовых паролей, ответов на запросы и/или подписи данных транзакции. В некоторых вариантах осуществления средство чтения смарт-карты может использовать смарт-карту для получения значения, которое оно использует для того, чтобы вычислить симметричный секретный ключ, который оно затем использует при генерировании одноразовых паролей, ответов на запросы и/или подписи данных транзакции. В некоторых вариантах осуществления средство чтения смарт-карты может использовать значение времени, обеспечиваемое часами (180), при генерировании одноразовых паролей, ответов на запросы и/или подписи данных транзакции. В некоторых вариантах осуществления средство чтения смарт-карты может использовать данные, которые пользователь предоставляет средству чтения смарт-карты через входной интерфейс (152), при генерировании ответов на запросы и/или подписи данных транзакции. В некоторых вариантах осуществления входной интерфейс (152) включает в себя клавиатуру, и пользователь может ввести данные. В некоторых вариантах осуществления средство чтения смарт-карты может вывести сгенерированные одноразовые пароли, ответы на запросы и/или подписи данных транзакции пользователю через выходной интерфейс (151). В некоторых вариантах осуществления выходной интерфейс (151) может включать в себя дисплей и сгенерированные одноразовые пароли, ответы на запросы и/или подписи данных транзакции могут быть выведены на экран как строка символов, например как строка десятичных, шестнадцатеричных или алфавитно-цифровых символов.

[0102] В некоторых вариантах осуществления средство (100) чтения смарт-карты может быть выполнено как совместимое со стандартом EMV-CAP (Europay-Mastercard-VISA - Chip Authentication Programme) или полностью соответствующее стандарту EMV-CAP.

[0103] Портативные и карманные устройства.

[0104] В некоторых вариантах осуществления средство чтения смарт-карты имеет такой вес и такие габариты, что средство чтения смарт-карты может рассматриваться как портативное карманное устройство. В некоторых вариантах осуществления средство чтения смарт-карты имеет такой вес и такие габариты, что средство чтения смарт-карты может быть отправлено пользователю почтовой посылкой с умеренными затратами. Например, в некоторых вариантах осуществления средство чтения смарт-карты может иметь толщину менее 2 см, ширину менее 10 см, длину менее 15 см и вес менее 200 граммов. В других вариантах осуществления средство чтения смарт-карты может иметь толщину менее 1,5 см, ширину менее 7 см, длину менее 13 см и вес менее 110 граммов.

[0105] Специализированное аппаратное устройство.

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

[0107] Безопасное средство чтения смарт-карты.

[0108] В некоторых вариантах осуществления средство чтения смарт-карты является безопасным средством чтения смарт-карты. Это означает, что интерфейс ввода данных пользователем средства чтения смарт-карты является безопасным интерфейсом ввода данных пользователем и что пользовательский выходной интерфейс средства чтения смарт-карты является безопасным пользовательским выходным интерфейсом. Это также означает, что чувствительное с точки зрения безопасности встроенное микропрограммное обеспечение и данные средства чтения смарт-карты (которые могут включать в себя криптографические ключи и/или данные конфигурации, которые параметризуют некоторые функции безопасности) не могут ни изменяться, ни обновляться, либо могут быть изменены или обновлены только посредством безопасного протокола обновления, который позволяет осуществлять изменение или обновление только доверенной стороне.

[0109] Фиг. 2 иллюстрирует систему для проведения безопасных транзакций в соответствии с одним аспектом настоящего изобретения. Система включает в себя безопасное средство (100) чтения смарт-карты, такое как средство чтения смарт-карты, обсуждавшееся в связи с Фиг. 1, главный компьютер (99), к которому средство (100) чтения смарт-карты может быть подсоединено, один или более удаленных серверов приложений (200), и компьютерную сеть (210), которая может соединять главный компьютер (99) и один или более удаленных серверов приложений (200). Система дополнительно включает в себя смарт-карту (98), связанную с пользователем, которая может быть вставлена в средство (100) чтения смарт-карты.

[0110] Главный компьютер (99) может включать в себя пользовательский интерфейс, такой как дисплей, клавиатура и мышь, для взаимодействия с пользователем. Главный компьютер (99) может включать в себя сетевой интерфейс для того, чтобы соединять главный компьютер (99) с компьютерной сетью (210). Главный компьютер (99) может включать в себя средства обработки данных, такие как микропроцессор. Главный компьютер (99) может включать в себя память. Главный компьютер (99) может включать в себя программное обеспечение, такое как операционная система и прикладное программное обеспечение. В типичном варианте осуществления главный компьютер (99) может представлять собой PC (персональный компьютер) или ноутбук. Главный компьютер (99) может включать в себя интерфейс для обмена данными, и/или командами, и/или ответами с периферийными аппаратными средствами, такими как, например, средство (100) чтения смарт-карты. Этот интерфейс может включать в себя, например, интерфейс USB.

[0111] Удаленный сервер (200) приложений может включать в себя веб-сервер. Удаленный сервер приложений может включать в себя множество компонентов программного обеспечения, работающих на множестве аппаратных компонентов. Удаленный сервер приложений может взаимодействовать с программным обеспечением на главном компьютере. Удаленный сервер приложений и/или программное обеспечение на главном компьютере могут быть компонентами полного приложения. В некоторых вариантах осуществления некоторые компоненты такого полного приложения могут управляться различными действующими лицами или от имени различных действующих лиц. Например, в некоторых вариантах осуществления полное приложение может включать в себя компоненты, управляемые пользователем или клиентом или от его имени, другие компоненты, управляемые торговой организацией или от ее имени, и/или другие компоненты, управляемые финансовым учреждением или от его имени. Один или более удаленных серверов приложений могут включать в себя более одного удаленного сервера приложений, посредством чего различные серверы могут быть предназначены для выполнения различных функций. Например, в некоторых вариантах осуществления пользователь может взаимодействовать с одним сервером для того, чтобы передать данные транзакции приложению, в то время как другой сервер может быть ответственным за проверку смарт-карты и/или подписей средства чтения смарт-карты, например, на данных транзакции.

[0112] Компьютерная сеть (210) может включать в себя, например, Интернет.

[0113] В некоторых вариантах осуществления смарт-карта (98) может представлять собой, например, смарт-карту PKI (Public Key Infrastructure), способную генерировать подписи с использованием криптографии с асимметричными шифрами с личным ключом пары «публичный ключ/личный ключ». Смарт-карта (98) может надежно хранить и использовать личный ключ пары «публичный ключ/личный ключ». Смарт-карта (98) может также хранить публичный ключ пары «публичный ключ/личный ключ» и/или сертификат, связанный с публичным ключом пары «публичный ключ/личный ключ». Операции, использующие личный ключ пары «публичный ключ/личный ключ», хранимый в смарт-карте (98), могут быть защищены ПИН-кодом.

[0114] В некоторых вариантах осуществления смарт-карта (98) может включать в себя, например, смарт-карту, способную генерировать криптограммы с использованием криптографии с симметричными шифрами с секретным ключом. Смарт-карта (98) может надежно хранить и использовать секретный ключ. Операции, использующие секретный ключ, хранимый в смарт-карте (98), могут быть защищены ПИН-кодом. В некоторых вариантах осуществления смарт-карта (98) может быть совместимой со стандартом EMV или полностью соответствующей стандарту EMV, или может включать в себя приложение смарт-карты, совместимое со стандартом EMV или полностью соответствующее стандарту EMV.

[0115] В некоторых вариантах осуществления приложение, к которому пользователь получает доступ через главный компьютер и которое взаимодействует со средством (100) чтения смарт-карты для того, чтобы защитить доступ этого пользователя к приложению, может выполняться на удаленном сервере (200) приложений. В некоторых вариантах осуществления части этого приложения могут выполняться на удаленном сервере (200) приложений, а другие части этого приложения могут выполняться на главном компьютере (99). В некоторых вариантах осуществления приложение может быть запущено как на главном компьютере (99), так и на удаленном сервере (200) приложений, и в этом случае компьютерная сеть (210) может быть необязательной или отсутствовать совсем. В некоторых вариантах осуществления некоторые компоненты приложения могут управляться различными действующими лицами или от их имени. Например, в некоторых вариантах осуществления приложение может включать в себя компоненты, управляемые пользователем или клиентом или от его имени, другие компоненты, управляемые торговой организацией или от ее имени, и/или другие компоненты, управляемые финансовым учреждением или от его имени.

[0116] В некоторых вариантах осуществления приложение может представлять собой приложение веб-банка или интернет-банка, удаленный сервер (200) приложений может включать в себя веб-сервер, который может быть веб-фронтэндом для бэкэнд-сервера банковского приложения, и главный компьютер (99) может быть соединен с веб-сервером через Интернет (210) и может включать в себя веб-браузер, который пользователь может использовать для получения доступа к банковскому веб-приложению по Интернету (210).

[0117] Фиг. 3a и Фиг. 3b иллюстрируют способ защиты удаленных транзакций в соответствии с одним аспектом настоящего изобретения.

[0118] Предоставление пользователю средства чтения смарт-карты.

[0119] На стадии (302) безопасное средство (100) чтения смарт-карты, такое как средство чтения смарт-карты, описанное в связи с Фиг. 1, может быть предоставлено пользователю. В некоторых вариантах осуществления владелец приложения предоставляет подходящее средство чтения смарт-карты одному или более пользователям приложения. В некоторых вариантах осуществления приложение поощряет пользователей приложения обеспечить подходящее средство чтения смарт-карты. В некоторых вариантах осуществления приложение предоставляет пользователям приложения информацию о том, как получить подходящее средство чтения смарт-карты.

[0120] Подсоединение средства чтения смарт-карты к главному компьютеру пользователя.

[0121] На стадии (304) безопасное средство (100) чтения смарт-карты, которое возможно было предоставлено пользователю, подсоединяется к главному компьютеру (99), который может использоваться пользователем.

[0122] Получение пользователем доступа к приложению.

[0123] На стадии (306) пользователь получает доступ к приложению, используя главный компьютер (99), к которому может быть подсоединено безопасное средство (100) чтения смарт-карты. В некоторых вариантах осуществления приложение может представлять собой, например, приложение, выполняемое удаленным сервером приложений (200). В других вариантах осуществления приложение может представлять собой приложение, выполняемое главным компьютером. В других вариантах осуществления приложение может представлять собой клиент-серверное приложение, включающее в себя модуль клиентского программного обеспечения, работающий на главном компьютере, и один или более серверных программных модулей, работающих на одном или более удаленных серверах (200). В одном варианте осуществления приложение может включать в себя текстовый редактор. В другом варианте осуществления приложение может включать в себя программу электронной почты. В еще одном варианте осуществления приложение может включать в себя финансовое приложение, такое как приложение интернет-банка. В одном варианте осуществления пользователь может получать доступ к удаленному веб-приложению, используя веб-браузер, работающий на его или ее главном компьютере.

[0124] Инициирование пользователем транзакции.

[0125] На стадии (308) пользователь может взаимодействовать с приложением, например, на главном компьютере или на удаленном сервере, например, для того, чтобы инициировать транзакцию. Во время взаимодействия пользователя с приложением пользователь может запросить у приложения транзакцию. Например, пользователь может представить веб-сайту банковского интернет-обслуживания детали денежного перевода, который пользователь хочет выполнить, или пользователь может сообщить о своем желании купить некоторые товары на веб-сайте продавца, или пользователь может одобрить контракт, или может написать письмо, которое должно быть подписано.

[0126] Сборка данных, которые должны быть подписаны.

[0127] На стадии (310) приложение, например, на главном компьютере или на удаленном сервере, собирает набор данных, которые должны быть в цифровой форме подписаны пользователем, например, данные, представляющие транзакцию, инициируемую пользователем. Этот набор данных может включать в себя, например, документ или электронное письмо, которое должно быть подписано, или может включать в себя, например, данные, представляющие или относящиеся к финансовой операции, которую пользователь хочет выполнить. Данные, которые должны быть подписаны, могут включать в себя, например данные, относящиеся к денежному переводу, который пользователь хотел бы сделать, такие как, например, сумма денег, подлежащая переводу, индикатор валюты, указание получателя (например, номер счета получателя), которому должны быть переведены деньги, и/или указание источника (например, номер счета отправителя), откуда должны быть взяты переводимые деньги. В другом случае данные, которые должны быть подписаны, могут относиться, например, к брокерскому поручению, такому как, например, поручение на продажу или покупку некоторого количества акций. Эти данные могут включать в себя, например, индикатор типа акций, индикатор количества акций, тип сделки (продажа, покупка и т.п.), цену, срок действия поручения и т.д.

[0128] Вставка смарт-карты.

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

[0130] Идентификация средства чтения смарт-карты.

[0131] На стадии (314) приложение, например, на главном компьютере или на удаленном сервере идентифицирует средство чтения смарт-карты. В некоторых вариантах осуществления приложение просто устанавливает тип средства чтения смарт-карты. В других вариантах осуществления приложение получает версию встроенного микропрограммного обеспечения средства чтения смарт-карты. В других вариантах осуществления приложение получает информацию относительно идентификационных данных конкретного средства чтения смарт-карты (например, серийный номер средства чтения смарт-карты или ссылку на публичный ключ, соответствующий личному ключу, хранящемуся в средстве чтения смарт-карты). В некоторых вариантах осуществления приложение может использовать стандартные USB-механизмы средства чтения смарт-карты для того, чтобы получить тип средства чтения смарт-карты. В других вариантах осуществления приложение может использовать одну или более команд средства чтения смарт-карты для того, чтобы получить данные идентификации средства чтения смарт-карты. В некоторых вариантах осуществления приложение может получить данные идентификации средства чтения смарт-карты как часть набора данных средства чтения смарт-карты, который также может включать в себя другие данные, связанные со средством чтения смарт-карты, такие как состояние средства чтения смарт-карты, набор данных конфигурации средства чтения смарт-карты, версия встроенного микропрограммного обеспечения средства чтения смарт-карты и т.д.

[0132] Вход средства чтения смарт-карты в безопасный режим журналирования.

[0133] На стадии (320) безопасное средство чтения смарт-карты переводится в безопасный режим журналирования. В некоторых вариантах осуществления средство чтения смарт-карты может войти в безопасный режим журналирования в ответ на конкретную команду средства чтения смарт-карты, которая дает средству чтения смарт-карты команду войти в безопасный режим журналирования. В некоторых вариантах осуществления средство чтения смарт-карты может войти в безопасный режим журналирования в качестве автоматического побочного эффекта команды средства чтения смарт-карты, которая дает средству чтения смарт-карты команду выполнить некоторое действие, такое как команда для аутентификации пользователя безопасным образом (например, посредством безопасного ввода PIN-кода) или команда для представления определенных данных пользователю для просмотра и одобрения или команда для выполнения безопасного сеанса подписания. В некоторых вариантах осуществления средство чтения смарт-карты может войти в безопасный режим журналирования автоматически в ответ на определенное событие, такое как событие включения питания средства чтения смарт-карты или событие вставки смарт-карты или включение питания смарт-карты или событие сброса. В некоторых вариантах осуществления средство чтения смарт-карты может находиться в безопасном режиме журналирования по умолчанию. В некоторых вариантах осуществления средство чтения смарт-карты всегда находится в безопасном режиме журналирования. В некоторых вариантах осуществления средство чтения смарт-карты инициализирует один или более файлов журнала в некоторое определенное состояние. Например, они могут быть сброшены так, чтобы они стали пустыми, или они могут быть инициализированы некоторым набором данных, которые могут включать в себя, например, данные конфигурации (например данные конфигурации, которые влияют на безопасный режим журналирования) и/или данные, отражающие состояние средства чтения смарт-карты и/или версию встроенного микропрограммного обеспечения и т.д. В некоторых вариантах осуществления эта инициализация может произойти прежде, чем средство чтения смарт-карты будет переведено в безопасный режим журналирования. В некоторых вариантах осуществления эта инициализация может происходить тогда, когда средство чтения смарт-карты входит в безопасный режим журналирования. В некоторых вариантах осуществления эта инициализация может происходить в некоторый момент времени после того, как средство чтения смарт-карты войдет в безопасный режим журналирования.

[0134] Запись средством чтения смарт-карты данных в журнал.

[0135] Находясь в безопасном режиме журналирования, безопасное средство чтения смарт-карты может автоматически начать добавлять данные к одному или более файлам журнала (стадия 321). В некоторых вариантах осуществления данные, добавляемые к файлам журнала, включают в себя данные, представляющие чувствительные с точки зрения безопасности события, состояния и действия, такие как команды и/или ответы средства чтения смарт-карты, взаимодействие пользователя (например, представление данных пользователю и ввод данных пользователем) со средством чтения смарт-карты, команды и/или ответы смарт-карты, версия встроенного микропрограммного обеспечения и/или события изменения встроенного микропрограммного обеспечения, данные конфигурации и/или события изменения данных конфигурации, другие события (например, события, которые могут свидетельствовать о попытках постороннего вмешательства или которые могут поставить под сомнение целостность безопасности средства чтения смарт-карты, такие как обнаружение определенных механических или электронных манипуляций, таких как попытки открыть корпус или броски напряжения питания или потеря питания и т.д.).

[0136] Запись средством чтения смарт-карты команд смарт-карты в журнал.

[0137] В некоторых вариантах осуществления средство чтения смарт-карты записывает таким образом в журнал данные, относящиеся к командам смарт-карты, которыми оно обменивается со смарт-картой, например прозрачные команды смарт-карты, которые средство чтения смарт-карты получает от приложения для того, чтобы обменяться ими со смарт-картой, вставленной в средство чтения смарт-карты (стадия 322). В некоторых вариантах осуществления средство чтения смарт-карты может систематически регистрировать в журнале все команды смарт-карты, обмен которыми осуществляется. В некоторых вариантах осуществления средство чтения смарт-карты может регистрировать в журнале только некоторые команды смарт-карты, обмен которыми осуществляется. В некоторых вариантах осуществления средство чтения смарт-карты может регистрировать в журнале те команды смарт-карты, которые удовлетворяют определенным критериям. Например, средство чтения смарт-карты может регистрировать в журнале команды смарт-карты определенного типа. В некоторых вариантах осуществления критерии, которые средство чтения смарт-карты использует для того, чтобы решить, какие команды регистрировать в журнале, могут быть параметризованы параметрами конфигурации. Эти параметры конфигурации могут включать в себя, например, список команд, которые должны регистрироваться в журнале, или список команд, которые не должны регистрироваться в журнале. В некоторых вариантах осуществления средство чтения смарт-карты может распознавать типы команд смарт-карты на основе значений определенных байтов заголовка команды смарт-карты, таких как, например, байты CLA, INS, P1 и/или P2. В некоторых вариантах осуществления параметры конфигурации, которые определяют, какие именно команды смарт-карты (и/или соответствующие ответы смарт-карты) будут регистрироваться в журнале и, если это применимо, в каком именно файле журнала, передаются средству чтения смарт-карты приложением посредством, например, некоторой команды средства чтения смарт-карты, например команды перевода средства чтения смарт-карты в безопасный режим журналирования.

[0138] Запись средством чтения смарт-карты команд средства чтения смарт-карты в журнал.

[0139] В некоторых вариантах осуществления средство чтения смарт-карты записывает в журнал данные, относящиеся к командам средства чтения смарт-карты, которые оно получает (стадия 323). В некоторых вариантах осуществления средство чтения смарт-карты может регистрировать в журнале все команды средства чтения смарт-карты, обмен которыми осуществляется. В некоторых вариантах осуществления средство чтения смарт-карты может регистрировать в журнале только некоторые команды средства чтения смарт-карты, обмен которыми осуществляется.

[0140] Установление параметров конфигурации безопасного журналирования.

[0141] В некоторых вариантах осуществления приложение дает средству чтения смарт-карты команду войти в безопасный режим журналирования и передает (стадия 316) средству чтения смарт-карты посредством той же самой команды средства чтения смарт-карты или одной или более дополнительных команд средства чтения смарт-карты набор параметров конфигурации безопасного режима журналирования, которые могут определять, какие именно данные средство чтения смарт-карты должно записывать в журнал при нахождении в безопасном режиме журналирования, например какие команды смарт-карты регистрировать, какие команды средства чтения смарт-карты регистрировать, какие виды взаимодействия с пользователем регистрировать (например, какие из сообщений и/или данных, которые средство чтения смарт-карты представляет пользователю, и какие из ответов, получаемых средством чтения смарт-карты от пользователя), какие другие события (например, ошибочные события) зарегистрировать. В некоторых вариантах осуществления средство чтения смарт-карты автоматически регистрирует соответствующие параметры конфигурации и/или любое изменение этих параметров конфигурации. В некоторых вариантах осуществления приложение может передавать параметры конфигурации безопасного режима журналирования средству чтения смарт-карты посредством одной или более команд средства чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты может передавать параметры конфигурации безопасного режима журналирования средству чтения смарт-карты посредством той же самой команды средства чтения смарт-карты, посредством которой оно переводится в безопасный режим журналирования. В некоторых вариантах осуществления приложение использует одну или более других команд средства чтения смарт-карты для того, чтобы передавать параметры конфигурации безопасного режима журналирования средству чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты может передавать параметры конфигурации безопасного режима журналирования средству чтения смарт-карты до того, как средство чтения смарт-карты войдет в безопасный режим журналирования. В некоторых вариантах осуществления средство чтения смарт-карты может передавать параметры конфигурации безопасного режима журналирования средству чтения смарт-карты после того, как средство чтения смарт-карты войдет в безопасный режим журналирования.

[0142] Запись в журнал данных транзакции, представленных пользователю для просмотра и одобрения.

[0143] В некоторых вариантах осуществления средство чтения смарт-карты, находясь в безопасном режиме журналирования, записывает в журнал (стадия 324) по меньшей мере данные (или представление таких данных, такое как свертка или хеш таких данных), которые средство чтения смарт-карты представляет пользователю для его просмотра и одобрения (или отклонения). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале данные, которые оно представляет пользователю для просмотра и одобрения, и регистрирует в журнале решение пользователя (одобрение или отклонение). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале только данные, которые были представлены пользователю и которые пользователь рассмотрел и одобрил (и средство чтения смарт-карты не регистрирует в журнале те данные, которые пользователь отклонил). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале команды средства чтения смарт-карты (или представление таких команд, такое как хеш команд средства чтения смарт-карты или части команд средства чтения смарт-карты), которые приложение использует для того, чтобы передать средству чтения смарт-карты данные, которые должны быть рассмотрены и одобрены, и регистрирует в журнале ответы средства чтения смарт-карты приложению, указывающие на решение пользователя (одобрение или отклонение).

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

[0145] В некоторых вариантах осуществления средство чтения смарт-карты, находясь в безопасном режиме журналирования, регистрирует в журнале по меньшей мере как те данные (или представление таких данных), которые средство чтения смарт-карты представляет пользователю (как описано выше) и которые пользователь просматривает и одобряет, так и те данные (или представление таких данных), которые приложение представляет смарт-карте для подписи (как описано выше).

[0146] Запись данных в журнал в соответствии с критериями.

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

[0148] Запись в журнал данных конфигурации.

[0149] В некоторых вариантах осуществления средство чтения смарт-карты автоматически регистрирует в журнале (стадия 318) все или часть данных конфигурации, которые оно применяет при принятии решения о том, что следует регистрировать в журнале. В некоторых вариантах осуществления средство чтения смарт-карты автоматически регистрирует данные конфигурации, которые оно получило от приложения и которые оно применяет при принятии решения о том, что следует регистрировать в журнале.

[0150] Обмен прозрачными командами смарт-карты.

[0151] На стадии (328) приложение посылает последовательность из одной или более прозрачных команд смарт-карты безопасному средству чтения смарт-карты для того, чтобы оно обменялось ими со смарт-картой, вставленной в средство чтения смарт-карты, и вернуло приложению ответы смарт-карты на эти команды смарт-карты. В некоторых вариантах осуществления приложение обменивается этими командами со средством чтения смарт-карты через стандартный стек программного обеспечения на главном компьютере средства чтения смарт-карты для того, чтобы обменяться командами смарт-карты со смарт-картой, вставленной в средство чтения смарт-карты. В некоторых вариантах осуществления этот стек программного обеспечения может включать в себя CCID (integrated Circuit Card Interface Device) USB-драйвер и/или компонент PC/SC (Personal Computer/Smart Card). Как упоминалось выше, в некоторых вариантах осуществления средство чтения смарт-карты, находясь в безопасном режиме журналирования, может добавить данные, относящиеся ко всем или некоторым из этих команд смарт-карты и/или соответствующих ответов смарт-карты, в один или более файлов журнала средства чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты может поддерживать контактный интерфейс и может обмениваться командами со смарт-картой через гальванические контакты. В некоторых вариантах осуществления средство чтения смарт-карты может поддерживать бесконтактный интерфейс смарт-карты и может обмениваться командами со смарт-картой, используя бесконтактный протокол связи, такой как, например, протокол ISO/IEC 14443. В некоторых вариантах осуществления средство чтения смарт-карты включает в себя слот смарт-карты для вставки в него смарт-карты.

[0152] Применение брандмауэра к командам смарт-карты.

[0153] В некоторых вариантах осуществления средство чтения смарт-карты прежде, чем обмениваться этими командами смарт-карты со смарт-картой, может пропустить эти команды смарт-карты через брандмауэр (стадия 326). В некоторых вариантах осуществления средство чтения смарт-карты может блокировать некоторые команды смарт-карты на основе определенных критериев.

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

[0155] Проверка идентификационных данных пользователя.

[0156] На стадии (330) средство чтения смарт-карты может проверить идентификационные данные пользователя. Например, средство чтения смарт-карты может осуществить безопасный ввод ПИН-кода. Средство чтения смарт-карты может запросить у пользователя ввести ПИН-код, получить ПИН-код, который ввел пользователь, и представить смарт-карте введенный пользователем ПИН-код для проверки смарт-картой. В некоторых вариантах осуществления приложение запрашивает у средства чтения смарт-карты выполнение безопасного ввода ПИН-кода посредством одной или более безопасных команд ввода PIN-кода средства чтения смарт-карты. В других вариантах осуществления средство чтения смарт-карты проверяет идентификационные данные пользователя посредством биометрического метода аутентификации пользователей, который может быть основан, например, на отпечатках пальцев. В некоторых вариантах осуществления средство чтения смарт-карты может записать в журнал проверку идентификационных данных пользователя. Например, средство чтения смарт-карты может зарегистрировать в журнале, произошла ли проверка идентификационных данных пользователя и/или каков был результат проверки идентификационных данных пользователя.

[0157] Одобрение данных транзакции.

[0158] На стадии (331) приложение передает данные (например, данные транзакции) средству чтения смарт-карты для того, чтобы они были представлены пользователю для просмотра и одобрения пользователем. В некоторых вариантах осуществления приложение использует конкретные команды средства чтения смарт-карты для того, чтобы передать эти данные средству чтения смарт-карты. Средство чтения смарт-карты может представить эти данные пользователю (например, отображая данные на дисплее средства чтения смарт-карты) и запросить пользователя рассмотреть эти данные и одобрить или отклонить их. Средство чтения смарт-карты может получить (332) от пользователя одобрение или отклонение (на что пользователь может указать, например, нажимая кнопку OK или Cancel). Средство чтения смарт-карты может возвратить приложению решение пользователя одобрить или отклонить данные. В некоторых вариантах осуществления приложение может прервать транзакцию, если пользователь не одобрил данные.

[0159] В типичных вариантах осуществления данные, которые средство чтения смарт-карты записывает (333) в журнал, являются данными, представленными и/или одобренными пользователем (или представлением этих данных, таким как, например, свертка или хеш). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале данные только в том случае, если пользователь их одобрил. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале данные независимо от того, одобрил ли их пользователь или отклонил, а также регистрирует в журнале решение пользователя (то есть одобрил пользователь данные или отклонил). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале данные и элемент данных, указывающий на решение пользователя. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале только те данные, которые были рассмотрены и одобрены пользователем, так что сам факт, что средство чтения смарт-карты зарегистрировало эти данные в журнале, является признаком того, что пользователь рассмотрел и одобрил эти данные. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале команду (команды) средства чтения смарт-карты, содержащую данные, которые должны быть рассмотрены и одобрены пользователем, а также регистрирует соответствующий ответ (ответы), указывающий на решение пользователя.

[0160] Подписание смарт-картой данных транзакции.

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

[0162] В типичных вариантах осуществления приложение представляет данные, которые должны быть подписаны, посредством прозрачных команд смарт-карты, которыми оно обменивается со смарт-картой. В таких вариантах осуществления средство чтения смарт-карты может не иметь никаких знаний или, возможно, не требует знаний относительно набора команд, которые могут использоваться для того, чтобы смарт-карта подписала данные, которые должны быть подписаны. Например, в некоторых вариантах осуществления приложение может отправить смарт-карте прозрачную команду смарт-карты для того, чтобы выбрать подходящую среду безопасности (которая может, например, выбирать личный ключ, который смарт-карта будет использовать впоследствии). Приложение может передать смарт-карте одну или более прозрачных команд смарт-карты для того, чтобы представить смарт-карте свертку или хеш данных, которые должны быть подписаны, или приложение может передать смарт-карте одну или более прозрачных команд смарт-карты для того, чтобы представить смарт-карте непосредственно данные, которые должны быть подписаны, а смарт-карта может вычислить свертку или хеш (например, автоматически или после получения от приложения явной на то команды). Смарт-карта может затем подписать полученную или сгенерированную свертку или хеш. В некоторых вариантах осуществления одна и та же команда смарт-карты используется как для того, чтобы представить смарт-карте данные, которые должны быть подписаны, или свертку или хеш данных, которые должны быть подписаны, так и для того, чтобы дать смарт-карте команду сгенерировать фактическую подпись. В других вариантах осуществления для этого могут использоваться различные команды смарт-карты, т.е. одна команда для того, чтобы представить смарт-карте данные, которые должны быть подписаны, или свертку или хеш данных, которые должны быть подписаны, и другая команда для того, чтобы смарт-карта сгенерировала фактическую подпись. В некоторых вариантах осуществления все или некоторые из этих команд смарт-карты, относящихся к генерированию подписи на данных, могут быть известны как команды PSO (Perform Security Operation).

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

[0164] Запись в журнал данных, подписанных смарт-картой.

[0165] В типичных вариантах осуществления средство чтения смарт-карты на стадии (336) записывает в журнал данные (или представление этих данных, такое как свертка или хеш), которые были подписаны смарт-картой. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале все прозрачные команды смарт-карты (по меньшей мере в течение определенного времени) так, чтобы автоматически записывались в журнал также любые прозрачные команды смарт-карты, которые приложение использует для того, чтобы представить данные смарт-карте для подписания. В некоторых вариантах осуществления средство чтения смарт-карты выполнено с возможностью автоматически регистрировать в журнале все прозрачные команды смарт-карты, которые удовлетворяют определенным критериям, и эти критерии конфигурируются так, что в журнал автоматически записываются также любые прозрачные команды смарт-карты, которые приложение использует для того, чтобы представить смарт-карте данные для их подписания. В типичных вариантах осуществления у средства чтения смарт-карты нет никаких знаний о том, как распознать команды смарт-карты, которые используются для того, чтобы представить смарт-карте данные для их подписания. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале также ответы смарт-карты, которые соответствуют тем командам смарт-карты, которые регистрируются в журнале. В некоторых вариантах осуществления некоторые команды смарт-карты могут быть зарегистрированы в журнале без соответствующих ответов смарт-карты. В некоторых вариантах осуществления некоторые ответы смарт-карты могут быть зарегистрированы в журнале без соответствующих команд смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале только данные, которые должны быть подписаны (или их представление, такое как хеш). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует в журнале только подпись смарт-карты (которая может рассматриваться как представление данных, которые должны быть подписаны). В некоторых вариантах осуществления средство чтения смарт-карты регистрирует как данные, которые должны быть подписаны (или их представление, такое как хеш), так и соответствующую подпись смарт-карты.

[0166] Получение подписи смарт-карты.

[0167] На стадии (338) приложение получает подпись смарт-карты, которую карта сгенерировала по данным, которые должны быть подписаны, например, путем получения ответа смарт-карты на команду подписи смарт-карты.

[0168] Генерирование подписи средства чтения смарт-карты на файле (файлах) журнала.

[0169] На стадии (340) средство чтения смарт-карты генерирует подпись средства чтения смарт-карты на регистрируемых в журнале данных. В некоторых вариантах осуществления средство чтения смарт-карты генерирует подпись журнала, используя алгоритм подписания, основанный на криптографии с асимметричными шифрами и использовании личного ключа средства чтения смарт-карты из пары «публичный ключ/личный ключ», посредством чего этот личный ключ надежно хранится в средстве чтения смарт-карты. В некоторых вариантах осуществления средство чтения смарт-карты генерирует подпись журнала, используя алгоритм, основанный на криптографии с симметричными шифрами и использовании личного ключа средства чтения смарт-карты, надежно хранимого в средстве чтения смарт-карты, посредством чего этот личный ключ средства чтения смарт-карты может быть использован совместно с некоторым сервером проверки. В типичном варианте осуществления все данные, записываемые в журнал, записываются в единственный файл журнала, и средство чтения смарт-карты генерирует единственную подпись журнала на этом единственном файле журнала. В некоторых вариантах осуществления средство чтения смарт-карты может использовать несколько файлов журнала для того, чтобы регистрировать в них данные, и может подписывать некоторые файлы журнала отдельно так, чтобы подпись журнала включала в себя множество подписей на отдельно подписываемых файлах журнала. Например, в некоторых вариантах осуществления средство чтения смарт-карты может записывать команды средства чтения смарт-карты или данные для анализа и одобрения в один файл журнала, а прозрачные команды смарт-карты - в другой файл журнала, и генерировать подписи на каждом из этих файлов журнала так, чтобы подпись на журнале средства чтения смарт-карты включала в себя как подпись средства чтения смарт-карты на файле журнала с зарегистрированными командами средства чтения смарт-карты или данными для просмотра и одобрения пользователем, так и подпись средства чтения смарт-карты на файле журнала с прозрачными командами смарт-карты.

[0170] Получение сгенерированной подписи средства чтения смарт-карты.

[0171] На стадии (342) приложение получает подпись (подписи) средства чтения смарт-карты, которую средство чтения смарт-карты сгенерировало для одного или более журналов. В некоторых вариантах осуществления приложение может также получить непосредственно содержимое подписанных журналов. В некоторых вариантах осуществления приложение может также получить от средства чтения смарт-карты один или более сертификатов, относящихся к одному или более ключей (которые могут включать в себя личные ключи из пар «публичный ключ/личный ключ»), которые использовались средством чтения смарт-карты для того, чтобы сгенерировать подпись средства чтения смарт-карты на журнале. В некоторых вариантах осуществления приложение может также получить от средства чтения смарт-карты один или более публичных ключей, соответствующих личным ключам из пар «публичный ключ/личный ключ», которые использовались средством чтения смарт-карты для того, чтобы сгенерировать подпись средства чтения смарт-карты на журнале. В некоторых вариантах осуществления приложение может также получить от средства чтения смарт-карты данные идентификации, которые приложение может использовать для того, чтобы получить (например, путем запроса к базе данных) один или более публичных ключей и/или сертификатов, относящихся к ключу, используемому средством чтения смарт-карты для того, чтобы сгенерировать подпись средства чтения смарт-карты на журнале.

[0172] Проверка того, что пользователь действительно одобрил транзакцию.

[0173] После того, как данные транзакции были переданы приложению, и пользователь рассмотрел данные, которые должны быть рассмотрены и одобрены, и карта подписала данные, которые должны быть подписаны, приложение может проверить, произошло ли все в полном соответствии с применимой к приложению политикой безопасности. Например, для того, чтобы исключить или минимизировать риск атаки "человек посередине", при которой атакующий вмешивается в транзакцию путем подмены данных транзакции, которые пользователь намеревался передать приложению, мошенническими данными (например, атакующий может изменить номер счета получателя в транзакции денежного перевода), приложение может проверить, действительно ли данные транзакции, которые были представлены пользователем приложению, соответствуют данным, которые пользователь рассмотрел и одобрил на безопасном средстве чтения смарт-карты и подписал с использованием смарт-карты. Для того, чтобы выполнить эту проверку, приложение может проверить подпись смарт-карты и подпись средства чтения смарт-карты на файле журнала и проверить, соответствует ли содержимое подписанного файла (файлов) журнала событиям, которые должны были произойти в соответствии с ожиданиями приложения и политикой безопасности. В типичном варианте осуществления политика безопасности приложения требует, чтобы представление данных транзакции было рассмотрено и одобрено пользователем на безопасном средстве чтения смарт-карты и чтобы представление тех же самых данных транзакции было подписано смарт-картой. В некоторых вариантах осуществления приложение может кроме этого потребовать, чтобы просмотр и одобрение пользователем и подписание смарт-картой произошли в одном и том же сеансе. В некоторых вариантах осуществления приложение кроме этого может потребовать, чтобы в этом сеансе никакие другие данные не были представлены пользователю для просмотра и одобрения и/или чтобы никакие другие данные не подписывались смарт-картой. В типичном варианте осуществления средство чтения смарт-карты выполнено с возможностью регистрировать в журнале все данные, просматриваемые и одобряемые пользователем на средстве чтения смарт-карты, а также регистрировать в журнале все данные, подписанные смарт-картой (например, путем записи в журнал набора прозрачных команд смарт-карты, которые могут включать в себя все команды смарт-карты). В некоторых вариантах осуществления приложение требует, чтобы представленные данные транзакции и данные, рассмотренные и одобренные пользователем на средстве чтения смарт-карты, а также данные, подписанные смарт-картой, были одними и теми же. В некоторых вариантах осуществления приложение не требует, чтобы эти данные были идентичны, но требует, чтобы между ними существовало некоторое предопределенное отношение. Например, в некоторых вариантах осуществления данные, рассмотренные пользователем, могут включать в себя подмножество или сводку представленных данных транзакции или данных, подписанных смарт-картой. Например, данные, подписанные смарт-картой, могут включать в себя в дополнение к данным, рассмотренным пользователем, некоторые элементы данных (такие как порядковый номер транзакции), которые не имеют никакого значения для пользователя и поэтому не представляются пользователю для просмотра. Например, представленные данные транзакции могут включать в себя переменные данные транзакции наряду с большим списком стандартных положений и условий, и только переменные данные транзакции реально представляются пользователю для просмотра на безопасном средстве чтения смарт-карты.

[0174] На следующих примерных стадиях приложение проверяет, были ли корректные данные рассмотрены и одобрены пользователем и были ли корректные данные подписаны смарт-картой.

[0175] Проверка подписи смарт-карты.

[0176] На стадии (344) приложение проверяет, соответствует ли подпись смарт-карты данным, которые приложение намеревалось подписать с использованием смарт-карты. Это может быть сделано посредством традиционных методов проверки подписи данных. Например, в типичном варианте осуществления подпись получается путем хеширования данных, которые должны быть подписаны, и шифрования полученного хеша смарт-картой с помощью ее личного ключа. В таком случае подпись может быть проверена путем дешифрования подписи с публичным ключом, который соответствует личному ключу смарт-карты, и сравнения дешифрованного результата с хешем данных, которые, как предполагается, были подписаны смарт-картой.

[0177] Проверка или сборка копии файла журнала для приложения.

[0178] На стадии (346) приложение проверяет или собирает содержимое журнала (журналов), подписанного средством чтения смарт-карты.

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

[0180] В других вариантах осуществления приложение собирает предполагаемую копию файла (файлов) журнала, который средство чтения смарт-карты собирает путем записи в журнал всех действий и событий, которые средство чтения смарт-карты должно зарегистрировать, применяя те же самые механизмы журналирования и правила, которые, как предполагается, применяет средство чтения смарт-карты. Например, в типичном варианте осуществления средство чтения смарт-карты в безопасном режиме журналирования может регистрировать в журнале все команды средства чтения смарт-карты и прозрачные команды смарт-карты (и их соответствующие ответы), которыми оно обменивается с приложением, и приложение может точно таким же образом регистрировать в журнале все команды средства чтения смарт-карты и прозрачные команды смарт-карты, которыми, как полагает приложение, были осуществлен обмен со средством чтения смарт-карты. Этот набор команд средства чтения смарт-карты и прозрачных команд смарт-карты включает в себя любые команды средства чтения смарт-карты для представления данных пользователю для просмотра и одобрения, а также любые прозрачные команды смарт-карты для генерирования смарт-картой подписи.

[0181] Проверка подписи (подписей) средства чтения смарт-карты на файле (файлах) журнала.

[0182] На стадии (348) приложение проверяет, соответствует ли подпись средства чтения смарт-карты содержимому файла журнала, который это получило или собрало самостоятельно. Это может быть сделано с помощью традиционных методов проверки подписи данных. Например, в типичном варианте осуществления подпись получается путем хеширования данных, которые должны быть подписаны, и шифрования полученного хеша средством чтения смарт-карты с помощью его личного ключа. В таком случае подпись может быть проверена путем дешифрования подписи с публичным ключом, который соответствует личному ключу средства чтения смарт-карты, и сравнения дешифрованного результата с хешем данных (то есть содержимым файла (файлов) журнала), которые, как предполагается, были подписаны средством чтения смарт-карты.

[0183] Проверка того, были ли корректные данные одобрены пользователем.

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

[0185] Проверка того, соответствует ли содержимое подписанного файла журнала данным транзакции.

[0186] Приложение может проверить, соответствуют ли представленные данные транзакции тем данным, которые согласно файлу журнала были рассмотрены и одобрены пользователем и/или соответствуют ли представленные данные транзакции и/или эти рассмотренные и одобренные данные тем данным, которые подписаны смарт-картой.

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

[0188] Генерирование сигнала подтверждения одобрения пользователем.

[0189] На стадии (352) после успешного завершения вышеупомянутых проверок приложение может сгенерировать сигнал, подтверждающий, что пользователь одобрил транзакцию; в противном случае приложение может сгенерировать сигнал, указывающий на то, что верификация не прошла.

[0190] Выполнение транзакции.

[0191] На стадии (354) приложение после выдачи сигнала подтверждения может выполнить транзакцию.

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

[0193] Порядок стадий способа.

[0194] В то время как стадии способа были описаны выше в том порядке, в котором эти стадии могут выполняться в типичном варианте осуществления, в других вариантах осуществления некоторые стадии могут быть выполнены в другом порядке, некоторые стадии могут быть опущены, могут быть добавлены дополнительные стадии, некоторые стадии могут быть объединены с другими стадиями, и некоторые стадии могут включать в себя подстадии, которые могут быть переплетены с подстадиями других стадий.

[0195] Например, во многих вариантах осуществления приложение может обмениваться прозрачными командами смарт-карты в различные моменты: до и после того, как средство чтения смарт-карты входит в безопасный режим журналирования, до и после того, как средство чтения смарт-карты представляет данные пользователю для просмотра и одобрения, до и после того, как карта подпишет данные и т.д. Например, приложение может обменяться со смарт-картой последовательностью команд смарт-карты до того, как оно войдет в безопасный режим журналирования, для того, чтобы определить тип смарт-карты и считать сертификаты публичного ключа смарт-карты (например для того, чтобы определить идентификационные данные пользователя) и установить параметры конфигурации журналирования средства чтения смарт-карты на основе полученной таким образом информации (например, для того, чтобы указать, какие прозрачные команды смарт-карты должны регистрироваться в журнале, что может быть функцией типа смарт-карты);

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

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

[0198] Преимущества изобретения.

[0199] В типичном варианте осуществления средство чтения смарт-карты и приложение взаимодействуют таким образом, что гарантируется, что средство чтения смарт-карты будет регистрировать в журнале как данные, одобренные пользователем, так и данные, подписанные смарт-картой. Средство чтения смарт-карты и приложение в типичном варианте осуществления также могут взаимодействовать таким образом, что гарантируется, что средство чтения смарт-карты будет регистрировать в журнале любые данные, которые приложение представляет во время безопасного сеанса журналирования средству чтения смарт-карты для рассмотрения и одобрения пользователем, а также будет регистрировать в журнале любые данные, которые представляются во время безопасного сеанса журналирования смарт-карте для подписи.

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

[0201] В таких типичных вариантах осуществления приложение может получать криптографическое доказательство, которое связывает данные, которые были одобрены пользователем на безопасном средстве чтения смарт-карты, с данными, которые были подписаны смарт-картой. Более конкретно, путем проверки подписи смарт-карты приложение может проверить, какие данные были на самом деле подписаны смарт-картой; путем проверки подписи средства чтения смарт-карты на журнале приложение, кроме того, может проверить, какие данные были фактически рассмотрены и одобрены пользователем (и приложение может, конечно, также проверить и сам факт, что данные на самом деле были рассмотрены и одобрены); и путем проверки содержимого журнала и подписи средства чтения смарт-карты на журнале приложение может проверить, что одобрение данных и подписание данных имели место в одном и том же безопасном сеансе журналирования, с использованием одного и того же средства чтения смарт-карты, и что никакие другие данные не были одобрены и/или введены в систему в течение того же самого сеанса; а также приложение может проверить, что данные, которые были одобрены пользователем, соответствуют данным, которые были подписаны, путем сравнения данных, которые согласно журналу были одобрены пользователем, с данными, которые согласно журналу были подписаны смарт-картой.

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

[0203] В большинстве случаев в предыдущих абзацах термин «команды» (например, в словосочетаниях «команды смарт-карты» или «команды средства чтения смарт-карты») может пониматься как включающий в себя либо только сами команды в строгом смысле, либо как сами команды, а также соответствующие им ответы, если это не определено иным образом или не следует явно из контекста.

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

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

[0206] Вышеупомянутые системы и устройства были описаны относительно взаимодействия между несколькими компонентами. При этом понятно, что такие системы и компоненты могут включать в себя эти компоненты или определенные субкомпоненты, некоторые из указанных компонентов или субкомпонентов и/или дополнительные компоненты, а также их различные перестановки и комбинации. Субкомпоненты также могут быть реализованы как компоненты, коммуникационно связанные с другими компонентами, а не включенные в состав родительских (иерархических) компонентов. Дополнительно следует отметить, что один или более компонентов могут быть объединены в один компонент, обеспечивающий совокупную функциональность, или разделены на несколько отдельных субкомпонентов, и любой один или более средних слоев, таких как слой управления, может быть обеспечен как коммуникационно связанный с такими субкомпонентами для того, чтобы обеспечить интегрированную функциональность. Любые описанные в настоящем документе компоненты могут также взаимодействовать с одним или более другими компонентами, необязательно описанными в настоящем документе, но общеизвестными специалистам в данной области техники.

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

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

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

Похожие патенты RU2607620C2

название год авторы номер документа
СПОСОБ СОВЕРШЕНИЯ ЭЛЕКТРОННЫХ ТРАНЗАКЦИЙ МЕЖДУ УДАЛЕННЫМИ СТОРОНАМИ ПРИ ОБМЕНЕ ИНФОРМАЦИЕЙ ПО КАНАЛАМ СВЯЗИ 2014
  • Груздев Сергей Львович
RU2568057C2
АВТОМАТИЧЕСКАЯ АТТЕСТАЦИЯ СОХРАННОСТИ УСТРОЙСТВА С ПРИМЕНЕНИЕМ ЦЕПОЧКИ БЛОКОВ 2016
  • Спраг Майкл
  • Спраг Стивен
RU2673842C1
ТЕЛЕКОММУНИКАЦИОННАЯ ЧИП-КАРТА 2013
  • Шрия Санджив
  • Фогат Викас
RU2628492C2
УСТРОЙСТВО ДЛЯ КВАЛИФИЦИРОВАННОЙ ЭЛЕКТРОННОЙ ПОДПИСИ В ФОРМЕ СТИЛУСА И СПОСОБ ЕГО ПРИМЕНЕНИЯ 2017
  • Коларов Петер
RU2748559C2
СПОСОБ ОБМЕНА ЗАЩИЩЕННЫМИ ДАННЫМИ 2017
  • Голубев Андрей Анатольевич
  • Лебедев Анатолий Николаевич
RU2659730C1
СПОСОБ С ПРИМЕНЕНИЕМ СОКРАЩЕННОЙ ПО ВРЕМЕНИ ОБРАБОТКИ УСТРОЙСТВА 2016
  • Харри, Саймон
  • Кларк Арон
  • Клевен, Марк
RU2774798C2
СИСТЕМА И СПОСОБ С ПРИМЕНЕНИЕМ СОКРАЩЕННОЙ ПО ВРЕМЕНИ ОБРАБОТКИ УСТРОЙСТВА 2016
  • Харри Саймон
  • Кларк Арон
  • Клевен Марк
RU2735398C2
СИСТЕМА И СПОСОБ СОЗДАНИЯ ЦИФРОВОЙ ПОДПИСИ ПОСРЕДСТВОМ БАНКОМАТА 2002
  • Пармели Кристофер Л.
  • Смит Марк Д.
RU2258256C2
СИНХРОНИЗАЦИЯ СОСТОЯНИЯ МАРКЕРА 2019
  • Шанкар, Рамеш
  • Салливан, Брайан
  • Мохаммед, Сайид
  • Шенкер, Гэйвин
  • Нассар, Ричард
  • Вальдес, Клайд
  • Хилл, Джонатан
RU2792695C2
СПОСОБ С ПРИМЕНЕНИЕМ СОКРАЩЕННОЙ ПО ВРЕМЕНИ ОБРАБОТКИ УСТРОЙСТВА 2022
  • Харри, Саймон
  • Кларк Арон
  • Клевен, Марк
RU2801550C1

Иллюстрации к изобретению RU 2 607 620 C2

Реферат патента 2017 года СРЕДСТВО ЧТЕНИЯ СМАРТ-КАРТЫ С БЕЗОПАСНОЙ ФУНКЦИЕЙ ЖУРНАЛИРОВАНИЯ

Изобретение относится к безопасным средствам чтения смарт-карт. Технический результат – обеспечение защиты электронных данных с использованием смарт-карты. Средство чтения смарт-карты, позволяющее делать подписи средства чтения смарт-карты на данных, представляющих события и действия, которые могут относиться к безопасности и которые могут включать в себя данные, представляющие команды средства чтения смарт-карты, которые средство чтения смарт-карты получает от хоста или от удаленного приложения, команды средства чтения смарт-карты, которыми средства чтения смарт-карты обменивается со вставленной смарт-картой, данные, которые средство чтения смарт-карты представляет пользователю для одобрения, и/или параметры конфигурации, которые средство чтения смарт-карты применяет при обработке любого из вышеперечисленного. Средство чтения смарт-карты, кроме того, может быть выполнено с возможностью поддерживать журналы определенных событий и действий, которые могут включать в себя обмен командами средства чтения смарт-карты с хостом, обмен командами смарт-карты со вставленной смарт-картой и/или взаимодействие с пользователем. Журналы могут включать в себя данные, представляющие команды средства чтения смарт-карты, которые оно получает от хоста или от удаленного приложения, команды смарт-карты, которыми средство чтения смарт-карты обменивается со вставленной смарт-картой, данные, которые средство чтения смарт-карты представляет пользователю для одобрения, и/или параметры конфигурации, которые средство чтения смарт-карты применяет при обработке любого из вышеперечисленного. Безопасное средство чтения смарт-карты может быть выполнено с возможностью генерировать подпись средства чтения смарт-карты на одном или более из этих журналов. 3 н. и 32 з.п. ф-лы, 4 ил.

Формула изобретения RU 2 607 620 C2

1. Средство чтения смарт-карты для генерирования электронных подписей в сочетании со вставленной смарт-картой, включающее в себя:

коммуникационный интерфейс для обмена информацией с главным компьютером;

разъем смарт-карты для обмена информацией со смарт-картой;

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

второй компонент памяти для хранения журнала;

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

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

причем

средство чтения смарт-карты выполнено с возможностью обмениваться со смарт-картой командами смарт-карты, используя разъем смарт-карты; при этом

средство чтения смарт-карты дополнительно выполнено с возможностью работать в безопасном режиме журналирования, в котором средство чтения смарт-карты записывает в упомянутый журнал события, связанные с безопасностью, относительно средства чтения смарт-карты и/или использования средства чтения смарт-карты; и

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

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

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

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

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

6. Средство чтения смарт-карты по п. 4, в котором прозрачные команды смарт-карты, которые средство чтения смарт-карты записывает в журнал, включают в себя прозрачные команды смарт-карты для получения от вставленной смарт-карты сгенерированной электронной подписи смарт-карты на представленных данных.

7. Средство чтения смарт-карты по п. 4, в котором средство чтения смарт-карты выполнено с возможностью записи в журнал всех прозрачных команд смарт-карты в течение периода от первого момента времени до второго момента времени.

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

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

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

11. Средство чтения смарт-карты по п. 10, которое поддерживает одну или более команд средства чтения смарт-карты для изменения набора данных конфигурации.

12. Средство чтения смарт-карты по п. 1, дополнительно включающее в себя часы и выполненное с возможностью добавлять к журналу одну или более отметок времени.

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

14. Средство чтения смарт-карты по п. 1, дополнительно выполненное с возможностью получать запрос посредством команды средства чтения смарт-карты и записывать в журнал полученный запрос.

15. Средство чтения смарт-карты по п. 1, дополнительно включающее в себя счетчик и дополнительно выполненное с возможностью записывать в журнал значение, относящееся к упомянутому счетчику.

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

17. Средство чтения смарт-карты по п. 1, в котором журнал включает в себя множество файлов журнала, и в котором подпись средства чтения смарт-карты на журнале включает в себя множество подписей на множестве файлов журнала.

18. Средство чтения смарт-карты по п. 1, которое дополнительно выполнено с возможностью поддерживать команду средства чтения смарт-карты для проверки идентификационных данных пользователя.

19. Средство чтения смарт-карты по п. 18, которое дополнительно выполнено с возможностью записи в журнал результата проверки идентификационных данных пользователя.

20. Средство чтения смарт-карты по п. 18, которое дополнительно выполнено с возможностью запрашивать у пользователя на пользовательском выходном интерфейсе ввести значение ПИН-кода, получать на пользовательском входном интерфейсе значение ПИН-кода, которое ввел пользователь, и передавать полученное значение ПИН-кода вставленной смарт-карте для проверки.

21. Способ генерирования электронной подписи на данных, которые должны быть подписаны, включающий в себя стадии:

соединения средства чтения смарт-карты с главным компьютером;

вставки смарт-карты в средство чтения смарт-карты;

входа средства чтения смарт-карты в безопасный режим журналирования;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

обеспечения пользователю смарт-карты для подписи данных;

обеспечения пользователю средства чтения смарт-карты по п. 1;

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

сборки данных транзакции;

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

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

подтверждения того, что смарт-карта вставлена в средство чтения смарт-карты;

подтверждения того, что средство чтения смарт-карты вошло в безопасный режим журналирования;

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

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

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

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

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

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

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

хранящимся в средстве чтения смарт-карты, и получения после этого электронной подписи средства чтения смарт-карты на журнале, сгенерированной средством чтения смарт-карты;

проверки полученной электронной подписи смарт-карты;

проверки полученной подписи средства чтения смарт-карты на журнале, сгенерированной средством чтения смарт-карты;

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

35. Способ по п. 34, в котором передача вставленной смарт-карте данных, которые должны быть подписаны, включает в себя обмен между главным компьютером и вставленной смарт-картой прозрачными командами смарт-карты для передачи смарт-карте данных, которые должны быть подписаны; и в котором запись средством чтения смарт-карты в журнал на средстве чтения смарт-карты данных, которые должны быть подписаны, переданных смарт-карте, или электронной подписи смарт-карты, сгенерированной вставленной смарт-картой, включает в себя запись прозрачных команд смарт-карты, которыми обмениваются между собой главный компьютер и вставленная смарт-карта для передачи смарт-карте данных, которые должны быть подписаны, или для получения электронной подписи смарт-карты, сгенерированной вставленной смарт-картой, на данных, переданных смарт-карте для подписания.

Документы, цитированные в отчете о поиске Патент 2017 года RU2607620C2

US 7296149 B2, 13.11.2007
US 7934099 B2, 26.04.2011
Пломбировальные щипцы 1923
  • Громов И.С.
SU2006A1
US 6925564 B1, 02.08.2005
Аппарат для очищения воды при помощи химических реактивов 1917
  • Гордон И.Д.
SU2A1

RU 2 607 620 C2

Авторы

Брамс Харм

Даты

2017-01-10Публикация

2012-11-14Подача