技术案例:CPU卡应用方案和密码管理技术
本文以LEGIC的CPU卡应用方案——“卡中卡”为例,对CPU卡应用中的加密算法进行了综合性介绍,指出基于通用加密方法的CPU系统的安全性也存在一定的安全隐患。建议CPU卡应用时选用通过安全认证(GP,EAL+),最好是采用AES加密方法的CPU卡技术;在COS的选择上,最好采用具有通讯安全认证的系统,以及最好采用JAVA基础的COS,如JCOP等。
端到端的安全性
在整个读卡的过程中,LEGIC提供的CPU卡应用方案,不单从最前端的卡片上为数据保密,到最终把读取的数据从读卡器发出去的过程中,都有非常严密的保护。图1是卡片到数据在空中的传输,到读卡器收集数据,到读卡器把数据传输的一个点对点的数据安全示意图。
图1
1、卡片内的数据保护
该CPU卡独有的MTSC(主令牌系统)是一个密钥管理系统。而每个令牌内都存有一个密钥基因。保护数据的密钥是由密钥基因加上卡片的UID号,通过运算程式,在卡片初始化的过程中而产生的。所以卡片经过初始化后,就建立了“一卡一密”和“一扇一密”来保护扇段内的数据。采用的加密方法,除了通用的DES、3DES、SHA-1之外,也有新的CPU卡应用中采用AES加密方法。由于系统提供的读头及CPU卡上应用程序,并支持在线更新,安全保障有了保证。
系统不单对卡片内的数据作出保护,如应用需要的话,就连公开的序列号(UID)也可以进行加密保护。这样就可保证UID的唯一性,也同时增强安全性。
系统虽然应用了多样化密钥(DiversifyKey)的概念去保护卡内的数据,但每一种芯片卡的密钥运算程式都不一样。这对“黑客”而言,破解一种芯片的密钥运算方法,不代表同时把其他种类的芯片一起解破,实际上,他又要从头开始。除了传统高安全的逻辑加密技术之外,写在CPU卡内的数据不单只靠COS的密钥保护,同时也保护自己的数据,这样不只更安全,而且不会和其他应用发生冲突,这也是CPU卡应用上的独到之处。
2、读卡器和卡片之间的数据传输
所有读卡器和卡片在通讯开始时,都会通过一个鉴证程序来确保在读卡器前面的卡片是不是一张真正的CPU卡片,而非“克隆卡”。这样做的好处是,可以防止有人尝试盗取空中传输数据的企图。
读卡器和卡片之间的通讯是绝对不会把保护数据的密钥在空中传输,这是为了确保密钥的安全性。
所有数据的传输都可选用自有的加密方法,也可以选用市场上通用的DES、3DES或AES(只在AFS4096上实现)的加密方法。这样做的好处是,即使数据在传输中被盗取,也无法解开数据本身的内容。
所有数据的传输都可以加验证功能(CRCCheck),这样也确保了数据传输的稳定性以及可靠性。
3、读卡器的安全性
CPU卡的读卡器都有自动消除令牌功能,以配合读卡器一经非法打开,存储的令牌将自动消除。这相对用PSAM卡储存密钥要安全得多。因为万一坐卡器或POS终端被盗,PSAM卡也会一起被盗。现时的PSAM卡技术和对应的DES算法被广泛应用,但它的安全性一直存在争论。其一,DES作为lucifer算法的改进版本,但却从lucifer算法的密码长度128位,变成了56位。56位的密码应该不足以抵御穷举攻击。其二,DES内部结构中至关重要的S盒的设计标准是保密的,无法确信真是安全。而密码相关信息存于芯片内部,安全性更好。
CPU卡的读卡器需接受相关令牌的授权才可对相关的卡片作出读写操作,无需进行密码的传递。授权卡是实物形式,可以授权及取回,从而减少管理风险。
4、读卡器到电脑通讯安全
读写器到电脑之间的通讯,还可以采用鉴证及加密来实现数据保护。其实现与无线接口的三次认证类似,不再详述。以上所有不同的安全功能,都在技术基层上增加了本身的复杂性,相对的也增加了技术本身的抗破解能力。
密码管理系统
密码管理一般包括密码生成、密码分散、密码传递,下面的密码管理是建设部的密码管理的介绍。
密钥卡中新密钥的产生主要有两类方式:即直接在密钥卡中产生新密钥;在其它安全设备中产生新密钥,然后装载到密钥卡中。产生新密钥的数据,可以是码单、密钥种子等形式。码单实际上是密钥种子的一种形式,它将种子数据分成几部分,分别由不同的人控制,这样可以提高系统的安全性。
不同的应用密钥是根据加密算法进行分散运算取得的。经过从种子数据、到应用主密钥、地区分密钥、卡分散密钥等多层次逐级分散。密钥分散的目的,即使某个子密钥泄露了,那也不会威胁管理主密钥的安全,因为无法从子密钥和分散数据推导出主密钥,从而提高了系统的安全性,降低了安全风险和管理成本。
评论