IC卡的传输协议(2)-块传输协议T=1续【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172025.HTM

(3)容错操作

    先来看一下容错的规则定义。

   * 复位应答后,第一个数据块是由终端发往IC卡的,而且只能是一个I块或S块。
   
   * 若终端不希望使用长度为32Byte的IFSD初始值,则应向IC卡发送一个S块(IFS请求),S块(IFS请求)的PCB应具有值CI以表明是一个改变IFSD的请求。INF域包含一个字节,其值表示在所要求的IFSD的字节数,取值为0x20-0xFE。IC卡应向终端回送一个S块(IFS响应),确认终端更改IFSD的大小,其中S块(
IFS响应)的PCB应为0xE1,INF域应具有与请求改变S块的INF域相同的值。

   * 若IC卡希望改变在复位应答后制定的IFSC的大小,应向终端发送一个S块(IFS请求),S块(IFS请求)的PCB应具有值CI以表明是一个改变IFSD的请求。INF域包含一个字节,其值表示在所要求的IFSD的字节数,取值为0x10-0xFE。终端应向IC卡回送一个S块(IFS响应),确认终端更改IFSD的大小,其中S块(
IFS响应)的PCB应为0xE1,INF域应具有与请求改变S块的INF域相同的值。

   * 若要改变节点地址,由终端发出的第一个SAD和DAD将被设定为整个卡片操作过程中要使用的值。若不采用节点地址,则将其设为零。

   * 卡片操作过程中,只有满足以上定义的块才能相互传送。半双工块传输协议包含了终端和IC卡之间传送的情况。当发送方传送完一个完整的数据块后,就应切换到接收状态。

   * 当接收方所收到的字符数与LEN和EDC的值一致时,接收方取得发送权。

   * 若接收方需要确认由发送方传来的I块,则应在回送给发送方的I块序列号中指明。若使用链接,则在R块的序列号中指明(链接的最后一个数据块除外)。

   * 若响应中收到的I块序列号与前一个已收到的I块序列号不同,发送方即可认为I块已被确认。若前面没有收到过I块,响应中的I块序列号应该是0。

   * 在链接情况下,当响应中收到的R块的序列号与已确认的I块序列号不同时,发送方即可认为I块已被确认。

   * 若IC卡需要比BWT长的时间来处理已收到的I块,则应发送一个等待时间扩展请求S块(WTX请求),其中之一的INF域包含有1Byte的二进制整数,其值为所请求的BWT值的倍数。终端应发送一个INF中具有相同值的等待时间扩展请求S块(WTX响应),以表示对延时请求的确认。取得的时间从S块(WTX响应)的最后一个字符的上升沿开始算起。

   * S块总是配对使用的,一个S请求总是对应一个S响应块。

    如果出现不满足以上定义的情况,则终端和IC卡将检测到错误。

(4)链接

    当发送方需要传送的数据长度超过IFSC和IFSD所定义的字符数时,就要将其分成几个连续的I块。传送多个I块数据时,使用链接功能。

    I块的链接由PCB的b6位编码定义。
    b6=0表示是块链的最后一块
    b6=1表示后面还有后续的数据块

    由此可知,b6=1的任何一个I块都需要被一个R块确认。

    如果接收正确,对应b6=0的链上的最后一个数据块会被一个I块确认。否则,就会被一个R块确认。

    * 链接规则
  
    IC卡和TTL都支持链接,链接只能沿一个方向进行,其规则如下。

    a.当终端是接收方时,只要来自IC卡的每个块的长度不大于IFSD字节,终端应能够接收一组链接的I块。

    b.当终端是接收方时,如果IC卡发送的I块的长度大于IFSD,终端应通过发送一个R块来表示拒绝,R块的PCB的b1~b4位的值为2。

    c.当IC卡为接收方时,只要来自终端的每个块的长度不大于IFSD字节,IC卡应能够接收一组链接的I块。

    d.当IC卡是接收方时,如果终端发送的I块的长度大于IFSD,IC卡应通过发送一个R块来表示拒绝,R块的PCB的b1~b4位的值为2。

    e.当IC卡是发送方时,IC卡应能发送每个块长度不大于IFSD字节的链接I块。

    f.当终端是发送方时,终端应能发送每个块长度不大于IFSD字节的链接I块。

    * 链接块的构造

    C-APDU包含在I块的INF域中,并从TTL传送到IC卡。如果一个C-APDU因太长而不能放在一个数据块中时,可以通过如下的方法用几个链接块传送。

    Block (1) 
             CLA  INS  P1  P2  LC  Data  Data 
    Block (2)- Block (n-1)
             Data   Data   Data 
    Block (n) 
             Data   Data   Data    LC 

    如果由 IC 卡回送的数据和状态码因太长而不能放在一个块中,可以按照下述方法通过几个I块来处理。 

    Block (1)- Block (n-1)
             Data   Data   Data 
    Block (n) 
             Data   Data   Data    SW1  SW2

    示例只是针对命令一种情况,仅显示链接块的 INF 域。每个块还有一个头域和一个尾域。如果IC卡是发送方,全部链接块都应包含一个长度范围1到IFSD字节的INF域。如果终端是发送方,则包含一个长度范围1到IFSC字节的INF域。

2.5 T="1协议的错误检测与纠错"

    TTL应能检测以下错误:

    * 传输错误(非法的奇偶校验和EDC错误)或BWT超时; 
    * 同步失调(字符数目的超出或不足); 
    * 协议错误; 
    * 终止链接块请求。

    按照下述方法进行错误恢复:

    方法1:TTL以下列的次序按照下述技术方法进行纠错。

    * 块的重发; 
    * 使IC卡触点处于静止状态。

    方法2:IC卡以下列的次序按照下述技术方法进行纠错。

    * 块的重发; 
    * 处于不响应状态。

    错误处理和更正要满足如下规则。在任意一种情况下,当发送一个R块时,低半字节必须按照定义给定一个合适的值。

    a.当IC卡在复位应答后接收到的第一个块无效时,就应回送一个R块给TTL,并置b5=0和NAD=0。

    b.如果TTL发送的任何块在BWT时间内没有得到IC卡的响应,TTL将通过使IC卡的触点处于静止状态来结束卡片操作过程。

    c.如果响应I块的无效块被收到,发送方应发送一个R块,其中的b5位设为期望I块的编号。

    d. 如果响应R块的无效块被收到,发送方应重发R块。

    e.如果响应 S 块(XX请求)的 S(XX响应)块没有收到,发送方应重发一个 S(XX请求)块。

    f.如果响应 S(XX响应)块的应答中收到无效块,发送方应发出一个 R 块,b5 位设为下一个期望I块的编号。

    g.如果TTL连续三次发送一个块,或IC卡连续两次发送一个块,而没有得到一个有效的响应,TTL将通过使IC卡的触点处于静止状态来结束卡片操作过程。如果对于某些终端需要支持同步,它可以在结束卡片操作过程前通过发送一个S块(再同步请求)从IC卡获得一个有效的响应S块(再请求响应)来实现同步。

    h.在传输前,如接收方检测到传输不足或超出时,应等待一段时间(取 CWT 和BWT的最大值)。

    i. IC卡最多连续三次发送一个S(IFS请求)块,以便从TTL上得到一个有效的S(IFS响应)块。三次尝试失败后,IC卡即进入接收状态。

    j. TTL 一般主动发送一个 S(放弃请求)块。如果 TTL 从 IC 卡收到一个 S(放弃请求)块,TTL将通过使IC卡的触点处于静止状态来结束卡片操作过程。

    特别注意,在具体的应用中,不一定要求终端和IC卡支持交易中止功能。如果终端或IC卡需要交易中止的话,可以通过发送一个S块(放弃请求)来进行,此时,如果接收方不支持交易中止功能的话,可能会收到一个无效的响应,但终端将仍然结束卡片的操作过程。

时间: 2024-10-07 07:38:32

IC卡的传输协议(2)-块传输协议T=1续【转】的相关文章

IC卡的传输协议(2)-块传输协议T=1【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172024.HTM 2.4 块传输协议T=1     T=1协议中,在TAL和IC卡之间传送的命令.R-APDU和传输控制信息(例如确认信息)由块组成.     以下定义了数据链路层的块帧结构.协议的特殊选项和协议操作(包括错误处理).   (1)块帧结构     字符帧的定义同前文的描述.T=1协议下,无须进行逐个字符的检验.块的结构如下所示,包括头域.数据域和尾域3个部分,都为可选项.   ● 头域包括3个必选

金融IC卡安全引发行业关注,国产具备商用条件

2月27日消息,近日,美国前防务承包商雇员斯诺登再曝窃密丑闻时提到金雅拓SIM卡,一时间,金融IC卡的安全性引发业内关注. 业内专家昨日(2月26日)告诉记者,SIM卡和金融IC卡两者对安全的需求不一样,比如从生产过程来说,在个人化数据的传输中,金融IC卡要求敏感密钥信息分段传输,双人或多人控制,同时通过专用线路,全程加密和监控,确保传输过程的安全.从金融IC卡本身而言,目前其技术采用IC卡中的最高安全等级保护,远高于通讯行业使用的IC卡标准.   值得注意的是,近日,国内一款可实现"国密算法&

IC卡的传输协议(1)-字符传输协议T=0【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172022.HTM 在异步半双工传输协议中,主要定义了终端为实现传输控制和特殊需要发出的命令及这些命令的处理过程.     在传输协议中定义了两种协议:字符传输协议(T=0)和块传输协议(T=1).IC卡可以选择支持T=0协议或者T=1协议,终端一般都支持这两种协议.在ATR中的TD1规定了后续传输中所采用的传输协议(T=0或T=1),如果TD1在ATR中不存在的话则假定采用T=0.如果在ATR之后卡片与终端之间没

IC卡的传输协议(3)【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172027.HTM 3.终端传输层         本节描述了在终端和 IC 卡之间传输的命令和响应 APDU 的机制.APDU 是命令或响应报文.由于命令和响应报文都可以包含数据,TTL应能处理应用层定义的4种命令格式.C-APDU和R-APDU的组成在应用层描述.     TAL传送C-APDU到TTL.在发送到IC卡之前,应将其变换成传输协议认可的形式.IC卡处理完命令后,以R-APDU的格式将数据(如果存在

udp-需要一个java基于UDP协议的文件传输程序

问题描述 需要一个java基于UDP协议的文件传输程序 文件是一个实验数据的文件,是txt个格式的,需要将它传输到指定的IP上 解决方案 server package com.way.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundEx

网络协议X档案文件传输协议篇

网络协议--FTP协议 说明:全称File Transfer Protocol(文件传输协议),这是大家非常熟悉的网络协议之一,也是Internet中使用最多的文件传输协议.主要用于在两台计算机之间实现文件的上传与下载,其中一台计算机作为FTP的客户端,另一台作为FTP的服务器端.通过FTP协议可以上传.下载几乎所 有的文件类型,比如TXT.EXE.DOC.MP3.ZIP.RAR等等.应用:在实际应用中,FTP不仅可以作为网络文件下载的主要格式,还可以作为单独的命令来使用.比如我们在下MP3的时

非接触式IC卡仓库管理解决方案

随着非接触式IC卡技术的迅速发展,因其不易污染.磨损.划伤,及卡本身是无源件,体积小,耐用可靠,操作迅速方便等优点,正被广泛地应用于公路收费.考勤.门禁.餐厅记帐及身份识别等系统中,给人民生活带来了前所未有的方便. 目前,仓库管理主要是基于相应规范的手工作业及电脑半http://www.aliyun.com/zixun/aggregation/13703.html">自动化管理实现的.其弊病显而易见,即需要投入大量人力进行规范物品的放置.定期整理盘点以及出入库登记等工作,这使得仓库管理问题

|zyciis| 如机付宝一样的,我现在要对客户端的IC卡发卡机对卡卡进行总值,如何对这条命令进行加密呢 急 谢谢

问题描述 原贴:http://topic.csdn.net/u/20071217/18/420dd1f2-6f17-4854-a08b-1480928c4ea8.html网页传值加密我是A要向B明文发送一些数据,比如我要传2个数据用户号User=1IC卡加金额Money=2000fcuandy告诉我的方法是传1和2000再把1和2000再和一个密钥进行MD5加密比果为ICcard:|1|2000|KJLS54DFSDF46546DFSDf但这样的话可以,但是有一个问题就是当用户1再加2000的时

数据-新 IC卡初始化加密解密,默认FFFFFFFFFFFF

问题描述 新 IC卡初始化加密解密,默认FFFFFFFFFFFF 大家都知道 新的 ic卡 密码 12个F,即 255 255 255 255 255 255,校验密码6个 0xff , 那么我想设置新的密码,就是在密码 区 写入新的密码数据 ,默认每区 密码块是000000000000FF078069FFFFFFFFFFFF,FFFFFFFFFFFF就是密码,那么 0000000000FF078069 这一部分是什么,还有 比如我把密码 改成12个A,那我的校验密码 对对应的是什么呢,0xff