智能卡安全数据传输

时间:2008-11-20

  终端和智能卡之间的全部数据交换表现在智能卡I/0线上的数字式电脉冲。这是可以想像得到的而且实践上 也没有技术困难,在I/O触点上焊接一根导线,记录下会话的所有通信并在以后分析它们。用这种方法 ,完全有可能去获得在双向传输中的全部数据的知识。

图1 安全机制所需的数据与功能  一个比较困难的任务是从电气上使I/0触点绝缘,在它上面安装一个假触点,然后用细导线去把这些触点连 接到一台计算机。采用这种安排,可以很容易地只允许某些命令传送到卡或者插人自己的命令。

  所有这些典型的攻击类型,只有在秘密数据不加保护地通过I/0线时才能成功。数据传输应当基本上设计成 即使一个攻击者能窃听数据传输并插人他自己的数据传输字组,也不可能从这种作为中取得任何好处。

  有不同的机制和方法可用来防范这类攻击,并防各更复杂的攻击,它们被总体地称为安全通信。这些机制 并非专用于IC卡的,它们已经长期地用于远距离数据通信,在智能卡领域中并没有什么特殊之处,既非通信 双方的计算能力也不要特别高的通信速率。因为,通用的标准方法已经递减到和智能卡的能力相匹配,而不 削弱其安全性。

  安全通信的目的是保证真实性,如果需要时还有部分或全部传输的数据的秘密性。大量的安全机制被用来 满足这一目的。安全机制被定义为需要有如下各项的功能:一个加密算法、一个密钥、一个变量以及需要时 的初始数据。还必须满足一个通用的条件,那就是所有的安全机制的运作对于它们所存在的协议层次必须是 完全透明的,这样就保证了那些已经被标准化或使用了的方法不会受安全通信的影响。这特别适合于T=0和T =1的两项传输协议,以及通用的和标准化了的智能卡命令,参见图1。

  在执行安全通信的过程之前,通信双方必须对所用的加密算法和共同的秘密密钥取得一致,根据Ket· khoff原理,过程的安全性完全依赖于这个密钥。如果它被泄露了,安全通信成了只不过是普遍了解的补充 校验和,它降低了数据传输率,只可用来校正传输差错。

  有几种安全通信的方法已经存在多年了,它们都是比较刻板的和为特定应用制做的,它们的绝大多数都不 能经得起安全J跬考虑的挑剔。所以,它们中没有能成为在国际上占有优势的或被证明为有足够的灵活性的 标准。

  要求对已有的指令的透明性,支持两个基本不同的传输协议以及具有的适应性。在ISO/IEC 7816-4标 准中已经把标准化引向非常灵活的(而相应复杂和昂贵的)安全通信方法,并在ISO/IEC_7816_8中规定了扩 充的功能,这个方法是基于把所有有用的数据嵌人在TLV编码的数据对象中,规定了三种不同类型的数据对 象:

  ·对于明文:数据为明文(例如APDU的数据部分);

  ·对于安全机制:安全机制的结果(例如,MAC);

  ·对于辅助功能:安全通信的控制信息(例如所用填补方法)。

  类字节指明对于命令使用了何种安全通信方法,这两个可用的字节可以编码来指明使用了规定在ISO/IEC  7816-4中的那种方法,以及头标是否也被覆盖在密码校验和(CCS)中。如果头标被包括在计算中则它是真 实的,除非这是明显的,在传输中它是不能被改变的。

  1.明文的数据对象

  根据标准,所有非BER-TLV编码的数据都必须嵌入或包封在数据对象中。存在着大量的识别码,它们被列举 在表1中。每一代码的第1位表明此数据对象是否被包括在加密代码和的计算中。如果此位未被设定(即“BO ”),则数据对象没有包括在计算中,而如果它被置位(即“BI”),则数据对象被包括在内。

  表1 明文数据对象的标记

  2.安全机制的数据对象

  用于安全机制的数据对象被分为使用于真实性的和使用于秘密性的,为此目的规定的识别码已列举在表2和 表3中。

  一般来说,“真实性”一词指的是所有及加密校验和与数字签名有关的数据对象。在安全通信中它们都落 人在“秘密性”的标题下。对数据和信息的加密需要把这些数据作为加了密的来识别,取决于所用方法,可 在这些表中找到适当的编码并把它们用于安全通信。

  表2 秘密性数据对象的标记

  表3  真实性数据对象的标记

  3,辅助功能的数据对象

  辅助功能的数据对象在安全通信中用于调整一般条仵。通信的双方使用这些数据对象去交换有关所用加密算法和密钥的信息、初始数据和类似的基本信息。原则上,对每一个传送的APDU,甚至在一条命令和它的应答之间它们都可以改变。然而,这些数据对象很少被使用,因为所有安全通信的一般条件都是隐含地规定了的,这就是说它们不需要在通信过程中专门规定。

  基于如ISO/IEC 7816ˉ4规定的由安全通信所提供的可能性,它仅仅被简要列举在规定上面。这些说明尽量保持简单,以便使复杂的机制能较易于理解。高度的灵活性意味着安全机制有着许多其他可能的组合,其中的一些还要更复杂些,这里叙述的两种过程表现为复杂性和安全性的折中。

  “鉴别模式”过程使用密码校验和(CCS或⒕怩)来保护应用数据(APDU)以防止在传输时被操纵。“组合模式”过程则相反,用来对应用数据完整地加密,使用得攻击者不能对交换的命令和应答的数据内容得出任何结论。在这些过程中,可以看到只有一个是结合着发送序列计数器在使用着。这个计数器,其初始值是一个随机数,它随每条命令和每条应答而增量,这样使双方都能决定是否有一条命令或应答被丢失或是插人了。当“组合”过程使用发送序列计数器时,也使得相同的APDU表现出差别来,这被称之为“多样性"(persity)。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com


  
上一篇:同步SRAM的意义
下一篇:一汽红旗名仕4GE发动机凸轮轴位置传感器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料