1.情况和目的
有时可能会出现这种情况,用卡人需检测终端是不是真实的。一个例子是在超市的终端,在插人卡后用户必须向其中输入-PIN,一个假冒的终端可能被用来探测秘密的PIN代码。①如果卡接着被偷走(或被仿制),则知道PIN的小偷就可用这张卡去购物或从自动现钞机取钱。
1977年夏天,在慕尼黑的Marienplatz的地方就使用了一台伪冒的自动现钞机,用这种方式来非法地搜索磁卡数据和相关的PIN代码。如果使用的是 智能卡 ,其中的防范设计可以提供对这种类型的攻击的良好保护。
2.需求
有必要设计一个智能卡应用的部件使得卡的用户去识别出一台假冒的智能卡终端(但不是受操纵的终端),用户必须不需要用任何辅助的技术或设各来核查终端。
3.建议方案
所建议的方案包括存储一个只有用卡人知道的口令,在智能卡的文件中只有当终端本身用一个秘密密钥向智能卡成功地鉴明自己之后才能被它读出。
在此鉴别过程之后,终端被允许从文件中读出口令并把它显示出来,当卡用户看到口令并验证了它是正确的之后,才可以认为终端是真实的,因为只有用户知道这一口令,并在验证了口令后,用户才键人PIN,使得以后的交易成为可能。
刚才所叙述的方法是PIN规范为德国签名卡所推荐的,例如,为了使用卡人断定公开签名终端是否真实的。①
必须说明该方案的一个重大限制,这就是它可以鉴别一个假冒的终端,但不是一个受操纵的终端。如果有可能修改终端的软件而在此过程中又不丢失秘密密钥,就有可能使一台受操纵的终端正确地向智能卡鉴明其本身并显示出口令(这个限制应当被所有采用这一技术的应用考虑在内)然而,这基本上不是一个关键的问题,因为一个可以在这种规模上受操纵的终端将使广泛得多的攻击形式得以施展而不仅仅是探测PIN代码。
所建议的方案以专用文件和访问条件的形式列举在表1和表2中,它不是一个完整的智能卡应用。相反,它是一个设计模板可以编入任何需要的应用中。因此,其FID和状态转换以及在图1中所说明的过程,可以按需要予以修改以使用不同的数值和命令序列。这个例子的主要意图是传达如何测试一终端的真实性的基本概念,而不是去充当一个实际的应用。
表1 测试一终端真实性所需用之密钥
表2 测试终端真实性的文件树和访问条件(≥0:可,<0:否)
图1 验证一终端真实性的命令序列
欢迎转载,信息来源维库 电子 市场网( www.dzsc.com )