最近我一直在研究关于通过国密PSAM卡作为安全模块来读写cpu(用户卡)的问题

其实,两者都是卡片,或者说都是从设备。它们之间是无法相互访问的。

实际上,PSAM 卡是作为秘密密钥的载体,专门执行加密和数字签名等任务。

从应用的角度来看,终端设备比如说 ATM 机,我们可以把他看作包含 PSAM 才构成整体。而用户卡,对 ATM 机来说,则是外部设备。

当需要对用户卡片进行操作的时候,实际上终端设备是交替地访问用户卡和 PSAM,按协议流程来完成安全协议规定的操作。

比如说外部认证,是要让卡片确认终端设备的合法性(实质上是检验它是否持有共享的密钥):
1 终端设备向用户卡发送取随机数命令,得到一个卡片生成的随机数。
2 终端设备向 PSAM 卡发送一个加密命令,使其对上述随机数加密。
3 终端设备向用户卡片发送带有上述加密结果(密文)的外部认证命令。用户卡片进行验证后,确定认证是否成功。如果成功,则可以进行后续的安全操作。

当然,实际的过程还要复杂一些,因为要抗御暴力攻击每一次外部认证是要生成一个过程密钥的。上述简化过程是仅仅是为了说明这种交替访问的情景。

具体的应用规范,都具体规定了各种交易的具体实施步骤,以及卡片和 PSAM 所支持的命令(可能分布在不同的文本中)。

转自http://bbs.csdn.net/topics/390652402?page=1

05-08 08:38