CN101821715A - 用于基于浏览器对智能卡进行访问的系统和方法 - Google Patents

用于基于浏览器对智能卡进行访问的系统和方法 Download PDF

Info

Publication number
CN101821715A
CN101821715A CN200880111518A CN200880111518A CN101821715A CN 101821715 A CN101821715 A CN 101821715A CN 200880111518 A CN200880111518 A CN 200880111518A CN 200880111518 A CN200880111518 A CN 200880111518A CN 101821715 A CN101821715 A CN 101821715A
Authority
CN
China
Prior art keywords
smart card
browser
response
described smart
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200880111518A
Other languages
English (en)
Other versions
CN101821715B (zh
Inventor
K·萨赫德瓦
K·克里希纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axalto SA
Thales DIS France SA
Original Assignee
Axalto SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axalto SA filed Critical Axalto SA
Publication of CN101821715A publication Critical patent/CN101821715A/zh
Application granted granted Critical
Publication of CN101821715B publication Critical patent/CN101821715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

一种能够在主计算机上从浏览器内部执行的客户侧应用扩展,所述浏览器具有执行至少一个浏览器插件,以便通过所述浏览器为用户提供访问智能卡的能力,所述智能卡被连接到具有智能卡资源管理器的所述主计算机。所述浏览器扩展具有指示中央处理单元通过与网络浏览器和平台无关的接口模块和与浏览器和平台相关的包装器模块访问智能卡上的数据的指令,与浏览器和平台相关的包装器模块连接到所述与浏览器和平台无关的接口模块,并且连接到具有函数处理模块的所述智能卡资源管理器,所述函数处理模块可以操作以便接收对用于访问智能卡上的数据的所述至少一个函数的调用,并且用于将所述函数调用变换为对所述智能卡资源管理器的相应调用。

Description

用于基于浏览器对智能卡进行访问的系统和方法
技术领域
本发明总体上涉及对智能卡的应用程序访问,并且更特别地,涉及用于允许在网络浏览器中执行的用户应用访问智能卡中的功能和数据的方法和系统。
背景技术
智能卡是没有输入和输出装置的小型安全个人计算机。智能卡的典型应用包括用户鉴别、存储私人数据和作为电子钱包使用。对于这些应用以及其它应用,与智能卡交互的通常模式是来自在智能卡连接到其上的主计算机上执行的主机应用。
例如,对基于智能卡的公共密钥基础结构功能性的主机应用程序访问,典型地是通过安装提供可从应用程序调用的应用程序接口的中间件实现的。然后,中间件典型地经由某读卡器的形式执行与智能卡硬件的交互。一种普遍可用的体系结构是基于来自PC/SC工作组的PC/SC规范。图1是示出PC/SC规范的实施例的高级别图。在主计算机103上运行的智能卡感知应用101通过主计算机中间件105和智能卡资源管理器107访问智能卡104a-d。智能卡资源管理器107接着与主计算机103连接到其上的各种智能卡读卡器111a-d的驱动程序109a-d交互。
该体系结构向智能卡的配置引出了几个问题。这些问题包括将中间件部件加载到主计算机上并且更新中间件部件的要求。当智能卡被用于与基于网络的应用一起使用时,这变成特别不期望的要求。
逐渐地,网络应用已经变得普通并且允许与平台无关的对在因特网上可得的数据和服务的访问。例如,诸如在线电影租赁和基于网络的电子邮件应用的网络服务已经变得非常流行。联网计算机的几乎无所不在的配置和广泛采用基于网络的应用的一个优点是这种方案将用户从虚拟范围迁移到用户自己的计算机。例如,通过使用诸如谷歌的Gmail的基于网络的电子邮件服务,这些服务的订户能够从连接到网络的任何计算机访问他们的电子邮件。
现在,考虑将智能卡添加到基于网络的环境。如果用户拥有用于存储例如口令、账户信息或数字证书或者用于执行例如密码服务的某种安全功能的智能卡,并且如果当在除属于用户的计算机之外的计算机上执行某些基于网络的事务时用户希望使用智能卡,用户将必须在用户希望使用的特定主计算机103上安装主计算机中间件105并且可能必须安装适当的IFD驱动程序109。该主计算机的所有者可能没有给予用户用于安装中间件软件的足够的特权。此外,所有者可能不希望将这种中间件软件安装在计算机上,或者,如果所讨论的计算机是公共计算机,例如在机场和图书馆中的公用电话亭中找到的计算机,授权安装该中间件部件的人甚至可能找不到。该问题是在这种安全保护将具有特别高价值的环境中阻碍能够使用智能卡用于其中提供的安全方案智能卡的用户的一个问题。同样地,更新中间件存在类似的问题。
另一个问题是网络浏览器向中间件暴露接口的方式。因为流行的基于网络的浏览器,例如Firefox和IE,向中间件提供不同的接口,与这种中间件相关的网络应用必须是网络浏览器感知的。换句话说,网络应用必须特定于每个网络浏览器开发,或者必须进行内部检查以确定正在使用哪个网络浏览器,并且具有寻址适当中间件的能力。
这些问题是非常不好的。当网络变成广泛使用的用于许多类型事务的虚拟市场时,网络非常易于发生诸如私人账户的欺骗使用、身份盗用和私人数据盗用的安全问题。智能卡理想地适于解决这种问题。例如,智能卡可以被用于安全存储用户凭证,并且可以被用作登录过程的组成部件,从而提供两因子鉴别。然而,在用户希望在访问网络服务中使用的主计算机上安装中间件的必要性阻碍了智能卡有效地用于某些这种使用。
与密码服务一起使用智能卡可以是有益的。因为这种智能卡可以被用于存储用户的私人密钥和数字证书。此外,智能卡还可以被用于执行诸如加密消息、解密消息、提供用户登录和使用用户的私人密钥数字地签署文档的密码操作。以上提到的在智能卡的配置中的问题在它们用作密码装置时更加加重了。
因为硬件权标、甚至软件安全装置呈现不同接口,并且使用不同协议,业界已经致力于用于以与硬件无关的方式访问诸如存储和访问证书、签署或加密数据等的密码性能的各种规范。用于提供这种对密码的硬件无关访问的主要竞争标准有两个:Crypto API(CAPI)和PKCS#11。这两个标准与不同的操作系统平台和网络浏览器大大相关联。CAPI是用在来自华盛顿雷德蒙的微软公司的Windows操作系统中的标准,并且作为Windows操作系统的标准功能提供。其是用于实现微软的IE的密码标准。RSA实验室开发的PKCS#11可用在几个台式机操作系统中,并且是可经由Firefox网络浏览器从Mozilla机构本土地获得的。在两个方法之间存在类似处和不同处。
在用于使用智能卡提供密码服务的传统方法中,开发者将开发用于将要作为电子邮件客户和诸如台式机登录或虚拟个人网(VPN)的其它应用的插件程序安装的CAPI或PKCS#11的主机模块。这些模块不是以下操作系统安装的一部分。
从上文可以看出,明显地有提供对智能卡的网络应用访问的改进的方法的需要。
附图说明
图1是示出PC/SC规范的实施例的高级别视图的框图。
图2是示出图1的智能卡的体系结构的高级别视图的框图。
图3是示出其中网络浏览器应用与智能卡交互的实施例的框图。
图4是示出智能卡资源管理器网络浏览器应用接口程序的实施例的框图,其中智能卡资源管理器网络浏览器应用接口程序被划分成两部分:智能卡资源管理器包装器网络浏览器扩展和智能卡应用接口脚本模块。
图5是其中用户可以尝试执行网页的网络的示意图。
图6是示出SConnect.PCSC类的实例和使用它与智能卡交互的框图。
图7是示出当用户尝试执行要求使用智能卡的网络应用时的消息流的时序图。
图8是示出消息流和在向智能卡创建异步命令期间发生的定时的时序图。
图9是示出用于从在远程计算机系统上执行的远程服务器获得卡特定驱动程序的序列的时序图。
图10是示出过程流的时序图。
图11是允许用户给予或拒绝网站使用从网站下载的javascript与智能卡交互的批准的示例用户对话窗口。
图12是允许用户管理被允许和不被允许使用从网站下载的javascript与智能卡交互的网站的列表的示例用户对话窗口。
图13是示出用于允许或不允许网站使用从网站下载的javascript与智能卡交互过程流的时序图。
具体实施方式
在以下的详细描述中,参考通过图示的方式示出其中本发明实施的特定实施例的附图。这些实施例被足够详细地描述,以使得本领域的技术人员能够实施本发明。应该理解,本发明的各种实施例虽然不同,但并不必然相互排斥。例如,这里结合一个实施例描述的一个特定特征、结构或特性可以在其它实施例中实现,而不偏离本发明的精神和范围。此外,应该理解,可以修改在每个公开的实施例中的各个元件的位置或布置,而不偏离本发明的精神和范围。因此,以下的详细描述不应理解为限制意义,并且本发明的范围仅仅由所附的权利要求限定,适当地解释为,在权利要求的等价物的整个范围上授权。在附图中,相似的附图标记指在几个视图中相同或类似的功能。
在本发明的实施例中,网络浏览器扩展提供网络浏览器应用和在大多数计算机中找到的智能卡资源管理器(PC/SC)之间的接口。网络浏览器扩展将网络浏览器应用与智能卡资源管理器隔离。此外,网络浏览器扩展经由智能卡资源管理器提供网络浏览器应用和连接到其上运行有网络浏览器的主计算机103上的智能卡之间的绶讯道,网络浏览器扩展在主计算机网络浏览器中执行。
图3是示出其中网络浏览器应用A 300a与智能卡A 104a交互的实施例的框图。如在现有技术的例子中,每一种类型的智能卡104使用那种智能卡类型特定的驱动程序。在图3的实施例中,在优选实施例中,该卡特定驱动程序实现为脚本模块301。如果还没有下载卡特定驱动程序301,其如这里以下结合图9描述的那样,使用例如被称为按需Javascript的技术被加载。
卡特定驱动程序301经由智能卡资源管理器网络浏览器应用接口程序303与智能卡104a通信。智能卡资源管理器网络浏览器应用接口程序303是与网络浏览器脚本、例如Javascript结合的网络浏览器扩展,其在智能卡资源管理器107上起包装器的作用。
智能卡资源管理器网络浏览器应用接口程序303提供使得网络应用能够与标准智能卡104通信的连通性技术。主机(PC)应用经由在主机操作系统中称为PC/SC的专用通信层连接到智能卡104。类似地,可以与智能卡104通信的网页或应用的部件是嵌入式脚本,通常是Javascript。除非直接或经由插件程序间接置入到网络浏览器中,在网页中的脚本不能与主计算机的硬件通信。智能卡资源管理器网络浏览器应用接口程序303使用利用提供这种功能性的典型网络浏览器技术的标准主机通信框架,使能在网页中的Javascript和在网络浏览器中显示该网页的主机中的智能卡104之间的通信信道。智能卡资源管理器网络浏览器应用接口程序303是与网络浏览器无关的,并且提供典型智能卡通信API,以便最小化使用该技术向网络应用提供智能卡连通性的开发者的学习曲线。概念上,智能卡资源管理器网络浏览器应用接口程序303提供与XmlHttpRequest对象行为类似的连通性,这允许AJAX网络应用开发。虽然XmlHttpRequest提供Javascript和服务器之间的连通性,智能卡资源管理器网络浏览器应用接口程序303提供应用Javascript、即网络浏览器应用101和智能卡104之间的连通性。
图4是示出智能卡资源管理器网络浏览器应用接口程序303的一个实施例的框图,其中智能卡资源管理器网络浏览器应用接口程序303被划分成两部分:智能卡资源管理器包装器网络浏览器扩展401和智能卡应用接口脚本模块403。
智能卡资源管理器包装器网络浏览器扩展401是增强网络网络浏览器的默认功能性以创建到PC/SC实施方式的信道的程序。每个网络网络浏览器203(例如,来自Mozilla机构的Firefox、来自微软的IE、来自加利福尼亚州库珀蒂诺的苹果公司的Safari、来自挪威奥斯陆的Opera Software ASA的Opera)都具有它自己的创建扩展的规定手段。因此,相应的智能卡资源管理器包装器网络浏览器扩展401可用于每个支持的网络浏览器。扩展可经由Javascript访问。
如以上所提到的,网络浏览器具有不同的写扩展方式,并且在某些情形中,具有不同的交互方式。为了给开发者提供多产的环境,可以经由智能卡应用接口脚本模块403得到向开发者隐藏所有与网络浏览器的代码相关的库脚本。智能卡应用接口脚本模块403向将应用程序101与其中网络浏览器期望扩展被写入和交互的独特方法隔离的PC/SC层提供面向对象的接口。
表1是访问智能卡104的示例网络浏览器应用101。在表1的例子中,
<html>
  <head>
     <script src=″sconnect.js″language=″javascript″></script>
     <script language=″javascript″>
       function RunDemo()(
          //instantiate the PCSC class
           var pcsc=new SConnect.PCSC();
          //get the name  of  readers which have smart cards
                 //inserted in them.
                 var readers  =pcsc.listReaders(1);
          //connect to the  first reader
                var res=pcsc.connect(readers[0],
                               SCardAccessMode.Shared,
                               SCardProtocolIdentifiers.TO);
                if(res===false){
                    //error connecting.
                          alert(″problem connecting to
                          reader-″+readers[0]);
                    return;
               }
         //send an APDU to the card,return value will be
         //the status word
         res=pcsc.transmit(″00A40400081122334455667788″);
         //if card requires GetResponse APDU(00C00000XX)
         //then it is better to use exchangeAPDU method
         res=
        pcsc.exchangeAPDU(″B03800000B0102030411220908070605″);
         //disconnect with LeaveCard disposition mode
         pcsc.disconnect(SCardDisposition.LeaveCard);
         //dispose the pcsc object to release the resources
         pcsc.dispose();
       }
     </script>
   </head>
   <body>
      <input type=″button″value=″click me″id=″but1″
onclick=″RunDemo();″>
   </body>
</html>
表1.使用智能卡资源管理器Wrapper.js的基本网络应用的代码
表1的代码是执行脚本(Javascript)的基本网页,其通过发送APDU与智能卡通信。表1的代码以下载智能卡应用接口脚本模块403开始(在该例子中,智能卡应用接口脚本模块被称作SConnect.js)。应用接口模块403,即sconnect.js脚本库处理与网络浏览器相关的代码,其通过以下语句被包括在网页的开始:
<script src=″sconnect.js″
language=″javascript″></script>
因此,使网络开发者能够自由地聚焦在智能卡交互逻辑上。
智能卡应用接口脚本模块403或者已经下载在网络浏览器会话中,或者可以从用户与之交互的远程服务器站点下载。
应用程序300典型地以创建SConnect.PCSC类的对象开始。如果要安装网络浏览器特定智能卡资源管理器包装器网络浏览器扩展401,创建对象的构造程序(构造程序是当创建对象时执行的类中的特殊指令块)将其实例化。否则,构造程序放弃system.BrowserExtensionNotInstalledException。以对智能卡资源管理器包装器网络浏览器扩展401(等价于PC/SC API的SCardEstablishContext)中establish Context的调用完成对象的成功创建。以下行示出了怎样创建SConnect.PCSC类的对象。
var pcsc=new SConnect.PCSC();
另一方面,如果system.BrowserExtensionNotInstalledException通过<script>命令被放弃,执行网络应用的用户就被邀请从远程服务器安装Smart Card Resource Manager Wrapper.js303。
因此,呼叫
var pcsc=new SConnect.PCSC();
创建新的对象-pcsc。pcsc对象具有可以从网络浏览器应用300调用的方法。这些方法在智能卡应用接口脚本模块403中具有相对物,而智能卡应用接口脚本模块403在智能卡资源管理器(PC/SC)107中具有相对物函数。因此,智能卡资源管理器包装器网络浏览器扩展401向可以由网络浏览器应用300调用的智能卡资源管理器(PC/SC)107提供面向对象的接口。
图5是其中用户501可以尝试执行网页的网络的示意图。用户501正在操作在主计算机103上显示窗口503的网络浏览器203。用户希望与在或许用于在网络509上执行某种形式的在线事务的远程计算机系统507上执行的远程网络服务器505交互。为了确保事务,用户501使用经由接口装置111连接到主计算机103的智能卡104。
作为网络浏览器会话的一部分,可能已经安装了智能卡管理器包装器网络浏览器扩展401。在一个替代实施例中,智能卡资源管理器包装器网络浏览器扩展401没有安装在网络浏览器203中。在智能卡资源管理器包装器网络浏览器扩展401已经安装的情形中,不提示用户安装智能卡资源管理器包装器网络浏览器扩展401。另一方面,如果还没有安装智能卡资源管理器包装器网络浏览器扩展401,用户501被邀请从在远程服务器系统513上运行的服务器(例如,www.sconnect.com)511下载智能卡资源管理器包装器网络浏览器扩展401。作为替代,正在由用户501执行的网页的提供者可以从由提供者操作的网站提供智能卡资源管理器包装器网络浏览器扩展401。
因为主计算机103可以具有许多连接到其上的智能卡读卡器111,智能卡资源管理器网路浏览器应用接口程序303使用listReader(readersWith Card)函数提供列表读卡器的方式。指定变元“true”将仅仅列出那些具有在其中插入智能卡的读卡器,返回所有读卡器的其它名称
var readers=pcsc.listReaders(true);
对pcsc对象的listReaders方法的该调用导致对智能卡资源管理器包装器网络浏览器扩展401中相应函数的调用,例如,称为PCSC-SCardListReaders的调用智能卡资源管理器(PC/SC)107的SCardListCards()函数的函数。
下一个步骤是连接到指定它的名称、连接模式(共享、排他或相互)和协议标识符(T0或T1)的读卡器111。返回值true表明成功创建。
var res=
pcsc.connect(readers[0],SCardAccessMode.Shared,SCardPro
tocolIdentifiers.T0);
在这一点上,网络浏览器203准备将命令发送到读卡器,并且经由读卡器发送到到其已经建立了成功的连接的智能卡101。在一个实施例中,以ISO-7816APDU格式发送命令。在PC/SC中,这通过使用SCardTransmit API完成。在一个实施例中,智能卡资源管理器包装器扩展303提供API transmit(command)来完成它。
var response=
pcsc.transmit(″00A40400081122334455667788″);
在这种与智能卡104的典型交互中,响应是状态词和数据。状态词是2字节值,大多数时间它的含义由主机应用解释,而某些状态词被标准化并由ISO7816-4指定。
var statusWord=response.StatusWord;
var retVal=response.retVal;
一个这样的状态词是61XX,其中XX指示要由主机应用使用GetResponse command(00C00000XX)检索的字节数量。因为通常检索操作的序列被要求使用GetResponse command检索响应数据,一个实施例包括exchangeAPDU方法以执行GetResponse command的序列,直到已经检索所有数据。
response=
pcsc.exchangeAPDU(″B03800000B0102030411220908070605″);
最后,应用101通过调用SConnect.PCSC类的dipose方法断开读卡器111并且释放资源。在PC/SC中,当(使用SCardDisconnectAPI)断开时,指定在断开之前对智能卡采取的动作可以被指定为处置模式。这些动作的例子是LeaveCard,ResetCard,UnpowerCard和EjectCard。如果没有使用断开函数,那么dispose使用LeaveCard动作断开。
pcsc.disconnect(SCardDisposition.LeaveCard);
pcsc.dispose();
图6是示出了SConnect.PCSC类的实例并且使用该实例与智能卡通信的方框图。当网络浏览器应用执行“pcsc=newSConnect.PCSC”指令时,实例化SConnect.PCSC类的实例601。对象601包含具有至少一个变元的方法transmit603;典型地,该方法可被认为是来自SConnect.PCSC类的继承。该变元是将被传输到智能卡104的APDU消息。
网络浏览器应用300可以包括调用PCSC对象601的transmit()方法603的至少一个指令605,该指令的执行引发对PCSC对象601的transmit方法的调用,PCSC对象601是具有将被传输到智能卡104的特定APDU变元的消息601。
SConnect.PCSC类定义规定该transmit方法引发对PCSC_transmit函数,即,指令609的调用。PCSC_transmit函数是智能卡资源管理器包装器网络浏览器扩展401的函数。因此,对PCSC_transmit函数,即,指令609的函数调用的执行引发函数调用611,函数调用611传递将被传输到智能卡104的APDU。
PCSC_transmit函数在智能卡资源管理器包装器网络浏览器扩展401中的实现包含调用智能卡资源管理器(PC/SC)107的SCardTransmit函数的指令613。该指令的执行引发对智能卡资源管理器(PC/SC)107的相应函数调用615。
智能卡资源管理器(PC/SC)107的SCardTransmit函数引发通过SCardTransmit函数的变元列表接收的APDU向智能卡104的传输。
如果已经安装了智能卡资源管理器包装器网络浏览器扩展401,由智能卡资源管理器(PC/SC)107检测到的智能卡插入事件被传输到智能卡资源管理器包装器网络浏览器扩展401。当检测到智能卡104的插入或试图使用其用户501未被验证的智能卡104时,需要用户501成功地验证他自己。因此,当智能卡资源管理器包装器扩展303通知正在进行调用的网络浏览器应用300已经插入了智能卡104,并且网络浏览器应用300试图调用智能卡资源管理器包装器网络浏览器扩展401内的函数时,智能卡104或智能卡资源管理器(PC/SC)107将返回用户已经或尚未被验证的指示。在后一种情况下,网络浏览器应用300可以显示登录屏幕,以便给用户501提供登录到智能卡104的机制。
图7是示出了当用户501试图执行需要使用智能卡104的网络应用时的消息流的时序图。用户501在主计算机103上执行网络的网络浏览器203。用户501在步骤701试图访问远程服务器505上的网络应用。相应于该网络应用的网页被传输到网络浏览器203。该网络应用包括对智能卡资源管理器包装器扩展303脚本的调用。在步骤705,如果智能卡资源管理器包装器扩展303已被安装在网络浏览器203内,则在步骤707,可以开始与智能卡104的通信。
在另一方面,如果智能卡资源管理器包装器网络浏览器扩展401尚未安装,则在步骤708提示用户501下载(如果必要)并且安装智能卡资源管理器包装器网络浏览器扩展401。这将通常通过给用户501提供链接来执行,对该链接的点击将引起步骤709的从服务器511请求智能卡资源管理器包装器网络浏览器扩展401,可以从服务器511装入智能卡资源管理器包装器网络浏览器扩展401。作为响应,服务器511在步骤711返回智能卡资源管理器包装器网络浏览器扩展401,并且智能卡资源管理器包装器网络浏览器扩展401在步骤713被装入网络浏览器203。在步骤707可以发生与智能卡104的通信。
网络浏览器应用通常在一个线程内执行。一个线程是可被与其它线程并行执行的指令序列,但是在该线程内指令彼此相继。与智能卡104的交互通常相对费时。由于应用的指令在一个线程中执行时的这种延迟,连接智能卡104的命令或向智能卡104发出的命令可能导致用户501的网络浏览器203的会话看似被锁定的非常不快的经历。更好的方法是允许用户501继续与网页交互或显示某些状态信息,例如,状态进度条。
在一个实施例中,异步地执行连接智能卡104的操作或与智能卡104通信的命令。表II是示出了到智能卡104的命令异步传输的代码段。
<script language=″JavaScript″>
   var responseSuccess=function(o){
      alert(″Status word is:″+o.statusWord);
      alert(″Return value is:″+o.retVal);
   };
   var responseFailure=function(o){
      alert(″Exception is:″+o.exception);
   };
   var callBack={
      success:responseSuccess,
      failure:responseFailure
   };
   function RunDemo(){
   ...
   ... 
   pcsc.async_transmit(″00A40400081122334455667788″,callBack);
 }
</script>
表II用于智能卡命令的异步执行的代码
为了提供异步命令的创建,智能卡资源管理器包装器网络浏览器扩展401包括提供智能卡资源管理器(PC/SC)107的命令执行完成时的回调的函数。因此,智能卡资源管理器包装器网络浏览器扩展401提供async_transmit函数。其第一个变元是用于从主计算机103的传输的APDU分组,并且第二个变元是从该命令返回时调用的函数。“回调”函数通常指定将根据智能卡104或智能卡资源管理器(PC/SC)107的命令执行所获得的结果采取的某些动作。
图8是示出了消息流和针对智能卡104的异步命令创建期间发生的定时的时序图。对于这个例子,认为应用101是表II中的代码。在位置801,主计算机103执行RunDemo函数。当主计算机103遇到pcsc.async_transmit函数时,在变换803,主计算机103将控制传递给智能卡资源管理器包装器网络浏览器扩展401。pcsc.async_transmit函数在新线程中向智能卡资源管理器107发出transmit()调用805。应用101在调用807之后继续执行。在通过调用pcsc.async_transmit产生的新线程中,智能卡资源管理器107向ifd 111(未示出)发送命令,并且最终在步骤809向智能卡104发送命令。在这些交互在智能卡资源管理器107和智能卡104之间发生的同时,应用101在原始线程中继续执行811。
在连接尝试之后的某个时刻,智能卡104做出响应813,并且智能卡资源管理器107在步骤815和817通过返回智能卡资源管理器包装器网络浏览器扩展401的async_transmit()函数向应用101返回一个状态。使用指定从第二个线程返回后将被调用的“回调”函数的async_transmit()函数的第二个变元,在步骤819,主计算机103将控制传递给应用101的callback()函数。
在建立针对智能卡104的连接时,可以采用一种非常类似的异步机制。主要差异是对于连接将应用不同的命令。
如上所述,如果用于特定智能卡104的卡特定驱动程序301尚未被安装,在检测到新的智能卡104时,智能卡资源管理器包装器扩展303引起从远程服务器获得的卡特定驱动程序301的执行。图9是示出了用于从运行在远程计算机系统513上的远程服务器511获得卡特定驱动程序301的序列的时序图。如果卡特定驱动程序301尚未被装载,则执行引导脚本900,以便如果远程服务器511具有可用于所讨论的卡的卡特定驱动程序301,则引发从远程服务器511下载正确的卡特定驱动程序301。
在步骤901,智能卡104被物理地连接到主计算机103。在步骤903,这触发被智能卡资源管理器107检测到的智能卡插入事件。智能卡资源管理器(PC/SC)107提供API和事件,从而智能卡资源管理器网络浏览器应用接口程序303可以通过事件循环监视卡插入和取出。智能卡资源管理器107向智能卡104传输进行应答复位(ATR)的请求905。智能卡104以ATR907响应,ATR907被传输到网络浏览器203;具体地,在步骤909被传输到智能卡资源管理器网络浏览器应用接口程序303。
如果在步骤911智能卡资源管理器网络浏览器应用接口程序303可以确定已经装载了适当的卡特定驱动程序301,网络浏览器203可以在步骤913进入与卡的通信。否则,ATR被传输到远程服务器511。远程服务器511在步骤917确定它是否可以从ATR识别智能卡104。在许多情况下,可从ATR中的被称为historical bytes的字段识别智能卡104。如果可以从ATR确定智能卡104的类型,在步骤919卡特定驱动程序301被传回主计算机103。
如果服务器511不能从ATR识别智能卡104,远程服务器511向主计算机103传回指示不能从ATR唯一地识别智能卡104的消息,即,消息921。在消息921中,远程服务器511包括智能卡104要执行的命令。该命令被选择为揭示智能卡104的容量的命令。例如,为了测试智能卡104是否是JavaCard,该命令可以是对智能卡104的getStatus()请求,通过返回所支持的应用的应用标识符(AID),智能卡104响应该请求识别智能卡104支持的应用;对于本地智能卡104,该命令可以是将被测试的特定本地智能卡104所支持的已知操作,在该情况下,预期的返回将是该操作的预期结果;例如,对于来自德克萨斯州奥斯汀市的Gemalto公司的Gemalto.NET卡,该测试命令可以是查询智能卡104是否支持被称为mscm的服务。
引导脚本900接收该命令,并且在步骤923将该命令转发到智能卡资源管理器107,智能卡资源管理器107又在步骤925将该命令转发到智能卡104。智能卡104在步骤927执行该命令,并且在步骤929返回结果。该结果被在步骤931转发到引导脚本900,并且在步骤933转发到远程服务器511。远程服务器511在步骤935从该结果确定智能卡104是否是已知的,并且具有所支持的驱动程序。如果远程服务器511确定智能卡104作为服务器511正对其进行测试的智能卡104应答,服务器511在步骤937将卡特定驱动程序301传回主计算机103。在一个实施例中,被传回主计算机103的是下载卡特定驱动程序301的链接。
在另一方面,如果从智能卡104返回的结果与正被测试的智能卡104的预期结果不匹配,服务器511可以在步骤939测试另一个智能卡104。如果存在要被测试的更多智能卡104,远程服务器511在步骤921返回将被智能卡104执行的另一个命令。然而,如果没有更多要被测试的智能卡104,即,已经测试了服务器511具有卡特定驱动程序301的所有智能卡104,指示智能卡104不被支持的错误消息,即,消息941被返回到主计算机103。
应当注意,虽然相同的服务器511用于下载智能卡资源管理器包装器网络浏览器扩展401(如上所述),这仅是出于说明的目的。可以从完全无关的远程服务器装载卡特定驱动程序301和智能卡资源管理器包装器网络浏览器扩展401。
如上面讨论的,密码服务是智能卡104的许多重要应用之一。迄今为止,由于具有两种不兼容并且相互竞争的系统PKCS#11和CAPI的传承,密码解决方案的实现非常麻烦。传统地,智能卡应用开发者为PKCS#11和CAPI编写和部署主机模块。如上面讨论的,这引出了若干不希望的后果。
通过使用利用智能卡资源管理器网络浏览器应用接口程序303(例如,如上所述,智能卡资源管理器包装器网络浏览器扩展401和智能卡应用接口脚本模块403的组合)、引导脚本900以及相关联的处理流的上述技术,应用开发者能够避免依赖和负担主计算机103上的密码中间件。
考虑智能卡104具有PKCS#11能力,并且开发者希望开发使用智能卡104利用这些密码能力数字地签署电子邮件消息的应用的情况。然后通过卡特定驱动程序301(使用引导脚本900装载)在智能卡资源管理器包装器扩展303上开发特定应用101,以便直接访问这些密码能力。
图10是示出了该处理流的时序图。
在我们的网络应用的背景中的这种实现的工作流如下。考虑用户Alice希望使用存储在她的智能卡104内的PGP密钥签署电子邮件消息。
.Alice在步骤153使用例如Firefox网络浏览器203通过SecureSociety的网络接口,消息155,访问Secure Society的SMail151(即,运行在远程网络服务器上的应用)。
.Alice在步骤157写电子邮件,她希望使用存储在其智能卡104内的PGP密钥签署该电子邮件。她在步骤159点击签署电子邮件图标/按钮。如果Firefox网络浏览器203不能使用SConnect,即,智能卡资源管理器包装器网络浏览器扩展401未被安装,则她被提示安装智能卡资源管理器包装器网络浏览器扩展401。
.引导JavaScript900(例如,在步骤161从SMail服务器下载的)确定她的智能卡104的ATR,即,消息163和165,并且在步骤167将它送回SMail服务器151(使用AJAX)。
.SMail服务器151查找数据库,以便确定智能卡104的相应智能卡特定PKCS#11JavaScript模块(即,上面使用的术语中的卡特定驱动程序301),并且响应以前的请求在步骤169将其送回。
.一旦下载了卡特定驱动程序301,卡特定驱动程序301开始与智能卡104通信(使用智能卡资源管理器网络浏览器应用接口程序303)。通过请求将加密的消息从服务器511发送到智能卡104,确保安全通信。
.卡特定驱动程序301(现在在网络浏览器203上执行)在步骤171以PIN输入对话框提示Alice,以便向她的智能卡104进行验证,或提示其它登录过程。
.一旦成功地验证,在步骤173选择Alice的智能卡中的适当证书。在她的智能卡104包含许多证书的情况下,它们被显示出来,并且提示Alice选择它们中的一个。
.在证书选择之后,在步骤175,卡特定驱动程序301以及,例如,ASP.NET处理程序与智能卡104交互数据,以便签署Alice的邮件的内容。通过对智能卡资源管理器网络浏览器应用接口程序303进行调用来执行这些通信,用于如上文所述的将数据发送到智能卡104。
.在步骤177,由智能卡104根据PGP规范包装该签名。
.在步骤179,签署后的消息被送回网络浏览器,并且在步骤181,被网络浏览器送回网络邮件应用151。
在替代实施例中,针对由在连接了智能卡104的主计算机103上执行的application.js javascrip101进行的对智能卡104的访问尝试,进行关于用户是否希望授权进行javascrip101和智能卡104之间的提议交互的查询。在一种操作情况下,网站505可能被以恶意意图设计为通过欺骗用户获得机密用户信息,或被设计为对智能卡104进行拒绝服务攻击。在后者情况下,application.js javascrip101可以例如被设计为反复地向智能卡104呈现不正确的登录凭证。大部分智能卡104具有对所允许的不正确登录尝试数目的限制。当超过该限制时,智能卡104被锁定,并且如果没有,例如,来自卡发行者的高级别干预就不能使用。
图11示出了当网络浏览器扩展401检测到访问智能卡104的尝试时显示给用户的示例用户对话窗口,并且给出了对话241。在用户希望批准application.js javascrip101和智能卡104之间的交互的背景下,网站的URL(或用于标识网站的某些其它适当设备)被添加到批准列表中。如果用户拒绝访问,该网站被添加到未批准列表。以网络浏览器规定的机制(例如,cookies)管理这个列表。
图12示出了显示给用户以便编辑允许/禁止与智能卡104交互的网站的批准列表和未批准列表的示例用户对话窗口243。在一个实施例中,智能卡资源管理器网络浏览器应用接口程序303的安装引起网络浏览器菜单内,例如,在网络浏览器“Tool”菜单之下添加用于显示对话窗口243的菜单项。
图12是示出了使用批准列表和未批准列表,以便允许或拒绝应用javascript与智能卡104交互的权利的时序图。用户访问了一个网站(例如,http://evilweb.com)。通过上传应用javascript 101x,该网站试图部署针对智能卡104的攻击。当应用javascript 101x以消息253请求与智能卡104的交互时,网络浏览器扩展401在步骤255确定该javascript出自的网站是否在批准列表内。
如果该网站在批准列表内,从网络浏览器扩展401向javascript101x发送指示(例如,“ACC”),即,消息257,并且可以在步骤259开始交互。
如果网站不在批准列表上,网络浏览器扩展401在步骤261确定它是否在未批准列表内。如果该网站在未批准列表上,从网络浏览器扩展401向javascript 101x发送指出这种情况的消息(例如,“NACC”),即,消息263。
如果该网站不在任意一个列表内,在步骤265为用户显示对话窗口241(图11),以便决定是否允许继续。
在步骤267获得关于是否允许网站访问的用户决定。在步骤269,如果用户批准该网站与智能卡104交互,指示批准交互的消息(例如,“ACC”),即,消息271,被发送到javascript 101x,并且在步骤259,可以开始交互。可选择地,例如,如果用户已经勾选了对话窗口241中的指示应当记住该决定的选择框,在步骤273,该网站被添加到批准列表。
在步骤269,如果用户拒绝该网站与智能卡104交互的权利,指示未批准交互的消息(例如,“NACC”),即,消息275,被发送到javascript 101x。可选择地,例如,如果用户已经勾选了对话窗口241中的指示应当记住该决定的选择框,在步骤277,该网站被添加到未批准列表。
从前面可以明了,此处描述的技术提供了用于在网络应用背景中流畅地采用智能卡的有效机制。通过将网络浏览器扩展装入网络浏览器,并且以按需的方式将卡特定驱动程序网络浏览器扩展装入网络浏览器,避免了主机应用和智能卡之间的通信传统上所需的烦琐的中间件层。这些动态装载的扩展允许结合网络应用将智能卡用于以智能卡提供的许多强大应用,例如,密码,而不需要网络应用了解关于与智能卡交互的特定于网络浏览器的或特定于平台的要求。
虽然已经描述和说明了本发明的特定实施例,本发明不限于描述和所示的部件的特定形式或布置。仅以权利要求书限定本发明。

Claims (59)

1.一种能够在主计算机上从浏览器内部执行的客户侧应用扩展,所述主计算机具有中央处理单元和随机访问存储器,所述浏览器具有执行至少一个浏览器插件,以便通过所述浏览器为用户提供访问智能卡的能力,所述智能卡被连接到具有智能卡资源管理器的所述主计算机,所述浏览器扩展包括:
指示中央处理单元访问智能卡上的数据的指令,所述指令包括:
与浏览器和平台无关的接口模块,提供了允许所述主计算机执行所述至少一个浏览器插件,以便调用所述浏览器扩展的函数的与浏览器和平台无关的应用程序接口,所述应用程序接口提供了用于访问智能卡上的数据的至少一个函数;和
与浏览器和平台相关的包装器模块,其连接到所述与浏览器和平台无关的接口模块,并且连接到具有函数处理模块的所述智能卡资源管理器,所述函数处理模块能够操作以便接收对用于访问智能卡上的数据的所述至少一个函数的调用,并且用于将所述函数调用变换为对所述智能卡资源管理器的相应调用。
2.如权利要求1所述的客户侧应用扩展,其中所述与浏览器和平台无关的接口模块和所述与浏览器和平台相关的包装器模块包括由所述主计算机装入所述浏览器的指令。
3.如权利要求1所述的客户侧应用扩展,其中所述与浏览器和平台相关的包装器模块包括可由所述主计算机执行,以便调用用于访问智能卡的特定于平台的智能卡资源管理器函数的与浏览器和平台相关的指令。
4.如权利要求1所述的客户侧应用扩展,其中所述与浏览器和平台相关的包装器模块检测由所述智能卡资源管理器发送的智能卡事件。
5.如权利要求4所述的客户侧应用扩展,其中所述与浏览器和平台无关的包装器模块经由所述与浏览器和平台相关的包装器模块接收由智能卡资源管理器发送的智能卡事件。
6.如权利要求5所述的客户侧应用扩展,其中所述智能卡事件包括卡插入、卡取出、开始事务、结束事务。
7.如权利要求1所述的客户侧应用扩展,其中所述函数调用包括向智能卡的消息发送和对来自智能卡的相应响应的接收。
8.如权利要求1所述的客户侧应用扩展,还包括:
按需驱动程序模块,用于获得对应于连接到主计算机的智能卡的适当的智能卡驱动程序浏览器扩展,所述按需驱动程序模块包括这样的指令,所述指令使得主计算机:
从智能卡获得标识串,并且将所述标识串发送到智能卡驱动程序服务器;
从所述智能卡驱动程序服务器获得指示是否能够获得用于所述智能卡的驱动程序的第一响应。
9.如权利要求8所述的客户侧应用扩展,其中第一响应包括对应于所述智能卡的驱动程序浏览器插件。
10.如权利要求8所述的客户侧应用扩展,其中第一响应包括表明所述智能卡不能被决定性地识别的指示,以及用于由所述智能卡执行的命令,其中来自所述智能卡的预期响应决定性地确定该卡的身份。
11.如权利要求8所述的客户侧应用扩展,所述按需驱动程序模块还包括:
其中指示是否能够获得用于所述智能卡的驱动程序的响应包括来自所述智能卡驱动程序服务器的进一步识别命令;
指示所述智能卡执行所述进一步识别命令的指令;
接收来自所述智能卡的对所述进一步识别命令的响应的指令;
将来自所述智能卡的响应发送到所述智能卡驱动程序服务器的指令;和
接收来自所述智能卡驱动程序服务器的第二响应的指令,第二响应包括用于所述智能卡的驱动程序,或者具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
12.如权利要求11所述的客户侧应用扩展,还包括使得所述主计算机重复发送智能卡响应、接收来自智能卡驱动程序服务器的响应的步骤的指令,直到接收到智能卡驱动程序浏览器扩展,或直到来自所述智能卡驱动程序服务器的响应消息以所述智能卡不被支持的消息做出响应为止,所述来自智能卡驱动程序服务器的响应或者是用于所述智能卡的驱动程序,或者是具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
13.如权利要求1所述的客户侧应用扩展,其中指示中央处理单元访问智能卡上的数据的指令进一步在主计算机上在第一线程内执行,并且包括:
回调函数,所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应;
其中对所述智能卡资源管理器的函数调用生成用于所述函数调用的执行的新线程,并且在被发送到所述智能卡资源管理器的命令的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程。
14.如权利要求1所述的客户侧应用扩展,其中指示中央处理单元访问智能卡上的数据的指令进一步在主计算机上在第一线程内执行,并且包括:
连接模块,所述连接模块能够操作,以便使得主计算机执行所述智能卡资源管理器的用于建立到所述智能卡的通信连接的指令;
回调函数,所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应;
其中所述连接模块的执行生成用于执行所述智能卡资源管理器的用于建立到所述智能卡的连接的指令的新线程,并且在所述智能卡资源管理器的用于建立到所述智能卡的连接的指令的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程。
15.如权利要求1所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
检测从网站下载的javascript正在尝试与所述智能卡交互;
响应检测到从网站下载的javascript正在尝试与所述智能卡交互,获取用户对在javascript和所述智能卡之间的所述交互的批准或不批准;
响应所述用户的批准,允许所述交互进行;
响应所述用户的不批准,禁止所述交互进行。
16.如权利要求15所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
响应用户的批准,将所述网站添加到被允许与所述智能卡交互的网站的列表。
17.如权利要求15所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
管理被允许与所述智能卡交互的网站的列表包括从被允许与所述智能卡交互的网站的列表中删除网站的代码。
18.如权利要求15所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
响应用户的不批准,将所述网站添加到不被允许与所述智能卡交互的网站的列表。
19.如权利要求18所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
管理不被允许与所述智能卡交互的网站的列表包括从不被允许与所述智能卡交互的网站的列表中删除网站的代码。
20.如权利要求15所述的客户侧应用扩展,其中所述浏览器扩展还包括这样的指令,所述指令用于:
显示用户交互窗口,以便允许用户表明对所述javascript和所述智能卡之间的交互的批准或不批准。
21.一种操作计算机系统以便使用浏览器访问存储在连接到主计算机的智能卡内的数据的方法,所述主计算机具有中央处理单元和随机访问存储器以及智能卡资源管理器,并且所述浏览器具有执行至少一个浏览器插件的能力,该方法包括:
执行经由所述智能卡资源管理器请求访问所述智能卡上的数据的浏览器应用;
响应所述浏览器应用的访问所述智能卡上的数据的请求:
实例化来自脚本模块的接口对象,所述接口对象提供了用于进行访问调用智能卡资源管理器接口浏览器扩展的至少一个方法;
对所述接口对象的方法进行调用;
响应接收到对所述接口对象的方法的调用,对所述智能卡资源管理器接口浏览器扩展进行调用;
响应接收到对所述智能卡资源管理器接口浏览器扩展的调用,从所述智能卡资源管理器浏览器扩展对所述智能卡资源管理器进行调用;
接收来自所述智能卡资源管理器的响应;和
在浏览器窗口中显示指示来自所述智能卡资源管理器的响应的结果,从而经由所述浏览器给用户提供对智能卡数据的访问。
22.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在连接到主计算机的智能卡内的数据的方法,其中所述智能卡资源管理器接口浏览器扩展包括可由主计算机执行以便调用用于访问所述智能卡的特定于平台的智能卡资源管理器函数的与浏览器和平台相关的指令。
23.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在连接到主计算机的智能卡内的数据的方法,还包括:
由所述智能卡资源管理器接口浏览器扩展检测由所述智能卡资源管理器发送的智能卡事件。
24.如权利要求23所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,其中所述接口对象通过所述智能卡资源管理器接口浏览器扩展接收由所述智能卡资源管理器发送的智能卡事件。
25.如权利要求24所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,其中所述智能卡事件包括卡插入、卡取出、开始事务、结束事务。
26.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,其中所述方法调用包括向智能卡的消息发送和对来自智能卡的相应响应的接收。
27.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
从智能卡获得标识串,并且将所述标识串发送到智能卡驱动程序服务器;
从所述智能卡驱动程序服务器获得表明是否能够获得用于所述智能卡的驱动程序的第一响应。
28.如权利要求27所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,其中第一响应包括对应于所述智能卡的驱动程序浏览器插件。
29.如权利要求27所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,其中第一响应包括表明所述智能卡不能被决定性地识别的指示,以及用于由所述智能卡执行的命令,其中来自所述智能卡的预期响应决定性地确定该卡的身份。
30.如权利要求27所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
响应表明是否能够获得用于所述智能卡的驱动程序的响应包括来自所述智能卡驱动程序服务器的进一步识别命令,执行指示所述智能卡执行所述进一步识别命令的指令;
接收来自所述智能卡的对所述进一步识别命令的响应;
将来自所述智能卡的响应发送到所述智能卡驱动程序服务器;和
接收来自所述智能卡驱动程序服务器的第二响应,第二响应包括用于所述智能卡的驱动程序,或者具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
31.如权利要求30所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括重复发送智能卡响应、接收来自智能卡驱动程序服务器的响应的步骤,直到接收到智能卡驱动程序浏览器扩展,或直到来自所述智能卡驱动程序服务器的响应消息以所述智能卡不被支持的消息做出响应为止,所述来自智能卡驱动程序服务器的响应或者是用于所述智能卡的驱动程序,或者是具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
32.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,包括:
在第一线程内执行对用于访问所述智能卡上的数据的方法的调用;
对所述智能卡资源管理器的函数调用的执行生成用于所述函数调用的执行的新线程,并且在被发送到所述智能卡资源管理器的命令的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程,其中所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应。
33.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,包括:
在第一线程内执行对用于访问所述智能卡上的数据的方法的调用;
执行对所述智能卡资源管理器的用于建立到所述智能卡的连接的函数调用;
响应对用于建立到智能卡的连接的函数调用,生成用于所述函数调用的执行的新线程,并且在所述用于建立到所述智能卡的连接的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程,其中所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应。
34.如权利要求21所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
检测从网站下载的javascript正在尝试与所述智能卡交互;
响应检测到从网站下载的javascript正在尝试与所述智能卡交互,获取用户对在javascript和所述智能卡之间的所述交互的批准或不批准;
响应所述用户的批准,允许所述交互进行;
响应所述用户的不批准,禁止所述交互进行。
35.如权利要求34所述的操作计算机系统的方法,还包括:
响应用户的批准,将所述网站添加到被允许与所述智能卡交互的网站的列表。
36.如权利要求35所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
管理被允许与所述智能卡交互的网站的列表包括有选择地从被允许与所述智能卡交互的网站的列表中删除网站。
37.如权利要求34所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
响应用户的不批准,将所述网站添加到不被允许与所述智能卡交互的网站的列表。
38.如权利要求37所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
管理不被允许与所述智能卡交互的网站的列表包括从不被允许与所述智能卡交互的网站的列表中删除网站。
39.如权利要求34所述的操作计算机系统以便使用浏览器访问存储在智能卡内的数据的方法,还包括:
显示用户交互窗口,以便允许用户表明对所述javascript和所述智能卡之间的交互的批准或不批准。
40.一种可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其上存储了可由连接到智能卡的主计算机执行的指令,并且其上加载了具有允许所述主计算机访问所述智能卡的指令的智能卡资源管理器,其中当加载到所述主计算机上时,所述指令包括这样的指令,所述指令提供:
至少一个与浏览器和平台相关的包装器模块,每个与浏览器和平台相关的包装器模块具有与所述智能卡资源管理器和与浏览器和平台无关的接口模块的接口,所述智能卡资源管理器具有函数处理模块,所述函数处理模块能够操作以便接收对用于访问智能卡上的数据的所述至少一个函数的调用,并且用于将所述函数调用变换为对所述智能卡资源管理器的相应调用;
与浏览器和平台无关的接口模块,提供了允许所述主计算机执行所述至少一个浏览器插件,以便调用所述浏览器扩展的函数的与浏览器和平台无关的应用程序接口,所述应用程序接口提供了用于访问智能卡上的数据的至少一个函数。
41.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述与浏览器和平台无关的接口模块和所述与浏览器和平台相关的包装器模块包括由所述主计算机装入所述浏览器的指令。
42.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述与浏览器和平台相关的包装器模块包括可由所述主计算机执行,以便调用用于访问智能卡的特定于平台的智能卡资源管理器函数的与浏览器和平台相关的指令。
43.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述与浏览器和平台相关的包装器模块检测由所述智能卡资源管理器发送的智能卡事件。
44.如权利要求43的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述与浏览器和平台无关的包装器模块经由所述与浏览器和平台相关的包装器模块接收由智能卡资源管理器发送的智能卡事件。
45.如权利要求44的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述智能卡事件包括卡插入、卡取出、开始事务、结束事务。
46.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述函数调用包括向智能卡的消息发送和对来自智能卡的相应响应的接收。
47.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,还包括:
按需驱动程序模块,用于获得对应于连接到主计算机的智能卡的适当的智能卡驱动程序浏览器扩展,所述按需驱动程序模块包括这样的指令,所述指令使得主计算机:
从智能卡获得标识串,并且将所述标识串发送到智能卡驱动程序服务器;
从所述智能卡驱动程序服务器获得表明是否能够获得用于所述智能卡的驱动程序的第一响应。
48.如权利要求47的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中第一响应包括对应于所述智能卡的驱动程序浏览器插件。
49.如权利要求47的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中第一响应包括表明所述智能卡不能被决定性地识别的指示,以及用于由所述智能卡执行的命令,其中来自所述智能卡的预期响应决定性地确定该卡的身份。
50.如权利要求47的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,所述按需驱动程序模块还包括:
其中表明是否能够获得用于所述智能卡的驱动程序的响应包括来自所述智能卡驱动程序服务器的进一步识别命令;
指示所述智能卡执行所述进一步识别命令的指令;
接收来自所述智能卡的对所述进一步识别命令的响应的指令;
将来自所述智能卡的响应发送到所述智能卡驱动程序服务器的指令;和
接收来自所述智能卡驱动程序服务器的第二响应的指令,第二响应包括用于所述智能卡的驱动程序,或者具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
51.如权利要求50的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,还包括使得所述主计算机重复发送智能卡响应、接收来自智能卡驱动程序服务器的响应的步骤的指令,直到接收到智能卡驱动程序浏览器扩展,或直到来自所述智能卡驱动程序服务器的响应消息以所述智能卡不被支持的消息做出响应为止,所述来自智能卡驱动程序服务器的响应或者是用于所述智能卡的驱动程序,或者是具有将由所述智能卡执行以识别所述智能卡的进一步命令的响应消息。
52.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中指示中央处理单元访问智能卡上的数据的指令进一步在主计算机上在第一线程内执行,并且包括:
回调函数,所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应;
其中对所述智能卡资源管理器的函数调用生成用于所述函数调用的执行的新线程,并且在被发送到所述智能卡资源管理器的命令的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程。
53.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中指示中央处理单元访问智能卡上的数据的指令进一步在主计算机上在第一线程内执行,并且包括:
连接模块,所述连接模块能够操作,以便使得主计算机执行所述智能卡资源管理器的用于建立到所述智能卡的通信连接的指令;
回调函数,所述回调函数能够操作地响应从所述智能卡响应被发送到所述智能卡资源管理器的命令接收的响应;
其中所述连接模块的执行生成用于执行所述智能卡资源管理器的用于建立到所述智能卡的连接的指令的新线程,并且在所述智能卡资源管理器的用于建立到所述智能卡的连接的指令的执行完成时,在所述回调函数指示主计算机将控制返回到第一线程。
54.如权利要求40的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
检测从网站下载的javascript正在尝试与所述智能卡交互;
响应检测到从网站下载的javascript正在尝试与所述智能卡交互,获取用户对在javascript和所述智能卡之间的所述交互的批准或不批准;
响应所述用户的批准,允许所述交互进行;
响应所述用户的不批准,禁止所述交互进行。
55.如权利要求54的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
响应用户的批准,将所述网站添加到被允许与所述智能卡交互的网站的列表。
56.如权利要求55的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
管理被允许与所述智能卡交互的网站的列表包括从被允许与所述智能卡交互的网站的列表中删除网站的代码。
57.如权利要求54的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
响应用户的不批准,将所述网站添加到不被允许与所述智能卡交互的网站的列表。
58.如权利要求57的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
管理不被允许与所述智能卡交互的网站的列表包括从不被允许与所述智能卡交互的网站的列表中删除网站的代码。
59.如权利要求54的可被作为客户端-服务器关系中的服务器的访问的计算机存储器介质,其中所述浏览器扩展还包括这样的指令,所述指令用于:
显示用户交互窗口,以便允许用户表明对所述javascript和所述智能卡之间的交互的批准或不批准。
CN200880111518.5A 2007-08-31 2008-08-26 用于基于浏览器对智能卡进行访问的系统和方法 Active CN101821715B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/849,117 2007-08-31
US11/849,117 US7748609B2 (en) 2007-08-31 2007-08-31 System and method for browser based access to smart cards
PCT/EP2008/061163 WO2009027409A1 (en) 2007-08-31 2008-08-26 A system and method for browser-based access to smart cards

Publications (2)

Publication Number Publication Date
CN101821715A true CN101821715A (zh) 2010-09-01
CN101821715B CN101821715B (zh) 2014-07-23

Family

ID=40251650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880111518.5A Active CN101821715B (zh) 2007-08-31 2008-08-26 用于基于浏览器对智能卡进行访问的系统和方法

Country Status (5)

Country Link
US (1) US7748609B2 (zh)
EP (1) EP2183667A1 (zh)
JP (1) JP5534520B2 (zh)
CN (1) CN101821715B (zh)
WO (1) WO2009027409A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662806A (zh) * 2012-02-29 2012-09-12 浙江大学 一种针对Java卡不同性能指标的自适应测试方法
CN104123353A (zh) * 2014-07-14 2014-10-29 可牛网络技术(北京)有限公司 一种提高浏览器安全性的方法及系统
CN105592115A (zh) * 2014-10-23 2016-05-18 广东华大互联网股份有限公司 一种分布式智能卡行业应用系统和方法
CN107748681A (zh) * 2017-10-27 2018-03-02 努比亚技术有限公司 一种接口合并控制方法、设备及计算机可读存储介质
CN108647757A (zh) * 2018-05-14 2018-10-12 四川爱创科技有限公司 应用于rfid自动售货柜的标签录入方法
CN113168350A (zh) * 2018-09-24 2021-07-23 思杰系统有限公司 用于各种应用之间的桥接协议的系统和方法
CN113515342A (zh) * 2021-04-09 2021-10-19 武汉天喻信息产业股份有限公司 一种web应用程序访问nfc智能卡的方法及中间件

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162915A1 (en) * 2006-12-29 2008-07-03 Price Mark H Self-healing computing system
US20090069049A1 (en) 2007-09-12 2009-03-12 Devicefidelity, Inc. Interfacing transaction cards with host devices
US10002384B1 (en) * 2007-12-20 2018-06-19 Jpmorgan Chase Bank, N.A. Automated card notification system and method
JP4546551B2 (ja) 2008-03-18 2010-09-15 フェリカネットワークス株式会社 情報処理装置、情報処理方法、プログラムおよび情報処理システム
US20100031028A1 (en) * 2008-07-31 2010-02-04 Research In Motion Limited Systems and methods for selecting a certificate for use with secure messages
JP5676477B2 (ja) * 2009-01-19 2015-02-25 コーニンクレッカ フィリップス エヌ ヴェ プライバシー保護のためのデュアルスクリプトエンジンをもつブラウザ
JP2010211268A (ja) * 2009-03-06 2010-09-24 Ricoh Co Ltd 通信機器、該通信機器の制御方法およびそのプログラムならびにシステム
KR101648521B1 (ko) * 2009-03-06 2016-08-16 제말토 에스에이 스마트 카드들로의 브라우저-기반의 액세스에 보안을 제공하는 시스템 및 방법
EP2273748A1 (en) * 2009-07-09 2011-01-12 Gemalto SA Method of managing an application embedded in a secured electronic token
JP5449905B2 (ja) * 2009-07-29 2014-03-19 フェリカネットワークス株式会社 情報処理装置、プログラム、および情報処理システム
US20110055573A1 (en) * 2009-09-03 2011-03-03 International Business Machines Corporation Supporting flexible use of smart cards with web applications
JP2011118837A (ja) * 2009-12-07 2011-06-16 Sony Corp 情報処理装置、情報処理方法およびプログラム
EP2333685A1 (en) * 2009-12-14 2011-06-15 Gemalto SA Method to restrict smart card usage, recording medium, program, certificate and computer for this method
EP2545676B1 (en) 2010-03-08 2018-12-05 Gemalto SA System and method for using a portable security device to cryptographically sign a document in response to signature requests from a relying party to a digital signature service
CN102209098B (zh) * 2010-03-30 2015-06-03 北京华虹集成电路设计有限责任公司 智能卡远程检测方法及系统
WO2011141579A2 (en) 2010-05-14 2011-11-17 Gemalto Sa System and method for providing security for cloud computing resources using portable security devices
EP2395427A1 (en) * 2010-06-08 2011-12-14 Gemalto SA Method for connecting to a remote server from a browser enabled with a browser's extension on a host device
WO2012044248A1 (en) * 2010-09-28 2012-04-05 Empire Technology Development Llc Data filtering for communication devices
EP2475144A1 (en) 2011-01-05 2012-07-11 Gemalto SA Method for communicating between a server and a client and corresponding client, server and system
US20120208454A1 (en) * 2011-02-10 2012-08-16 Cassis International Pte Ltd. System and method for detecting and communicating with diverse near field communications adaptors
US8181254B1 (en) * 2011-10-28 2012-05-15 Google Inc. Setting default security features for use with web applications and extensions
US9092540B2 (en) * 2012-02-14 2015-07-28 International Business Machines Corporation Increased interoperability between web-based applications and hardware functions
US8813029B2 (en) * 2012-05-24 2014-08-19 International Business Machines Corporation Remote card content management using synchronous server-side scripting
JP2014010510A (ja) * 2012-06-28 2014-01-20 Contec Co Ltd ソフトウェアの開発方法
CN103095810B (zh) * 2012-12-28 2015-08-12 三维通信股份有限公司 一种基于Web技术的多功能识读中间件系统
EP2773082A1 (en) 2013-02-28 2014-09-03 Gemalto SA Method for allowing a web server to detect the logout of a distant token
US10356461B2 (en) 2013-03-15 2019-07-16 adRise, Inc. Adaptive multi-device content generation based on associated internet protocol addressing
US10594763B2 (en) 2013-03-15 2020-03-17 adRise, Inc. Platform-independent content generation for thin client applications
US10887421B2 (en) 2013-03-15 2021-01-05 Tubi, Inc. Relevant secondary-device content generation based on associated internet protocol addressing
US9575873B2 (en) 2013-09-13 2017-02-21 Sap Se Software testing system and method
CN103544037B (zh) * 2013-10-29 2016-08-17 飞天诚信科技股份有限公司 一种支持OpenSC的软硬件驱动的实现方法
US20150339111A1 (en) * 2014-05-21 2015-11-26 Google Inc. Automatic discovery and installation of applications via the internet in response to coupling of hardware device to computing device
CN104093165B (zh) * 2014-06-25 2018-10-23 北京奇虎科技有限公司 一种在浏览器中进行无线网络连接的方法、装置和浏览器
US10841316B2 (en) 2014-09-30 2020-11-17 Citrix Systems, Inc. Dynamic access control to network resources using federated full domain logon
EP3770781B1 (en) * 2014-09-30 2022-06-08 Citrix Systems, Inc. Fast smart card logon and federated full domain logon
JP6358063B2 (ja) * 2014-12-02 2018-07-18 富士通株式会社 要求送信方法、情報処理装置、及びプログラム
CN104866875B (zh) * 2015-04-13 2019-02-12 东信和平科技股份有限公司 一种智能卡远程检测方法及系统
CN104881318B (zh) * 2015-05-07 2019-06-25 珠海豹趣科技有限公司 一种接口调用方法、装置及终端
CN105243407B (zh) * 2015-10-09 2018-12-07 腾讯科技(深圳)有限公司 读写智能卡的方法及装置
US11868989B1 (en) 2015-12-30 2024-01-09 Wells Fargo Bank, N.A. Mobile wallets and companion smart cards
US10546289B1 (en) 2015-12-30 2020-01-28 Wells Fargo Bank, N.A. Mobile wallets with automatic element selection
US10165132B2 (en) 2016-01-15 2018-12-25 Ricoh Company, Ltd. Server apparatus, information processing system, and information processing method for user authentication
US10902405B1 (en) * 2016-05-11 2021-01-26 Wells Fargo Bank, N.A. Transient mobile wallets
US10235189B2 (en) * 2016-11-02 2019-03-19 Wyse Technology L.L.C. Isolating a redirected smart card reader to a remote session
US10231116B2 (en) 2017-06-21 2019-03-12 International Business Machines Corporation Communication access services for mobile phones
US10476870B2 (en) 2017-08-25 2019-11-12 Microsoft Technology Licensing, Llc Local claim-based security service with cross-browser compatibility
US11164188B2 (en) * 2017-11-14 2021-11-02 Intel Corporation Methods and apparatus to securely handle chip cards
US10958640B2 (en) * 2018-02-08 2021-03-23 Citrix Systems, Inc. Fast smart card login
US10546444B2 (en) 2018-06-21 2020-01-28 Capital One Services, Llc Systems and methods for secure read-only authentication
US10630653B1 (en) 2018-10-02 2020-04-21 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3115064A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10607214B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10511443B1 (en) 2018-10-02 2019-12-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10783519B2 (en) 2018-10-02 2020-09-22 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10949520B2 (en) 2018-10-02 2021-03-16 Capital One Services, Llc Systems and methods for cross coupling risk analytics and one-time-passcodes
WO2020072583A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for establishing identity for order pick up
US10505738B1 (en) 2018-10-02 2019-12-10 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
KR20210069033A (ko) 2018-10-02 2021-06-10 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
US10565587B1 (en) 2018-10-02 2020-02-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11210664B2 (en) 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
US10579998B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10542036B1 (en) 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
US10489781B1 (en) 2018-10-02 2019-11-26 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771254B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for email-based card activation
SG11202102543WA (en) 2018-10-02 2021-04-29 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
CA3115142A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
JP2022501861A (ja) 2018-10-02 2022-01-06 キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニーCapital One Services, LLC 非接触カードの暗号化認証のためのシステムおよび方法
US10582386B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3113101A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10554411B1 (en) 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
JP2022511281A (ja) 2018-10-02 2022-01-31 キャピタル・ワン・サービシーズ・リミテッド・ライアビリティ・カンパニー 非接触カードの暗号化認証のためのシステムおよび方法
WO2020072474A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
AU2019355436A1 (en) 2018-10-02 2021-04-15 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
KR20210065961A (ko) 2018-10-02 2021-06-04 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
WO2020072440A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10909527B2 (en) 2018-10-02 2021-02-02 Capital One Services, Llc Systems and methods for performing a reissue of a contactless card
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771253B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11361302B2 (en) 2019-01-11 2022-06-14 Capital One Services, Llc Systems and methods for touch screen interface interaction using a card overlay
US11037136B2 (en) 2019-01-24 2021-06-15 Capital One Services, Llc Tap to autofill card data
US11120453B2 (en) 2019-02-01 2021-09-14 Capital One Services, Llc Tap card to securely generate card data to copy to clipboard
US10510074B1 (en) 2019-02-01 2019-12-17 Capital One Services, Llc One-tap payment using a contactless card
US10523708B1 (en) 2019-03-18 2019-12-31 Capital One Services, Llc System and method for second factor authentication of customer support calls
US11082229B2 (en) 2019-03-18 2021-08-03 Capital One Services, Llc System and method for pre-authentication of customer support calls
US10643420B1 (en) 2019-03-20 2020-05-05 Capital One Services, Llc Contextual tapping engine
US10535062B1 (en) 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US10984416B2 (en) 2019-03-20 2021-04-20 Capital One Services, Llc NFC mobile currency transfer
US10970712B2 (en) 2019-03-21 2021-04-06 Capital One Services, Llc Delegated administration of permissions using a contactless card
US11521262B2 (en) 2019-05-28 2022-12-06 Capital One Services, Llc NFC enhanced augmented reality information overlays
US10516447B1 (en) 2019-06-17 2019-12-24 Capital One Services, Llc Dynamic power levels in NFC card communications
US11392933B2 (en) 2019-07-03 2022-07-19 Capital One Services, Llc Systems and methods for providing online and hybridcard interactions
US11694187B2 (en) 2019-07-03 2023-07-04 Capital One Services, Llc Constraining transactional capabilities for contactless cards
US10871958B1 (en) 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
US10713649B1 (en) 2019-07-09 2020-07-14 Capital One Services, Llc System and method enabling mobile near-field communication to update display on a payment card
US10885514B1 (en) 2019-07-15 2021-01-05 Capital One Services, Llc System and method for using image data to trigger contactless card transactions
US10832271B1 (en) 2019-07-17 2020-11-10 Capital One Services, Llc Verified reviews using a contactless card
US11182771B2 (en) 2019-07-17 2021-11-23 Capital One Services, Llc System for value loading onto in-vehicle device
US10733601B1 (en) 2019-07-17 2020-08-04 Capital One Services, Llc Body area network facilitated authentication or payment authorization
US11521213B2 (en) 2019-07-18 2022-12-06 Capital One Services, Llc Continuous authentication for digital services based on contactless card positioning
US10506426B1 (en) 2019-07-19 2019-12-10 Capital One Services, Llc Techniques for call authentication
US10541995B1 (en) 2019-07-23 2020-01-21 Capital One Services, Llc First factor contactless card authentication system and method
US10701560B1 (en) 2019-10-02 2020-06-30 Capital One Services, Llc Client device authentication using contactless legacy magnetic stripe data
US11657144B2 (en) * 2019-11-08 2023-05-23 Vmware, Inc. Security-enhanced file open and download
US11113685B2 (en) 2019-12-23 2021-09-07 Capital One Services, Llc Card issuing with restricted virtual numbers
US10657754B1 (en) 2019-12-23 2020-05-19 Capital One Services, Llc Contactless card and personal identification system
US10733283B1 (en) 2019-12-23 2020-08-04 Capital One Services, Llc Secure password generation and management using NFC and contactless smart cards
US10885410B1 (en) 2019-12-23 2021-01-05 Capital One Services, Llc Generating barcodes utilizing cryptographic techniques
US11651361B2 (en) 2019-12-23 2023-05-16 Capital One Services, Llc Secure authentication based on passport data stored in a contactless card
US11615395B2 (en) 2019-12-23 2023-03-28 Capital One Services, Llc Authentication for third party digital wallet provisioning
US10862540B1 (en) 2019-12-23 2020-12-08 Capital One Services, Llc Method for mapping NFC field strength and location on mobile devices
US10853795B1 (en) 2019-12-24 2020-12-01 Capital One Services, Llc Secure authentication based on identity data stored in a contactless card
US11200563B2 (en) 2019-12-24 2021-12-14 Capital One Services, Llc Account registration using a contactless card
US10664941B1 (en) 2019-12-24 2020-05-26 Capital One Services, Llc Steganographic image encoding of biometric template information on a card
US10757574B1 (en) 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US10909544B1 (en) 2019-12-26 2021-02-02 Capital One Services, Llc Accessing and utilizing multiple loyalty point accounts
US11038688B1 (en) 2019-12-30 2021-06-15 Capital One Services, Llc Techniques to control applets for contactless cards
US10860914B1 (en) 2019-12-31 2020-12-08 Capital One Services, Llc Contactless card and method of assembly
US11455620B2 (en) 2019-12-31 2022-09-27 Capital One Services, Llc Tapping a contactless card to a computing device to provision a virtual number
DE102020104646A1 (de) 2020-02-21 2021-08-26 Deutsche Telekom Ag Browserbasierter Fernzugriff auf Hardware-Sicherheitsmodul
US11210656B2 (en) 2020-04-13 2021-12-28 Capital One Services, Llc Determining specific terms for contactless card activation
US10915888B1 (en) 2020-04-30 2021-02-09 Capital One Services, Llc Contactless card with multiple rotating security keys
US11030339B1 (en) 2020-04-30 2021-06-08 Capital One Services, Llc Systems and methods for data access control of personal user data using a short-range transceiver
US11823175B2 (en) 2020-04-30 2023-11-21 Capital One Services, Llc Intelligent card unlock
US10861006B1 (en) 2020-04-30 2020-12-08 Capital One Services, Llc Systems and methods for data access control using a short-range transceiver
US11222342B2 (en) 2020-04-30 2022-01-11 Capital One Services, Llc Accurate images in graphical user interfaces to enable data transfer
US10963865B1 (en) 2020-05-12 2021-03-30 Capital One Services, Llc Augmented reality card activation experience
US11100511B1 (en) 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
US11063979B1 (en) 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
US11062098B1 (en) 2020-08-11 2021-07-13 Capital One Services, Llc Augmented reality information display and interaction via NFC based authentication
US11482312B2 (en) 2020-10-30 2022-10-25 Capital One Services, Llc Secure verification of medical status using a contactless card
US11165586B1 (en) 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
US11373169B2 (en) 2020-11-03 2022-06-28 Capital One Services, Llc Web-based activation of contactless cards
US11216799B1 (en) 2021-01-04 2022-01-04 Capital One Services, Llc Secure generation of one-time passcodes using a contactless card
US11682012B2 (en) 2021-01-27 2023-06-20 Capital One Services, Llc Contactless delivery systems and methods
US11792001B2 (en) 2021-01-28 2023-10-17 Capital One Services, Llc Systems and methods for secure reprovisioning
US11687930B2 (en) 2021-01-28 2023-06-27 Capital One Services, Llc Systems and methods for authentication of access tokens
US11562358B2 (en) 2021-01-28 2023-01-24 Capital One Services, Llc Systems and methods for near field contactless card communication and cryptographic authentication
US11438329B2 (en) 2021-01-29 2022-09-06 Capital One Services, Llc Systems and methods for authenticated peer-to-peer data transfer using resource locators
US11777933B2 (en) 2021-02-03 2023-10-03 Capital One Services, Llc URL-based authentication for payment cards
WO2022177613A1 (en) * 2021-02-16 2022-08-25 Citrix Systems, Inc. Computing device and associated methods providing browser launching of virtual sessions in an application
US11803398B2 (en) 2021-02-16 2023-10-31 Citrix Systems, Inc. Computing device and associated methods providing browser launching of virtual sessions in an application
US11637826B2 (en) 2021-02-24 2023-04-25 Capital One Services, Llc Establishing authentication persistence
US11245438B1 (en) 2021-03-26 2022-02-08 Capital One Services, Llc Network-enabled smart apparatus and systems and methods for activating and provisioning same
US11961089B2 (en) 2021-04-20 2024-04-16 Capital One Services, Llc On-demand applications to extend web services
US11935035B2 (en) 2021-04-20 2024-03-19 Capital One Services, Llc Techniques to utilize resource locators by a contactless card to perform a sequence of operations
US11902442B2 (en) 2021-04-22 2024-02-13 Capital One Services, Llc Secure management of accounts on display devices using a contactless card
US11354555B1 (en) 2021-05-04 2022-06-07 Capital One Services, Llc Methods, mediums, and systems for applying a display to a transaction card
US11962817B2 (en) 2021-06-21 2024-04-16 Tubi, Inc. Machine learning techniques for advanced frequency management

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2793576B1 (fr) * 1999-05-11 2001-11-16 Gemplus Card Int Terminal radiotelephonique avec une carte a puce dotee d'un navigateur
JP2000347869A (ja) * 1999-06-07 2000-12-15 Toshiba Corp Icカード利用装置、icカード及び記憶媒体
JP2000353216A (ja) * 1999-06-11 2000-12-19 Ntt Data Corp Icカードシステム、icカード端末、icカード処理方法及び記録媒体
FR2803706B1 (fr) * 1999-09-27 2002-03-08 Bull Cp8 Procede et architecture de pilotage a distance d'une station d'utilisateur via un reseau de type internet et leur application a un demonstrateur de carte a puce
FR2800540B1 (fr) * 1999-10-28 2001-11-30 Bull Cp8 Terminal securise muni d'un lecteur de carte a puce destine a communiquer avec un serveur via un reseau de type internet
US6691176B1 (en) * 1999-11-04 2004-02-10 Microsoft Corporation Method for managing client services across browser pages
US6738901B1 (en) * 1999-12-15 2004-05-18 3M Innovative Properties Company Smart card controlled internet access
AU2001241823A1 (en) * 2000-03-02 2001-09-12 Tivo, Inc. System and method for internet access to personal television service
JP2002312726A (ja) * 2001-04-13 2002-10-25 Nippon Telegr & Teleph Corp <Ntt> Icカード制御方法、端末装置、プログラム及び記録媒体
AUPR559101A0 (en) * 2001-06-08 2001-07-12 Canon Kabushiki Kaisha Card for service access
JP4160791B2 (ja) * 2001-07-03 2008-10-08 松下電器産業株式会社 情報利用料課金方法および情報利用料課金ユーザ端末
JP2003058375A (ja) * 2001-08-16 2003-02-28 Hitachi Ltd Icカード利用方法およびicカード利用端末
US7069562B2 (en) * 2001-12-12 2006-06-27 Sun Microsystems, Inc. Application programming interface for connecting a platform independent plug-in to a web browser
US20070005685A1 (en) * 2002-09-16 2007-01-04 Wunchun Chau Browser-based payment system
US8364968B2 (en) * 2006-05-19 2013-01-29 Symantec Corporation Dynamic web services systems and method for use of personal trusted devices and identity tokens

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662806A (zh) * 2012-02-29 2012-09-12 浙江大学 一种针对Java卡不同性能指标的自适应测试方法
CN102662806B (zh) * 2012-02-29 2015-06-24 浙江大学 一种针对Java卡不同性能指标的自适应测试方法
CN104123353A (zh) * 2014-07-14 2014-10-29 可牛网络技术(北京)有限公司 一种提高浏览器安全性的方法及系统
CN104123353B (zh) * 2014-07-14 2017-11-28 可牛网络技术(北京)有限公司 一种提高浏览器安全性的方法及系统
CN105592115A (zh) * 2014-10-23 2016-05-18 广东华大互联网股份有限公司 一种分布式智能卡行业应用系统和方法
CN107748681A (zh) * 2017-10-27 2018-03-02 努比亚技术有限公司 一种接口合并控制方法、设备及计算机可读存储介质
CN108647757A (zh) * 2018-05-14 2018-10-12 四川爱创科技有限公司 应用于rfid自动售货柜的标签录入方法
CN113168350A (zh) * 2018-09-24 2021-07-23 思杰系统有限公司 用于各种应用之间的桥接协议的系统和方法
CN113515342A (zh) * 2021-04-09 2021-10-19 武汉天喻信息产业股份有限公司 一种web应用程序访问nfc智能卡的方法及中间件

Also Published As

Publication number Publication date
JP5534520B2 (ja) 2014-07-02
CN101821715B (zh) 2014-07-23
EP2183667A1 (en) 2010-05-12
US20090064301A1 (en) 2009-03-05
JP2010537340A (ja) 2010-12-02
US7748609B2 (en) 2010-07-06
WO2009027409A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
CN101821715B (zh) 用于基于浏览器对智能卡进行访问的系统和方法
EP2936369B1 (en) Verification of password using a keyboard with a secure password entry mode
CN108804906B (zh) 一种用于应用登陆的系统和方法
JP5057475B2 (ja) サービスアクセス認証データ管理システム
US7366916B2 (en) Method and apparatus for an encrypting keyboard
CN102469080B (zh) 实现通行证用户安全登录应用客户端的方法和系统
US20070124536A1 (en) Token device providing a secure work environment and utilizing a virtual interface
US9069869B1 (en) Storing on a client device data provided by a user to an online application
WO2014186882A1 (en) Secure automatic authorized access to any application through a third party
KR20060102456A (ko) 고객 인증방법 및 시스템과 이를 위한 서버와 기록매체
US7841001B2 (en) Authentication information management method for device embedded with microprocessor unit
CN107066888B (zh) 可扩展的可信用户接口、方法和电子设备
EP3410332B1 (en) A system and method for transferring data to an authentication device
CN112836186A (zh) 一种页面控制方法及装置
KR101745919B1 (ko) 패스워드 노출 없는 소프트웨어 방식의 hsm을 이용한 사용자 인증 방법 및 시스템
CN106778193B (zh) 一种客户端和ui交互方法
Yue et al. SessionMagnifier: A simple approach to secure and convenient kiosk browsing
KR101171235B1 (ko) 인증서 운영 방법
CN103065085A (zh) 用于实现安全usb应用设备的系统和方法
Zhang Network Security Middleware Based on USB Key
US11316843B1 (en) Systems for authenticating users from a separate user interface
CN109076066A (zh) 使用加密和认证方法的方法以及实施该方法的系统
Erdem et al. A smart card based single sign-on and password management solution as a browser extension
KR101513162B1 (ko) 보안 어플리케이션 구동 시스템
Kim et al. ProxyAuth: Continuous Authentication using Bluetooth and Mobile Devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant