CN102025711B - 一种智能卡进行外部应用通讯的方法 - Google Patents
一种智能卡进行外部应用通讯的方法 Download PDFInfo
- Publication number
- CN102025711B CN102025711B CN200910195626.1A CN200910195626A CN102025711B CN 102025711 B CN102025711 B CN 102025711B CN 200910195626 A CN200910195626 A CN 200910195626A CN 102025711 B CN102025711 B CN 102025711B
- Authority
- CN
- China
- Prior art keywords
- http
- apdu
- smart card
- request
- web 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公布了一种智能卡进行外部应用通讯的方法,所述智能卡包括一个WEB服务器,所述智能卡通过HTTP协议承载APDU来进行外部应用通讯,通过HTTP协议方法来传递APDU命令,终端发送命令包含在HTTP请求的请求体中,WEB服务器接受和处理终端发送命令,如果是发送给当前应用的APDU命令,由CWS派发给当前应用,命令的响应保存在HTTP请求的响应中返回到终端。本发明使终端访问智能卡的界面统一到HTTP协议上来,且保留了APDU简单直观的特点,便于应用开发和理解。
Description
技术领域
本发明涉及智能卡应用系统,尤其涉及智能卡与外部的应用通讯。
背景技术
现在的智能卡主要使用APDU协议和外部应用通讯,直接支持HTTP协议的卡片很少,在电信领域的智能卡通常通过BIP(Beared IndependentedProtocol)来承载HTTP协议,而以后智能卡直接支持HTTP协议的发展趋势非常明显,这也意味着HTTP协议将成为另一个智能卡和外部应用的通讯协议。
APDU协议基于串口通讯协议,具备特定的数据结构,如图1a所示:
终端发送命令C-APDU用于发送命令,其中CLA标识指令的类别;INS标识具体的指令;P1和P2标识指令的参数;Lc标识指令的数据域长度,可选;DATA标识指令的数据域,可选;Le标识要求返回的数据长度,可选。
命令的响应R-APDU用于接受命令响应,如图1b所示,DATA标识响应的数据;SW标识指令的执行状态。
HTTP协议是基于文本的协议,定义于RFC2616[4],HTTP请求和响应附带有许多头信息,这些头信息说明的内容包括:网页资源类型、大小、压缩格式、用户名和密码验证,重定向,时间日期,网页条件,网页缓冲,网络连接状态等等。
APDU协议和HTTP协议目前二者在智能卡的使用上是并行的关系,没有进行一体化设计。APDU协议具有简单直观的特点,易于接受和理解,而且是面向功能和过程的协议;HTTP协议是传统上WEB应用的协议,主要用于文本交互,面向功能和过程的能力较弱。而智能卡同时支持两种协议的复杂度较高,实现的成本和效率值得考虑,如果通过HTTP协议来支撑APDU协议,既可以符合未来智能卡应用接口的发展趋势,也能保留APDU协议直观简单的特点。
发明内容
本发明的目的在于:一种智能卡进行外部应用通讯的方法,本发明定义了如何在HTTP协议之上实现APDU协议的方法的细节,使得应用和智能卡之间的交互仍能保留简单直观的优点。
本发明揭示了一种智能卡进行外部应用通讯的方法,智能卡设置有WEB服务器,在智能卡与外部终端进行外部通讯时,通过HTTP协议承载APDU来进行外部应用通讯,使用HTTP方法传递APDU命令,终端发送命令包含在HTTP请求的请求体中,命令的响应保存在HTTP请求的响应中。
进一步地通过HTTP协议PUT方法往所述的WEB服务器写数据,数据包含在数据体;通过HTTP协议POST方法向所述的WEB服务器发送服务请求,请求的附加信息包含在数据体;通过HTTP协议GET方法向所述WEB服务器请求获取数据,目标数据的路径由URL指明,没有数据体;通过HTTP协议DELETE方法告诉所述WEB服务器“删除”指定路径的信息。
进一步地智能卡与终端进行外部应用通讯的方法包括如下步骤:
步骤1使用HTTP方法传递APDU命令,终端发送命令包含在HTTP请求的请求体中;
步骤2 WEB服务器接受和处理终端发送命令,如果是发送给当前应用的APDU命令,由CWS派发给当前应用;
步骤3命令的响应保存在HTTP请求的响应中返回到终端。
进一步地通过HTTP协议承载APDU来进行外部应用通讯,使用HTTP方法传递APDU命令,其中所使用的HTTP方法包括:PUT方法,POST方法,GET方法,DELETE方法,HEAD方法,TRACE方法。
进一步地智能卡WEB服务器支持的HTTP头信息包括:用户名及密码校验,资源的压缩格式,资源的长度,资源原始位置,资源类型,HTTP命令带入的日期时间,资源位置重定向,发送警告信息,询问用户名和密码,HTTP命令结束后关闭连接。
本发明使终端访问智能卡的界面统一到HTTP协议上来,且保留了APDU简单直观的特点,便于应用开发和理解。
附图说明
图1a为C-APDU数据结构;
图1b为R-APDU数据结构;
图2为本发明AOH原理图。
具体实施方式
本发明提出了AOH(APDU over HTTP)应用,即采用HTTP方法来转义APDU命令,用它定义了应用访问智能卡的方法,传统上智能卡提供给应用访问的协议是APDU协议,它具有简单、直观的特点,易于理解和定义。传统的智能卡应用都是采用APDU协议和外部终端进行通讯,通讯的方式是被动的,即终端发送命令(COMMAND APDU,简写C-APDU)给卡片,卡片返回命令的响应(RESPONSE APDU,简写R-APDU),如此循环完成交互。具体到某个应用的话,例如PBOC电子钱包应用,则根据应用本身定义的流程发送C-APDU和接收R-APDU来完成。在智能卡支持WEB服务器之后,智能卡和外部应用的交互协议以目前流行的HTTP协议为主,这种协议主要是用于文本交互的目的,本提案定义了如何在HTTP协议之上实现APDU协议的方法的细节,使得应用和智能卡之间的交互仍能保留简单直观的优点。
HTTP协议承载APDU协议AOH(APDU over HTTP)命令是通过HTTP协议传递APDU命令。AOH使用HTTP方法传递APDU命令,C_APDU包含在HTTP请求的请求体中;R_APDU保存在HTTP请求的响应中。AOH命令由CWS(Card Web Server)接受和处理,如果是发送给当前应用的APDU命令,由CWS派发给当前应用,R_APDU保存在HTTP请求的响应中返回到终端,如图2所示。
PUT方法在HTTP协议里指的是客户端程序往服务器“写”数据,数据包含在数据体。利用这个方法的含义可以“转义”APDU的部分命令,如更新文件和创建文件等;
POST方法在HTTP协议里指的的客户端程序向服务器发送服务请求,请求的附加信息包含在数据体。利用这个方法的含义可以转义所有的APDU命令。
GET方法是指客户端向服务器请求获取数据,目标数据的路径由URL指明,没有数据体。利用这个方法可以转义APDU命令的读取文件内容的指令。
DELETE方法指客户端告诉服务器“删除”指定路径的信息。利用该命令转义APDU命令里的删除文件指令。
HTTP协议承载APDU协议的定义如表1:
HTTP方法 | APDU转义 | 接收者 | HTTP参数 | Content |
表1
例1:写数据命令
这个文本就是典型的HTTP请求,
第一行“PUT”告诉服务器客户端要求发送数据给服务器,发送的路径是“/DF01/EF01?INS=D6,P1=81&P2=00”;
第二行content-type标识发送的数据类型,application/octet-stream表示是二进制流数据;
第三行content-length标识发送数据的长度;
第四行HOST标识发送的目标地址,即服务器的地址;
第五行后面的数据就是发送的数据正文。
WEB服务器收到该请求后,根据路径里的信息得知操作的文件为:/DF01/EF01,根据参数INS得知执行的命令为更新文件,P1和P2是更新文件的参数,更新的数据在请求体的最好,收集齐这些信息后,WEB服务器就可以执行该命令了,根据执行的结果返回响应信息,下面是一个成功响应的例子:
【HTTP/1.1 200 OK
User-Agent:cup-cws
Content-Type:application/octet-stream
Content-Length:0】
200这个数字是HTTP协议里定义的标识,表明上次的请求被成功执行,如果执行失败,则这里就返回错误的原因码。
例2:个性化命令
例3:取数据命令
GET/DF01/EF01?P1=81&P2=00&LE=08Content-Type:application/octet-stream CRLFContent-Length:0 CRLFHost:xxxx CRLFCRLF |
HTTP/1.1 200 OK CRLFxx xx xx xx xx xx xx xx |
例2用POST方法向服务器发送了一条命令,该命令可以是任意的APDU命令,例子里的命令是创建文件的指令。
例3是读取文件的指令,采用GET方法进行转义。
HTTP协议定义了很多交互的方法,本发明智能卡支持的方法如表2:
命令 | 编码(HEX) | 必须支持 | 可选支持 | 解释原因 |
OPTION | 68 | 不支持 | ||
GET | 69 | ☆ | HTTP1.1规定必须支持 | |
HEAD | 6A | ☆ | HTTP1.1规定必须支持 | |
POST | 6B | ☆ | 客户端提交表格等内容 | |
PUT | 6C | ☆ | 用于CWS的远程更新 | |
DELETE | 6D | ☆ | 用于CWS的远程更新 | |
TRACE | 6E | ☆ | 便于CWS调试 | |
CONNECT | 6F | 不支持 |
表2
HTTP协议RFC2616[4]中规定,HTTP请求和响应附带有许多头信息,这些头信息说明的内容包括:网页资源类型、大小、压缩格式、用户名和密码验证,重定向,时间日期,网页条件,网页缓冲,网络连接状态等等。本发明中CWS只需要支持表3所列的头信息。由于CWS的特别应用环境,其他头信息对CWS没有意义,可以忽略。
表3
AOH协议的存在,使终端访问智能卡的界面统一到HTTP协议上来,且保留了APDU简单直观的特点,便于应用开发和理解。
Claims (3)
1.一种智能卡进行外部应用通讯的方法,所述智能卡包括一个WEB服务器,其特征在于:所述智能卡通过HTTP协议承载APDU来进行外部应用通讯,使用HTTP方法传递APDU命令,终端发送命令包含在HTTP请求的请求体中,命令的响应保存在HTTP请求的响应中,所述进行外部应用通讯的方法包括如下步骤:
步骤1使用HTTP方法传递APDU命令,终端发送命令包含在HTTP请求的请求体中;
步骤2所述WEB服务器接受和处理终端发送命令,如果是发送给当前应用的APDU命令,派发给当前应用;
步骤3命令的响应保存在HTTP请求的响应中返回到终端,
通过HTTP协议PUT方法往所述WEB服务器写数据,数据包含在数据体;通过HTTP协议POST方法向所述WEB服务器发送服务请求,请求的附加信息包含在数据体;通过HTTP协议GET方法向所述WEB服务器请求获取数据,目标数据的路径由URL指明,没有数据体;通过HTTP协议DELETE方法告诉所述WEB服务器“删除”指定路径的信息。
2.根据权利要求1所述的一种智能卡进行外部应用通讯的方法,其特征在于:所述通过HTTP协议承载APDU来进行外部应用通讯,使用HTTP方法传递APDU命令,其中所使用的HTTP方法包括:PUT方法,POST方法,GET方法,DELETE方法,HEAD方法,TRACE方法。
3.根据权利要求1或2所述的一种智能卡进行外部应用通讯的方法,其特征在于:所述WEB服务器支持的HTTP头信息包括:用户名及密码校验,资源的压缩格式,资源的长度,资源原始位置,资源类型,HTTP命令带入的日期时间,资源位置重定向,发送警告信息,询问用户名和密码,HTTP命令结束后关闭连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910195626.1A CN102025711B (zh) | 2009-09-11 | 2009-09-11 | 一种智能卡进行外部应用通讯的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910195626.1A CN102025711B (zh) | 2009-09-11 | 2009-09-11 | 一种智能卡进行外部应用通讯的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025711A CN102025711A (zh) | 2011-04-20 |
CN102025711B true CN102025711B (zh) | 2014-09-17 |
Family
ID=43866568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910195626.1A Active CN102025711B (zh) | 2009-09-11 | 2009-09-11 | 一种智能卡进行外部应用通讯的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102025711B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629215A (zh) * | 2012-02-28 | 2012-08-08 | 东信和平智能卡股份有限公司 | 一种虚拟智能卡的通信方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010927A (zh) * | 2004-06-15 | 2007-08-01 | 雅斯拓股份有限公司 | 用于sim和终端之间的通信的协议转换“载体无关协议”-tcp/ip |
CN101150851A (zh) * | 2006-09-20 | 2008-03-26 | 雅斯拓(北京)智能卡科技有限公司 | 用于从服务器传送数据到移动站的方法、服务器和移动站 |
CN101384037A (zh) * | 2007-09-07 | 2009-03-11 | 凤凰微电子(中国)有限公司 | 移动应用与智能卡之间的专用数据通道建立方法 |
-
2009
- 2009-09-11 CN CN200910195626.1A patent/CN102025711B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010927A (zh) * | 2004-06-15 | 2007-08-01 | 雅斯拓股份有限公司 | 用于sim和终端之间的通信的协议转换“载体无关协议”-tcp/ip |
CN101150851A (zh) * | 2006-09-20 | 2008-03-26 | 雅斯拓(北京)智能卡科技有限公司 | 用于从服务器传送数据到移动站的方法、服务器和移动站 |
CN101384037A (zh) * | 2007-09-07 | 2009-03-11 | 凤凰微电子(中国)有限公司 | 移动应用与智能卡之间的专用数据通道建立方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102025711A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2488228C2 (ru) | Основанная на веб-формате беспроводная связь | |
CN102457565B (zh) | 移动终端访问网络的方法及代理服务器 | |
AU2018204893A1 (en) | Mobile dialogue system and mobile content delivery solutions | |
US20150189036A1 (en) | Offline caching method and apparatus | |
CN102263830B (zh) | 便于推送内容的后台处理的装置和相关方法 | |
CN102811379B (zh) | 一种电视机、消息处理方法及系统 | |
CN103781028B (zh) | 一种移动终端的信息订阅方法、系统和装置 | |
CN102272747A (zh) | 用于管理远程用户界面的状态信息的方法和装置 | |
CN102006568A (zh) | 用于提供头像服务的方法、设备和系统 | |
CN101930439B (zh) | 一种适配各种型号手机的网站处理装置及其应用 | |
CN101990169A (zh) | 一种智能卡主动推送系统和智能卡移动终端 | |
CN106033551B (zh) | 数据解析方法、装置及系统 | |
US20130179499A1 (en) | Method, apparatus and system for displaying radio frequency identification application information | |
CN109951318A (zh) | 应用的功能配置方法及装置 | |
CN102571826B (zh) | 从网络平台向客户端推送应用的方法和系统 | |
CN103731492A (zh) | 一种页面传输处理方法、装置和系统 | |
CN103581846A (zh) | 一种用户名片更新方法和系统 | |
CN103580726B (zh) | 用户识别卡、蓝牙设备及访问用户识别卡的方法 | |
CN102256241A (zh) | 终端独立承载协议信息获取方法、服务器及智能卡 | |
CN103138871B (zh) | 移动通讯系统中应用程序的服务器数据处理系统和方法 | |
CN102523244A (zh) | 一种网页文件的上传方法及其系统 | |
CN102025711B (zh) | 一种智能卡进行外部应用通讯的方法 | |
CN102937862A (zh) | 一种通过浏览器管理移动终端的系统及方法 | |
WO2001098854A2 (en) | System to support mobile visual communications | |
CN102685220A (zh) | 一种基于web页面的数据交互方法及系统 |
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 |