智能卡安全机制比较系列(三)MPCOS
文章出处:http://www.singbon.com 作者:佚名 人气: 发表时间:2012年02月26日
MPCOS是金普斯早期推出的一款多应用支付芯片卡操作系统,支持ISO7816以及PCOS的数据格式和命令。MPCOS具有两级目录文件结构,即MF下可以有一级DF,每个DF下最多可创建63个EF。
MPCOS的文件访问控制是由密码来实现的,该密码存储在一个特殊的密码文件EFsc中,每个DF下只有一个EFsc,每个EFsc可以存储8个密码,对应的编号分别为0-7。对于EF和DF分别对应不同的访问控制操作,比如创建文件,读写操作等。这些访问控制操作就需要通过访问控制条件来实现。对于DF和EF而言,分别有两个字节的寄存器来表示在进行创建、读写等文件操作之前需要验证的密码编号,对于某一种文件操作最多可以指明需要验证两个密码。另外这个寄存器也指出了在进行安全报文操作时,进行数据加密和MAC计算需要使用的密钥编号。由此可以看出,MPCOS的安全控制依靠的是密码比对方法,而数据传输的安全保护(MAC以及数据密文的计算)使用另外一个密钥文件EFkey中存储的密钥通过DES运算来完成。
MPCOS是在金普斯原来的PCOS基础上扩展了ISO7816的文件结构,从而形成的多应用智能卡操作系统。所以MPCOS中保留了原来PCOS在支付应用方面的特色,做到了面向PCOS的向下兼容。
金普斯在结合支付应用和ISO7816文件操作的过程中,设计了两种操作模式:支付模式和管理模式。每种模式都有一个专有命令来启动一个会话过程,而这个会话过程只有在启动了另一种模式或者是卡片复位后才能被终止。(其实这种机制和后来的EMV96,以及PBOC电子钱包的状态机模式很像)
MPCOS对于支付和文件管理分别定义了不同的安全机制,在支付应用中可以加密敏感数据、生成交易证书、设定交易计数器等;而对于文件管理操作,可以通过MAC验证来确保数据的完整性、监控追踪某些敏感命令的执行等。不过MPCOS的MAC是3个字节的,这点和目前流行的4字节MAC稍有不同,但是计算方式是类似的。
针对文件的访问控制MPCOS是在文件创建的时候定义访问控制条件的,但是在文件被创建后,当满足安全控制条件的情况下,可以通过Lock和Localize两个命名来改变文件的访问控制属性,其中Lock是用来锁定文件的,文件被锁定后,拒绝任何访问;而Localize则是把文件访问控制所需参考主控文件MF下的密码或者密钥,改成参考当前DF下的密码或者密钥。
在MPCOS的支付交易处理过程中,同样引入了终端编号以及终端交易序号这样的参数,通过这些参数的参与来计算交易验证码。