用于经由互联网类型的网络与一个服务器 通信的带有智能卡阅读器的安全终端 【技术领域】
发明涉及一种终端架构,更特别地,涉及到一种使用智能卡键盘和阅读器类型的终端,智能卡位于安全围栏内,并且它经由互联网类型的网络与一个服务器通信。
背景技术
一种该装置是公知的,例如,其商业名称为“安全垫(safepad)”。
在发明的范围内,术语“终端”必须以一般的意义来被理解。前述的终端可特别是由一个在不同的操作系统下,例如WINDOWS或UNIX(所有二者都是注册商标),工作的个人计算机。它也可以由一个工作站,一个便携计算机或一个被称为专用的终端。
同样,在发明范围内,术语“互联网网络”除了准确所称的因特网网络外,还包括了公司的私有网络或类似的,称为“intranet(内部网)”,以及向外部延伸地网络,称为“extranet(外部网)”。
智能卡被用于不同的领域:银行应用,健康,如称为电子的“钱包”,等等。在一个智能卡上可以同时存在多个应用(多应用智能卡)。
对于这些应用类型,智能卡可有不同功能。特别地,它可以被用于安全的目的。术语“安全”必须在一般的意义上被理解:特别是站的使用者和/或智能卡本身所有者的保密和/或认证。
在该多个特殊应用的范围内,终端可以带有一个安全围栏,它包括一个智能卡阅读器,一个键盘以及可能的一个或多个其它的信息资源。
图1以特别简要的形式示出了根据现有技术的前述类型的终端。
为巩固概念,我们将假设终端1基于一个微型计算机而构成。它带有所有该信息设备所构成的常规部件以及使其良好运行的必要部件(它本没被示出):中央单元,读写存储器,海量存储器(硬盘),信息支持读取器(软盘,等等),等等。在图1上所示的特殊情况中,终端1带有一个安全围栏(防火墙)3,它包括一个智能卡2读取器30和一个键盘31。键盘31特别是用于智能卡2所有者认证数据的输入:例如一个与智能卡2的标识相关的口令。不同的电路一方面允许在该围栏中所具有的安全部件之间通信,特别是键盘31和智能卡2(通过阅读器30),以及另一方面在这些安全部件和终端1中所具有的非安全部件之间通信。
通常,终端在其非安全部分包括一个特殊应用10,在后面我们将其称为“marchande(交易者)”,保证终端1在管理中所允许的特殊交易的管理和控制。在该应用10和安全围栏3内部部件之间的通信通常以“RS232”类型的标准来执行的。在安全围栏3内部部件,特别是一个常驻应用300,和智能卡之间通过阅读器30的通信通常根据符合标准ISO7816-1到7816-4的协议来进行。
因此该架构类型具有重要缺陷,特别是下列缺陷:
-植入终端中的商家应用(非安全部分)和常驻于安全围栏内的应用是特定于该终端的;
-相关的信息程序通常是体积庞大的;并且
-灵活性和可靠性是受到限制的,因为这些程序的修改必须在终端(非安全部分)和安全围栏中重新装入,而且还要进行良好功能的测试执行,这就需要特殊人员存在。
通常,该后一操作对于大量终端必须被重复。
另外还必须保留这种想法,它已全部或部分安全涉及到应用。因此对于程序的使用,我们必须能够保证一个适于特定应用的确定的安全级别。
通常,终端1不是孤立的,在此意义上讲,它通过一个传输网络RI与一个或多个远程系统相连,图1上示出了其中的一个4。网络RI的状态根据所面临的应用(银行、健康等等应用)而有很大的不同。它特别是涉及到互联网网络或该类型的网络(内部网或外部网),考虑到后一种网络类型以及其所使用的应用的快速发展。通常,整体架构是被称为“客户-服务器”的类型,“服务器”通常是远程系统4而“客户”是终端1.而在某些环境中,在一个交易时间中,角色可能被反转过来或被交换。
在一个该架构中,与特定应用10和应用300相关的程序,它存在一个其版本上的修改,为此原因,它可以从一个远程服务器上以集中化的方式被使用,例如服务器4。于是重大的缺陷就被避免了,更新通过远程处理来被执行。然而该操作需要使用良好调试的管理过程。此外,远程装入可以包括敏感数据或至少是不得允许装入终端不允许或对安全而言是危险的程序和/或过程(“特洛伊木马”,“逻辑炸弹”,病毒,等等)。
另外,由于互联网网络升级及世界化,需求显示出一方面要将前述本地植入在终端中的的特殊应用转移向远程服务器,后面将其称为“商家服务器”,另一方面从这些商家服务器直接与智能卡对话。
特别是该第二个需求不能为现有技术的终端所满足,下面我们将解释原因。
但首先,似乎简要地表述一下系统的架构是有用的,该系统允许在根据现有技术的终端和一个远程服务器之间,通过互联网类型的网络RI来通信。一该架构被简要地在图2上示出,在其上指出了终端最特殊的逻辑架构,标记为1’。
在这里终端1’是一个具有或不具有安全性的最一般的终端,对于解释不同通信类型的原因而言该装置并不重要。
如前所述,终端1’自然包括使其良好运行所必需的电路和机构,而为简化绘图的原因未将它们示出。通常,终端1’被连接到传统的外围设备上,集成的或非集成的,例如一个可视化的屏幕(未示出)及一个键盘31,在发明的特殊范围内它被置于一个安全围栏内(图1∶3)。
通常,在网络上的通信以符合标准协议的方式被执行,该标准包括多个叠置的软件层。在互联网类型的网络RI的情况中,通信根据特定于该通信类型的协议来被执行,而它同样包括多个软件层。通信协议根据所面临的最特殊的应用而被选择:“WEB”页查询,文件传输,电子邮件(e-mel,或英语“e-mail”),论坛或“news(新闻)”,等等。
通信网络架构以不同的层来被描述。作为例子,由“ISO”所定义的“OSI”(“Open System Interconnection开放系统内连”)标准包括七层,它们从底层(例如涉及物理传输支持的被称为“物理的”层)到高层(例如被称为“应用的”层),经过中间层,特别是被称为“传输”层。一个数据层向紧接着它的上面层提供服务并且从紧接着它的下面层请求其它服务,通过合适的接口。层借助原语方式通信。它还可以与相同级别的层通信。在某些架构中,这些层的这个或那个可能不存在。
在互联网环境中,层是五个,更准确地,从上到下是:应用层(“http”,“ftp”,“e-mail”,等等),传输层(“TCP”),网络地址层(“IP”),数据链接层(“PPP”,“Slip”,等等)和物理层。
终端1’包括互联网网络接入电路11。它可以是一个调制解调器,对于连接到一个电话交换线路或一个数字综合服务网络(“RNIS”),经由例如一个互联网服务商(英文“Internet ServiceProvider互联网服务提供商”或“ISP”)。网络RI的接入电路11重新分组下面的软件层C1和C2,对应于前述的“物理”层和“数据链接”层。
我们还可以将上面层表示为C3和C4,对应于“网络地址”层和“传输”层。上面应用层(“http”,“ftp”,“e-mail”,等等)由一个任意类型的“WEB”领航器所概括,最好是商家标准类型的。
在下面层C1和C2及上面层C3和C4之间的接口由一个通常被称为“driver couches basses底层驱动”的软件层15来构成。上面层,C3和C4,由该接口支持并且通过它所对应的特定函数库或网络库14来应用。在互联网网络的情况中,“TCP/IP”通过被称为“sockets(网络接口)”的库来应用。
该结构使得领航器NW能够向远程服务器4提交请求,以查询“WEB”页(“HTTP”协议),文件传输(“FTP”协议)或发送电子邮件(“e-mail”协议)。
在发明更特殊的应用中,终端1’还包括位于安全围栏(图1∶3)中的卡阅读器30。为与智能卡2通信,卡阅读器30也包括两个底层CC1(物理层)和CC2(数据链接层),它们与层C1和C2其相似的作用。与层CC1和CC2的软件接口由,例如,“PC/SC”规范(“第6部分,业务提供商”)所描述。层CC1和CC2本身特别是由标准ISO7816-1到7816-4所描述。
一个附加的软件层13构成了应用层,单一地标记为Appli1,和下面层CC1和CC2之间的接口。该层的主要功能是一个多路复用/去复用功能。
在智能卡2这面,我们能找到一个类似的结构,即存在两个底层,标记为CC’1(物理层)和CC’2(数据链接层),以及一个接口层23,它完全类似于层13。该层23保证了前述协议层CC’1和CC’2和一个或多个应用层,它被表示为标记为Appli2的单一的模块,之间的接口。
智能卡阅读器30和智能卡2之间的通信借助于标准化的指令来被执行,公知地英文缩写为“ADPU”(指“Application Protocol DataUnit应用协议数据单元”)。
可以使用不同的协议,作为非穷举的例子可以是下面的:
-建议ETSI GMS 11.11;
-由标准ISO 7816-3定义的协议,字符模式T=0;
-由标准ISO 7816-3定义的协议,块模式T=0;
-或由标准ISO 3309定义的协议,帧模式“HDLC”(指“High-level Data Link Control procedure或高级链接控制过程”);
在发明的范围内,我们最好使用ISO 7816-3块模式的协议。
以本身公知的方式,对于每一个协议层,它被关联与一些能够在同级别层和另一层之间交换数据的原语。
在实际的技术领域中,不可能将智能卡2与远程服务器4经过互联网网络RI来直接通信,因为标准类型智能卡2之间的被调用的通信协议与互联网网络或所有该类型网络上所使用的协议不兼容。也不可能直接在领航器NW和智能卡2之间建立直接的通信,除非在领航器NW中置入一个特定类型的软件片段,被称为“plug-in插件”。
如果我们重新参考图1,并假设终端1连接到互联网网络上,并且总之它要被调用,我们看到,根据公知技术,包括一个带有键盘31和一个智能卡2阅读器30的安全围栏3的该终端1包括两个通信主接口S1和S2,以虚线表示。第一接口,S1,准确地说连接到终端1的围栏3,在这里执行商家应用程序10,而第二接口,S2,被用于与智能卡2通信。实际上,接口S2在应用300和智能卡2之间被分配。在这两个接口之外还加入朝向外面的接口(图2:特别是电路11),它允许终端1与互联网网络RI通信。接口S1接受两个对话级别:第一透明对话,对此一个由终端1所发送的指令在语义上没有改变地为接口S2所执行,以及一个第二级别的对话,它对应用300起作用。
因此由键盘31输入的口令的验证是一个被提交给接口S1的指令,它被应用300所解释并被转换成一个在应用300和智能卡2之间的接口S2上的连续交换。这些交换的结果被传送给接口S1。
除此之外,在现有实际的技术中,标准智能卡2接收与互联网网络RI的直接交换,如同已经回顾的那样,根据公知技术终端的主要缺陷是由于常驻应用300的存在而构成。通常这涉及被称为“特性”应用,这导致商家应用10必须根据所使用终端类型和状态来被写入。因此在一开始终端类型之间就是不同的,这就不能简化维护操作。另外,它也不能适应互联网类型的环境。
如同用于在商家终端1和智能卡2阅读器30之间标准化交换的共知标准,英文“OCF”(指“Open Card Framework开放卡帧框架”)一样,对于发明的该类型的应用的标准被提出来,它符合例如终端的“EMV”标准。尽管该标准不能被直接地应用在互联网上下文中。
在银行应用领域中,由银行卡G.I.E.所定义的协议,被称为“C-SET”的协议也是公知的。根据该协议,一个使用者连接到“WEB”上一个可用商家站点并进行一笔购买。在交易时,该后者请求安全围栏的部件以确认执行购买的银行卡持有者。该确认由终端(非安全部分)和围栏中的软件执行来进行的。
该协议也不能免除缺陷:
-需要在终端和围栏中提供特殊软件的存在;
-需要提供“C-SET”所强制的软件验证;
-“C-SET”协议是唯一用于支付的;在终端中处理“WEB”服务器和银行卡支付信息的软件是一个支付软件。
通过这些特征,它与前述公知技术的解决方案没有太多的不同。根据互联网类型的协议,它不允许端到端的通信,特别是一个智能卡的直接地址。从其特性而言,它不提供任何灵活性并且不适于其它领域的应用:保健,智能卡上存储的数据的更新,积分,等等。
为了克服公知技术方法和架构的缺陷,而这些缺陷刚刚回顾过了,发明在于满足所显示出来的需求。
它利于终端在互联网上的使用,终端包括一个带有至少一个智能卡阅读器和一个键盘的安全围栏,这一方面是通过允许智能卡阅读器和终端的应用朝向“WEB”类型的远程服务器转移,另一方面允许直接与智能卡对话来实现的。
它允许在安全围栏内的应用或加入具有最大的安全性。
为此,根据发明的第一个方面,智能卡不再以传统的“APDU”方式定址,它符合前述的通信协议ISO 7816,而是通过一个“URL”(指“Universal Resource Location统一资源定位器”)地址的使用。如同公知的那样,一个“URL”地址由一个准确地说是“IP”地址和一个端口号来构成。同样,安全围栏使用该“URL”地址。
根据方明的一个方面,智能卡也可以作为一个“WEB”服务器和/或客户。
根据发明的安全围栏对于互联网网络来说是“透明”的,在此意义上讲,由远程商家服务器所带来的“卡指令”不干预终端的地址单元。结果是与安全围栏相关联的资源不能由互联网网络存取。相反,容纳在智能卡中的应用通过将在后面解释的简单的“URL”地址,能够定位和激活存在于安全围栏中的所有信息资源,特别是键盘。
为此,终端在物理上包括:
-一个可修改类型的安全围栏,包括至少一个智能卡阅读器和一个键盘(和/或一个其他的信息资源),所由二者被连接于一个被称为安全围栏的“HTTP”服务器,以及一个执行单元,它管理存在于围栏中的资源整体;以及
-除了传统单元(存贮器,等等)和一个“WEB”类型的领航器之外,一个被称为终端的第一通信节点,它保证在互联网网络,“WEB”类型的领航器和/或安全围栏之间的通信。
此外,前述安全围栏包括一个围栏通信第二节点,它保证,准确地说是终端,经过第一通信节点,称为安全围栏的“HTTP”服务器,和/或智能卡阅读器之间的通信。
智能卡本身带有一个该卡的第三通信节点,以及一个如同一个“HTTP”服务器运行的软件适配,它在智能卡中至少一个常驻应用和第二通信节点之间形成接口。
第一通信节点朝向围栏引导具有与安全围栏相关联的一个端口号的互联网网络请求,并执行对于将互联网网络直接与第二通信节点通信所必需的协议适配,并保证信息和/或指令朝向智能卡传播。
对于某些应用,特别是存在高安全级别的应用,安全围栏可以进一步包括一个或多个辅助信息资源,例如生理验证机构(眼球,声音和/或签名识别),一个协处理器或一个外部翻译器。
在根据发明方法的一个最佳变化中,对于安全围栏的资源和部件运行必需的程序,或它们的使用,经由互联网网络从与该网络相连的远程“WEB”服务器来被远程装载。更新可以包括删去至少这些程序的一部分。
在附加的实现变化中,我们还可以经由互联网网络和通信节点,远程装载,更新和/或取消记录在智能卡中的应用或部分应用(文件,程序,脚本,等等)。
由于前述安全围栏对于互联网网络透明的原因,所有这些操作可以在非常良好的安全条件下被执行。
因此发明的主要目的是一种终端,它带有一个用于通过一个互联网类型的网络,根据互联网类型的第一通信协议,与至少一个“WEB”类型服务器通信的安全围栏,所述的安全围栏包括至少一个智能卡阅读器,所述智能卡存贮至少一个软件应用,其特征在于所述终端包括一个非安全部分,它包括至少一个称为第一通信节点的第一模块,所述的安全围栏包括至少一个称为第二通信节点的第二模块,而所述智能卡包括至少称为第三通信节点的第三模块,所述的通信节点包括第一,第二和第三协议栈,其每一个分别包括确定数的标准通信软件层以及特定的第一,第二和第三软件片段,它们每一个分别包括至少一个第一软件实体,所述的第一软件实体被两两配对,并且所述第一节点根据所属互联网类型第一通信协议,至少允许在所述终端和所述“WEB”服务器之间通信,而所述第一和第二特定软件片段的所述第一实体,根据确定的第二通信协议,允许在所述终端和所述安全围栏之间建立一个双边数据交换的会话,并且所述第二和第三特定软件片段的所述第一实体,根据确定的第三通信协议,允许在所述安全围栏和所述智能卡之间,至少建立一个经过所述智能卡阅读器的双边数据交换会话,以便能够将所述智能卡的软件应用之一与所述“WEB”类型服务器建立联系。
【附图说明】
发明将以更加详细的形式并参考附图来被描述,在其中:
-图1简要地示出了一个根据公知技术的终端的例子,它包括一个带有一个智能卡阅读器和一个键盘的安全围栏;
-图2是根据公知技术终端的一般逻辑架构,它包括一个智能卡阅读器并且通过互联网网络与一个“WEB”服务器通信;
-图3简要地示出了一个根据发明的一般架构的例子,它能够经由互联网网络,在一个称为商家远程服务器,一个带有安全围栏的终端,围栏包括一个智能卡阅读器和一个键盘,及其它信息资源之间通信;
-图4示出了能够在图3终端安全围栏和智能卡之间通信的模块的逻辑架构;而
-图5示出了智能卡逻辑架构的一个特殊实施例。
【具体实施方式】
现在我们参考图3将描述一个具有符合发明的安全围栏的终端的实施例,及在该终端和称为“商家”服务器之间通信的系统架构。
终端,此后标记为5,如同所指出的那样,可以基于一个微型计算机或类似机器来被实现。它包括一些数量的传统部件:微处理器,存取和只读存储器,海量存储器(硬盘,等等),等等,它们没有被表示出来,而它们对于所述技术领域的技术人员而言是公知的。相反,在适于发明的应用中,终端5包括一个围栏6,它有物理和逻辑装置来保安,其本身是公知的。该安全围栏6包括公知技术公知的部件,但也包括特定于发明的部件并且将在后面描述。它首先包括,如同公知技术一样,一个键盘62,它的管理单元620,或英文“handler”,及一个智能卡阅读器7。
终端5通过互联网网络RI或所有该类型的网络(内部网,外部网)连接于一个远程终端4。如同在图2所示的情况,因此它包括所有根据互联网网络上所使用的协议,特别是“HTTP/TCP-IP”协议,通信的软件和硬件部件。因此除了提及它包括一个标记为51的“WEB”类型领航器,重新描述这些部件是无用的。该领航器51特别是允许向服务器4提交请求。它构成了存在于终端5中的应用之一,实际上它允许包括多个。
根据发明的第一个特征,商家应用的特别应用转移向服务器4。因此该后者特别是包括一个准确地称为“HTTP”的服务器40和记录在存储装置41中的前述的商家应用。
根据另一个发明特征,终端包括第一特定模块50,在后面我们将称其为第一通信节点或“终端通信节点”。该模块50包括通信的传统装置,特别是参考图2所描述的协议栈,但也有将另外描述的特殊部件。
还是根据另一个发明特征,安全围栏6还包括一个特殊模块60,在后面我们将称其为第二通信节点或“围栏通信节点”。
第一通信节点,50,能够使得网络RI的服务器,例如服务器4,以及存在于终端5的非安全部分中的应用(例如“WEB”领航器51)与存在于安全围栏6中的部件,特别是智能卡阅读器7和智能卡8,通过第二通信节点60通信。
安全围栏6包括一个“HTTP”服务器61,在后面我们将称其为“HTTP围栏”服务器,它被安置于第二通信节点60和键盘62之间。该后者构成了安全围栏6的信息资源之一。该围栏,如本说明书序言中所指出的那样,可以包括附加资源1到i,它以唯一的标号63表示。它也可以涉及,例如,生理验证机构,一个协处理器或一个外部翻译器。资源63同样以与键盘62类似的方式被连接到“HTTP”服务器61。
“HTTP”服务器61同样被连接到智能卡阅读器7。
通信节点60能够通过智能卡阅读器7朝向智能卡8引导终端5的请求,在相反的方向上,引导智能卡8的请求,或者是朝向“HTTP”服务器61,或者是朝向终端5,通过通信节点50。
根据发明的一个方面,“HTTP”服务器61允许智能卡8,并且仅是允许它使用安全围栏6的资源62到63。
存取键盘62或其它资源63信息的不可能性,除了通过智能卡8,它起到一个中介的作用,是由于多个因素:
a)围栏6是物理安全的(不可能物理上“偷窥”部件);
b)节点60的程序设计是这样的,它防止所有来自“HTTP围栏”实体61外部的数据发送,节点60也被保护,因为它位于安全围栏的内部;并且
c)“HTTP围栏”的实体61的程序设计是该后者不能接受除了智能卡8所带来的请求之外的请求的那种程序设计,因为它同样位于安全围栏6的内部。
如果a)点,其本身与现有技术和发明的相同,b)点和c)点构成了发明的特殊特点和优点。
现在我们以更详细的方式描述在互联网网络RI和终端5的非安全部分的部件之间,在该后者和安全围栏6的部件之间,在安全围栏6的部件之间,以及在该后者和智能卡8之间,是如何通过智能卡阅读器7进行通信的。
根据发明的主要特征之一,所有这些通信是根据一个我们将称其为“均匀”模式执行,同时通过使用标准的“URL”地址而完全与互联网协议兼容,并且保留了标准通信协议,特别是在智能卡8和智能卡阅读器7之间(也就是说符合前述的标准ISO 7816)。
在领航器51和“商家”服务器4之间的通信并不带来特殊的问题,并能够通过使用传统协议层(见图2)和一个“URL”地址,根据“HTTP”协议来被执行。相反,如同已经回顾的,在现有技术中,终端的非安全部件和安全部件(图1∶1)是不同的,在这里通信通常是以RS232模式来被执行的,在安全围栏6的部件与智能卡8之间,通过阅读器7,也是不同的。在该后一种情况下,如同已经参考图2解释的那样,通信当然是使用协议层来执行的,但是是借助于符合前述标准ISO 7816-3的“APDU”指令集,因此也与互联网类型的协议不兼容。
同样,发明提出了能够统一通信的特殊机构,在通信中完全保留了标准的部件并只导致较小的修改。
我们首先详细描述带给安全围栏和智能卡8的修改,为能够保证在该二实体间以符合发明的方式通信。
根据发明的第一个特征,我们在智能卡8上安置一个特殊模块,构成一个第三通信节点80和一个“HTTP”服务器81,我们将分别称其为“卡通信节点”和“卡HTTP服务器”。在智能卡8中存在的n个应用,A1到An,由“HTTP”服务器81的第一侧所连接。通过这些机构,对于安全围栏6而言智能卡8被转变为“WEB”服务器和/或客户,并且可以由一个“URL”地址来被定位。
根据发明,该架构基本上是通过在智能卡8中置入一个第一特殊通信协议层来被获得的。同样,与第一层对称,第二特殊通信协议层被置入到安全围栏6中。
涉及到智能卡8和安全围栏6之间的交换,图3的功能简图可以由图4所示的逻辑架构所表示。
在该架构中,我们发现如图2所示的现有技术的协议层,它起到同样的作用并具有同样的标记。因此无需重新描述。
相反,我们在彼此,也就是说在安全围栏6和智能卡8中,安置两个附加的特殊协议层:分别是64和84。
在安全围栏6中,特殊层64接口于卡阅读器3的协议层,也就是说下层,CC1和CC2,经过多路复用层13。特殊层64能够从或朝向智能卡8转换数据请求。另外,它能适应现有的应用,以便使用智能卡而不必重写。
在智能卡8这面,我们发现一个完全类似的由一个在层64中的特殊层的附加请求,构成的组织,标记为84。
以更准确的方式,特殊层64和84,被切分为三个主要逻辑部件:
-一个模块,640或840,用于通过常规层CC1,CC2,CC’1,CC’2在层13和23之间传输信息块;
-一个或多个软件片段,称为“智能代理”,641或841,它实现,例如,协议的转换功能;
-以及一个特殊配置的管理模块,642和842,它可以是与特殊智能代理类似的模块。
因此我们在安全围栏6和智能卡8中发现一个在两实体之间的通信协议栈。
二级层(数据链接层),CC2和CC’2,保证了智能卡8和安全围栏6之间的交换。这些层负责探测及可以校正传输错误。所回顾的不同协议被用于该目的中(建议ETSI GSM 11.11;由标准ISO 7816-3,字符模式T=0或块模式T=1所定义的协议;或由标准ISO 3309,“HDLC”帧模式所定义的协议。)已经指出,在发明的范围内,我们最好使用协议ISO 7816-3,块模式。
以其本身公知的方式,对于协议的每一层,都与一些原语相关联,它允许在同级层和层之间进行数据交换。作为例子,关联于二级层的原语是“数据请求”(“Data.request”)和卡的“数据发送”(“Data.response”),以及“数据确认”(“Data.confirm”),等等。
更特别地,特殊层64和84从智能卡8和宿主,也就是说安全围栏6,之间的对话而被载入。它也允许安置一个合适的配置,以发射和/或接收数据包。
如同上面已经解释的那样,层包括三个不同的实体。
第一实体,模块640或840,基本上由一个软件多路器构成。它允许在智能卡8和宿主终端6之间,以协议数据单元的形式交换信息。它起到一个类似数据包交换机的作用。该单元经过2级(数据链接层)层被发送或接收。该特殊通信协议能够与至少一对“智能代理”通信。每一对的第一代理,641,位于层64中,在安全围栏6一侧,第二代理,841,位于层84中,在智能卡8一侧。在两“智能代理”之间的连接被关联于一个会话。会话是在该两代理之间的双向数据交换。
根据安全围栏6所使用的配置,智能代理可以实现三级和四级层的全部或部分功能。
特殊的智能代理最好由一个整数来标识,例如在16比特上(在0到65535之间的数)。该标识符被使用在例如构成目的参考和原参考的协议数据单元中。
存在有两大类的智能代理:“服务器”类型的代理,它由一个固定参考来标识,及“客户”类型的代理,它由一个可变参考来标识,参考由配置管理模块,642或842,来给出。
一个会话的开放过程通常如下:一个“客户”类型的智能代理向一个“服务器”类型的智能代理打开会话。模块642和842管理表(未示出),该表容纳有现存的在宿主6和智能卡8这边的智能代理列表。
智能代理641或841与特殊的特性或属性相关联。为保持该思想,并且作为非限制性的例子,下列四个特性被关联于智能代理:
- “宿主”:在安全围栏中的代理;
- “卡”:在智能卡中的代理;
- “客户”:初始一个会话的代理;
- “服务器”:接收一个会话请求的代理。
智能代理允许数据交换。
配置管理模块642和842类似于,如同已经指出的那样,特殊的智能代理。例如,宿主6这边的模块642特别是管理相关于安全围栏6配置的信息,现有的其它代理列表,等等。智能卡8这边的模块842具有类似的功能。该两代理可以彼此通信以建立一个会话。
根据发明的一个特性,智能卡8给宿主系统,也就是说围栏6,提供了一个虚拟终端模式。为此,智能卡8如同一个“WEB”服务器和/或客户一样运行。
实际上,智能卡8最好由一个“URL”地址的使用而被“定位”,该地址在终端5上,特别是在安全围栏6上定义了一个重连,而不是在外部服务器上的一点,例如服务器4。作为例子,该“URL”的结构通常如下:
http://127.0.0.1:8080 (1)或
http://localhost:8080 (1’)
其中,127.0.0.1是重连的“IP”地址(“localhost”是127.0.0.1的文学翻译)而8080是端口号。资源62和/或63的“URL”地址可以由一个“/xxx”类型的后缀来完成。例如,键盘62的管理模块620可以具有下列“URL”地址:
http://localhost:8080/kb (2)
使得在准确地说终端5(在节点50和60之间)之间通信的逻辑架构,也就是说终端的非安全部件和安全围栏6,类似于图4上所示的那样。因此,会话将在通信节点50和60之间根据刚刚表述过的一般的方案来被建立。安全围栏特别是将由一个“URL”地址来被定位,与智能卡同样的端口号,在所述例子中是8080。
通信节点50也允许终端5与互联网网络RI通信。同样,除了上面所列举的与智能卡相关的特性外,还有下列两个特性:
-“local”:不与网络通信的代理;
-“reseau”:与网络通信的代理;
终端5,在总体上,由与上面相同的“IP”地址来定位。它容纳至少一个被称为终端应用,最好是“WEB”领航器51。它与一个特殊端口相关联。
作为例子,通过“WEB”页和超链接技术,一个使用者(未示出)可以在可用的产品和服务中选择一个产品或服务,并向商家服务器4传送请求。
除了由智能卡8所提供的“WEB”服务器-客户功能外,根据发明的另一个方面,在智能卡中还包括一个类似于被称为“CGI”(指“Common Gateway Interface通用网关接口”)的植入在传统“WEB”服务器中的机制。
在描述符合发明的架构之前,它能够在智能卡8中实现一个该类型的功能,回顾一下一个“CGI”功能模式的主要特性是有用的。
“CGI”是一个从“WEB”服务器上的,对于“UNIX”(注册商标),“DOS”或“WINDOWS”(注册商标)操作系统所编写的一个应用的使用规范。作为例子,对于“UNIX”操作系统,规范是“CGI1.1”,而对于“WINDOWS 95”操作系统,规范是“CGI1.3”。
还是作为例子,对于一个“URL”地址的一个下面类型的“HTTP”请求:
“http://www.host.com/cgi-bin/xxx” (3)
其中“host”对应于宿主系统(通常是远程的),由“WEB”服务器作为一个命名为“xxx”的“CGI”类型及存在于该宿主系统的“cgi-bin”目录下的命令脚本执行来被解释。尽管目录名开始可以是任意的,通常,这是存储“CGI”类型脚本所给出的目录名。一个脚本是宿主系统的操作系统的一个指令序列,而其最终结果被传送到前述请求的发送器的“WEB”领航器或所有其它请求服务的应用,例如一个商家服务器。可以使用不同的语言来编写该脚本,例如“PERL”(注册商标)语言。
实际上,请求通常以包括在一个“HTML”页中的表格的形式被显示在一个信息屏幕上。“HTLM”语言能够在“URL”地址上贴上一个表格。表格包括一个或多个域,强制性的或非强制性的,它由使用者借助于常规的输入装置来填写:键盘用于文本,鼠标用于作标记或称为“无线电”按钮的情况,等等。表格的内容(以及可能的信息及称为“缓冲的”指令)被发送给目的“WEB”服务器。“HTML”页面的代码描述表格的物理结构(边框,图形,颜色,以及所有其它属性),以及要输入的数据域结构(名字,长度,数据类型,等等)。
传输可以根据两个主要的“HTTP”格式类型来被执行。第一格式使用称为“POST”方法,第二种称为“GET”方法。格式类型信息出现在表格域的代码中。
尽管它提供了符合发明特征之一的“WEB”服务器的功能,但该机制不能直接地向智能卡传输。
我们现在要参考图5描述一个架构的例子,它能够通过一个“WEB”服务器激活智能卡上某个常规类型的应用。
商家服务器4以一个地址“URL”激活一个“GET”类型的“HTTP”请求,地址可以具有下列形式:
“http://@carte:8080/xxx.8080/cgi-bin/le-cgi?param1+param2”(4)
其中“@carte”是支持智能卡的终端的“IP”地址(例如表达式(1)中的重连地址“127.0.0.1”),“le-cgi”是一个要在智能卡8上执行的特殊“CGI”脚本,而“param1”和“param2”是要传送给前述脚本的参数。请求首先通过通信节点50和60被传送给安全围栏8(图3)。
一个会话在终端和智能卡阅读器之间被建立。然后另一个会话在一对位于安全围栏6和智能卡8的特定层,分别是64和84,中的智能代理,641和841,之间被建立。因而数据通过特殊通信协议层64的包多路器640。接下来它穿过传统的协议层(图2)。为了更好地显示出发明的一些特殊方面,它将被在后面描述,这些层在图5上被分为两个部分:一个“APDU”指令管理65a和底层协议层65b(标准ISO 7816-3)。
同样,在智能卡8中,它穿过底层协议层,标记为85b,以及卡这边“APDU”指令管理,标记为85a,然后是包多路器840,以便为智能代理841所接收,我们将其称为“WEB代理”。
要注意到定位于“WEB”代理的数据以本身常规的方式,以用于“包多路器”840特殊应用的形式被传送。“ADPU”指令管理85a以完全类似于存在于智能卡8中的其它应用,A1到An,的方式选择该应用。换句话说,包多路器840被“APDU”指令管理看作一个原始卡应用。
因此“HTTP”请求被“WEB”代理841所分析,它一方面探测特殊目录的参考,我们将按约定称其为“cgi-smart”,另一方面探测一个特殊应用,例如Ai,的参考。因此在这种情况下完整的路径是“cgi-smart/Ai”。
根据发明方法的一个特征,上述实体表明了一个特殊的脚本,它关联于一个同样是特殊的应用。
根据方明的另一个方面,我们在智能卡8中植入特殊的智能代理,此后我们将其称为“脚本翻译代理”或简称为“ATS”。因此脚本由智能代理之一来翻译。该翻译可以以不同的方式被实现:
a)通过“WEB”代理841本身,在这种情况下它具有双功能;
b)通过一个单一的、对于智能卡内脚本整体翻译的脚本代理;
c)通过一个我们后面称其为“ATSD”的专用脚本代理;
d)通过一个“APDU”指令管理的“APDU”代理850a,在这种情况下它具有双功能。
“APDU”代理850a是“APDU”指令管理层的一个组成部分。该后者是一个能够集中所有由系统发送和/或接收的“APDU”指令,在A1到An中选择应用,而同样提供一个智能代理类型的层。因此根据发明特征之一,它能够与所有智能代理通信(通过会话),这些代理位于围栏6或智能卡8中。
在c)的情况中,一个会话在“WEB”代理841和“ATSD”代理之一之间打开。
图5示出了一个架构的例子,此例中翻译器代理是“ATSD”类型的。它被标记为ATS1到ATSn,并且关联于应用A1到An。所选择的应用假设是应用Ai,会话在“WEB”代理841和代理ATSi之间被建立。
脚本翻译器代理管理“APDU”指令序列。一个会话在翻译器代理,例如代理ATSi,和代理“APDU”850a之间被打开。因此指令被发送向代理“APDU”850a。“APDU”指令管理85a选择应用“CGA”Ai,并向其传输“APDU”指令,因此被翻译的指令是常规的,它可以明白的。因此该应用被正确地激活,而不需要修改或重写。
应用Ai的响应被传送给“APDU”指令管理85a,“APDU”850a,然后重新到代理ATSi(更一般地到脚本翻译器代理)。
不同的路径以符号的形式被显示在图5上,实线连接功能块,虚线在这些块的内部。
为确定观念并且这并不限制本发明的范围,寻址技术此后以其一般性来被定义,现在我们将在下面详细描述不同的可能路径,我们将其称为应用情况并且标记为CU-n:
CU-1:在商家服务器4和智能卡8之间的通信。
为此,一个符合(1)的“URL”地址被使用。在此情况下,不需要使用键盘62。传输向互联网网络RI的请求到达通信节点50。它识别与智能卡相关的端口,也就是说端口8080,它与安全围栏6的端口相同。通信节点50向通信节点60发送请求。在所有的情况中,不论是哪个“URL”地址,该后者通过通信节点80向智能卡8发送所接收的数据包,更准确地说向智能卡“HTTP”服务器81发送。在后一位置,它激活智能卡8的应用之一,例如应用A1。
CU-2:在智能卡8的两应用之间通信。
例如,应用A1希望与应用An通信。应用A1所带来的请求被“HTTP”服务器81所发送。在实际中,一个会话根据参考附图4所解释的方式在智能卡8的一对本地智能代理之间被建立。通信节点80并不参与。没有预计的通信协议适配。
CU-3:在一个卡应用和服务器4中的商家应用41之间的通信。
这种情况特别是在智能卡8接收到一个商家服务器4的请求(CU-1的情况)时可以被产生。一个智能卡8的本地应用,例如应用A1,可以被激活。因此一个确定的、由所接受的请求所控制的动作在智能卡内部由一个脚本或所有相同的过程的执行所实现,例如一个“CGI”类型的动作。该动作以脚本翻译器智能代理控制的形式被实现,如同参考图5所解释的那样。
作为结果,应用A1提出一个用于服务器4的请求。在检查“IP”地址后,“HTTP”服务器81将请求转向通信节点80。一个会话在智能卡8和安全围栏6之间,更准确地说是在通信节点60和80之间,根据参考附图4所描述的方式被建立。同样,通信节点60在检查完“IP”地址后,向通信节点50传送请求。该后者在检查完“IP”地址后,通过互联网网络RI向其最终目的地,也就是说向服务器4传送其所有请求。
在一个交易时间中,过程在智能卡8和服务器4之间可能包括多个来往。当过程结束时(例如“CGI”的结束),智能卡的响应经由特别是连续的通信节点80,60和50被传送到商家服务器4。
CU-4:在一个“卡应用”和一个“终端应用”之间通信。
作为例子,应用A1例如希望与一个终端的打印管理器(未示出)通信并且在该方向上提出一个请求。在检查完“IP”地址和端口号后, “HTTP”服务器81将请求转向通信节点80。然后请求沿着与CU-3情况下相同的通路,直到它到达通信节点50。该后者在检查完“IP”地址和端口号后,将请求转向被寻址的终端应用,例如打印管理器。
CU-5:在一个“卡应用”和一个安全围栏的资源之间通信。
在该应用情况下,我们首先假设智能卡8相对于商家服务器4是“从”模式,并且它向智能卡8的目的地发送一个请求。该请求以CU-1和CU-3情况所解释的方式来被处理。在智能卡8的内部一个例如“商家CGI”以参考图5所描述的方式被执行。该脚本通过借助于一个脚本翻译器代理,例如ATSi,激活应用之一来被执行。我们假设商家CGI需要来自键盘62的信息(例如口令)或其它验证信息(来自由资源63之一构成的生物统计装置(un dispositifbiométrique))。所提到的CGI必须带有一个特殊的“URL”地址来被执行。应用Ai发送一个请求,其地址是例如上面(2)所给出的那样。后缀“/kb”的存在表明通信节点60必须向“HTTP”服务器61回送请求,服务器激活键盘62管理620,并且回收所等待的信息(例如口令的输入)。请求的响应以相同的通路,但以相反的方向被传送向智能卡8。
因此商家服务器4的请求回应被重新传送给它。一个对话很多时候可以以与CU-3类似的方式被建立。
在一个交易时间内可以有多个“CGI”被执行。
为明确观念,对于结果,第一“商家CGI”可以在一个包括在安全围栏6中的屏幕(单一标记为63所表示的资源之一)上显示一个信息,邀请使用者输入一个代码并显示金额。第二CGI读取例如由键盘62所传输的信息。作为结果,第三CGI可以在同一可视机构上显示“CODE CORRECT代码正确”类型的信息,或所有类似的信息。
CU-6:在终端和安全围栏资源之一之间通信。
作为例子,一个终端5的应用(在其非安全部分),例如“WEB”领航器51,希望与安全资源之一,例如与键盘62,通信,并且在该方向上发送请求。通信节点50检查“URL”地址,验证安全围栏6的端口号并向它传送请求。由于其编程,通信节点60系统地向智能卡8转送信息,尽管它是用于安全围栏内部6的资源之一。从该阶段起,请求沿着CU-1情况类似的通路。是智能卡8来确定是否将请求重新传送向初始化寻址的安全围栏,可能要修改它。决定可以是记录在智能卡中,特别是在只读类型存储器中的,可能被加密的校验过程执行安全数据检查的结果之一。如同CU-4中的情况一样,一个在安全围栏6之外的部件永远不能直接存取安全资源。
该后一特征允许更新常驻于安全围栏6中的软件,加入或取消软件,至少是这些软件的一部分,要比现有技术弱得多。实际上,它从一个埋藏于安全围栏6软件中的密钥来使用该状态修改的验证。
而仅有智能卡8能够从外部存取安全围栏6中受保护的资源,因此软件资源的远程载入可以从一个互联网服务器通过智能卡来执行,而完全保留了非常大的安全度。远程载入的数据,如果它是敏感的,只需要通过使用一个强壮的算法和/或足够长的加密密钥进行适当地编码就行了。由于智能卡8所起到的中介作用,发明中所应用的机制要比简单埋藏于安全围栏6的存储机构(未示出)中一个密钥要先天强壮。
我们也可以通过远程装载记录在卡中的软件片段来直接从智能卡8修改安全围栏6的软件资源内容。因此远程装载的软件的体积是由智能卡的资源所限制的(存储容量),这不是原先从一个“WEB”服务器由互联网网络远程载入的情况,服务器可以配备有重要的信息资源。远程载入时间必然依赖于要远程载入的软件的数量,而快速调制解调器和/或高速率通信线路的使用,对于所面临的应用而言是可以将该时间保持在一个完全合理的限制内。
通过前面的阅读,我们很容易地了解到,发明可以很好地达到其确定的目的。
它特别是能够,在完全保留使用传统部件以及标准化模块的可能性的情况下,在安全围栏和智能卡之间,通过阅读器,具有一个与互联网“HTTP”协议兼容的地址和通信。它将智能卡转换成能够执行“CGI”类型操作的“WEB”服务器-客户。它特别是从一个“WEB”服务器经由互联网网络,或相反的方向上能够有一个智能卡直接的和交互的寻址。在终端本身和安全围栏上上它不需要任何特殊的商家应用。它提供了很大的灵活性并且很容易地适应多种领域的应用。它只引起所使用的部件的很小的修改,修改总的来说基本上就是植入特殊的软件片段,而词“特殊的”不表示依赖于所处理应用。特别是常驻于智能卡中的应用是标准应用,并且不需要进行重写。另外,特殊的应用,从“商家应用”的观点看,完全位于远程“WEB”服务器中。该后者可以容纳多个特殊应用。这些应用的更新,取消,以及新应用的加入是非常容易的。该特性提供了一个很大的灵活性。程序的版本对于所有的连接在服务器上的终端可以是同一的。最后,由发明所保证的安全是非常大的。我们可以要求强壮的加密算法以及很长的密钥以便在互联网网络上通信。另外,根据发明的一个特征,所有能够由安全围栏执行的请求,不论它们是来自终端非安全部分或者是直接来自互联网网络,都必须被强制性地通过智能卡,并处于其独占性地控制下。例如根据常驻的安全数据,后者决定必须使用这些请求的使用。但智能卡保留持有者的特性。
然而必须要清楚,发明并不仅限于描述中所解释的实施例,特别是参考图3到5的实施例。
在一个实施例中(未示出)安全围栏可以只包括一个智能卡阅读器,记录在智能卡中的自动满足验证持有者和/或允许在远程“WEB”服务器和智能卡之间交易的应用。键盘可以被取消并且由安全资源之一来代理,例如一个生物统计装置。最后,我们也可以为第一智能卡阅读器加入一个第二智能卡阅读器,或者多个。