(上海中卡智能卡有限公司 201202)
摘要:随着计算机与微电子技术的快速发展,智能芯片的应用日渐广泛化,双界面智能卡因此获得了广阔的发展空间,基于此,本文简单探讨了双界面智能卡操作系统的安全应对措施,并详细论述了双界面智能卡操作系统安全体系构建路径,希望由此能够为相关业内人士带来一定启发。
关键词:双界面;智能卡操作系统;安全体系
智能卡具备良好的人机接口,同时拥有易于扩充功能、便于携带、存储能力强大、读写能力优秀、安全技术全面等优势,但对于同时拥有接触式和非接触式接口的双界面智能卡来说,更高的应用灵活性也催生了更为复杂的安全需求,双界面智能卡操作系统安全体系构建因此面临的挑战必须得到重视。
1.双界面智能卡操作系统的安全应对措施
PIN管理、防火墙机制、Secure Write机制、敏感数据存放、Secure Messaging机制均能够较好为双界面智能卡操作系统的安全提供保障,而除了这类措施外,产品安全性的确保、防SPA攻击、防Timing攻击、防DPA攻击、防DFA攻击等安全应对措施也需要得到重视。
1.1确保产品安全性
为保证双界面智能卡操作系统的安全,相关产品设计、开发、测试、生产等环节均需要开展严格的质量管理,如设计环节需遵循安全措施检查列表进行产品设计,质量管理人员可通过检查保证设计安全性[1]。
1.2防SPA攻击
SPA攻击指的是利用进行密码运算时一条或多条卡片电流变化曲线开展分析,结合密码学知识、自身经验得出进行密码运算所用密钥的攻击方式。为有效预防SPA攻击,双界面智能卡操作系统可在密码运算时随机变化电流曲线,并同时配合以密文存放的密钥。
1.3防Timing攻击
Timing攻击是一种分析智能卡不同明文数据进行密码运算所需时间不同的攻击方式,该攻击方式同样可经过分析获取密钥。为有效预防Timing攻击,双界面智能卡操作系统必须实现密码算法的运算与时间不相关,由此攻击者便无从获得时间信息进行攻击[2]。
1.4防DPA攻击
利用进行密码运算时上千条或上万条卡片的电流变化曲线,即可通过相关分析获取密钥,而为了有效预防DPA攻击,双界面智能卡操作系统必须综合利用硬件和软件措施。具体来说,密码运算过程需加入随机的扰乱电流、随机延时,由此尽可能降低密钥与密码运算功率消耗相关性,DPA攻击便无法发起。
1.5防DFA攻击
对进行预算的卡片施加一些干扰,智能卡很容易因无法正常工作泄露密钥,这里的干扰需利用半导体相关知识,常见的干扰有频率干扰、温度干扰、光学干扰、Glith等。为有效预防DFA攻击,密码运算时应检查一些DFA特性,如发现遭受DFA攻击,应立即另芯片停止工作或复位。
2.双界面智能卡操作系统安全体系构建路径
2.1系统总体设计
为提升研究的实践价值,本文选择了根据嵌入式软件开发思想设计的双界面智能卡操作系统作为研究对象,双界面智能卡操作系统主要负责卡片与终端信息交换的控制,根据一次通讯过程,系统可分为文件管理模块、命令解释模块、安全管理模块、传送管理模块四部分,因此该系统采用了图1所示的COS层次结构。文件管理模块需根据应用规划文件架构,命令解释模块负责APDU命令解析、传送管理模块负责卡片与终端间数据的收发,本文研究重点的安全控制模块则采用了身份核实、鉴别认证、报文加密等手段。硬件配置层主要由Reset模块、7816接口模块、RF模块、RAM模块、EEPROM模块、Power模块、Clock模块、RNG模块、DES模块、CRC模块组成,图2为模块间调用关系图。
图 2 模块间调用关系图
2.2安全体系构建
对于双界面智能卡操作系统来说,安全体系的重要性不言而喻,双界面智能卡操作系统交易过程中的安全必须得到安全体系的保障,同时还需要避免数据被非法窃取、维护用户的隐私和权益。系统中的安全体系主要负责传送来信息的安全性检验或处理,主要工作包括内外部认证、PIN检验、数据加解密、操作权限检验等[3]。
2.2.1加密算法
一个密码体制由密码算法与密钥两部分组成,双界面智能卡操作系统的文件一般存放密码,这里的密码体制可细分为对称密码体制与非对称密码体制。加密密钥与解密密钥相同属于对称密码体制的基本特点,DES算法属于其中典型,该算法属于基于扩散与混乱的分组密码算法,现阶段DES算法最好的破解方法仍为穷举搜索,可见其具备的较高安全性。通过两个不同的密钥实现加密和解密过程属于非对称密码体制的特点,RSA算法属于其中典型,但考虑到该算法对智能卡处理器的要求较高,设计选择了DES对称密钥机制,密钥长度、数据均为8bytes,加密算法如式(1)所示,解密算法如式(2)所示。
Y=DES[K](X) (1)
X=DES-1[K](Y) (2)
DES加密、解密运算流程如图3所示。
图 3 DES加密运算流程(左)、解密运算流程(右)
为更好保证双界面智能卡操作系统安全,在应用DES算法的同时,设计还采用了双长度密钥的3-DES算法,其密钥长度为16bytes、数据为8bytes,加密算法如式(3)所示,解密算法如式(4)所示,图4为3DES加密、解密运算流程。
Y=DES[KL][DES-1[KR] [DES[KL](X)]] (3)
X=DES-1[KL][DES[KR] [DES-1[KL](X)]] (4)
图 4 3DES加密运算流程(左)、解密运算流程(右)
双界面智能卡操作系统加密运算与解密运算步骤如下:
1)加密运算
a.明文数据长度表示为L,新数据块通过在明文前加上L产生。
b.将新数据块分为8字节数据块
c.如最后一个数据块长度为8bytes,即可直接转向步骤d,否则需进行针对性处理。处理需要在数据块最后添加0x80,以此保证其拥有8个字节,必要时可继续添加一个字节的十六进制0。
d.加密每个数据块,结合密钥长度灵活选择DES算法和3DES算法。
e.完成计算,依照原顺序将加密后的数据块链接在一起,命令APDU的数据字段中插入结果。
2)解密运算
a.将命令APDU数据字段分解为8字节长度数据块。
b.开始解密。
c.完成计算,按照原顺序将解密数据块链接在一起,L、明文数据、填充字符组成了解密后的数据块。
2.2.2密钥管理
为更好保证双界面智能卡操作系统安全,密钥管理同样需要得到重视,设计采用了主密钥、子密钥、会晤密钥三种密钥。子密钥通过主密钥对随机数加密生成,会晤密钥由子密钥对可变数据的加密生成,终端与卡片间的数据通信加密应用会晤密钥实现,但这一加密仅用于当次通信。写密钥指令装载密钥,且密钥不可被读取,密钥的生命周期会在卡片被锁时结束。此外,特定功能由独有的密钥支持,如复杂派生与传输这些密钥的密钥、智能卡中保存的密钥等。双界面智能卡操作系统涉及的密钥由文件的形式管理保存,应用DF文件创建后需首先在其下创建密钥文件[4]。
2.2.3安全报文
采用密文传输以防止数据在传输过程中被窃听,数据传输的完整性也能够同时得到较好保证,因此设计采用了MAC传输。在应用MAC传输的命令时,四字节的MAC需要附加在原APDU命令的命令数据字段后,结合表1所示的EF文件中文件类型编码、表2所示的安全报文控制符,即可灵活选择报文传输方式,并在随后创建EF文件类型字节中b6-b7位控制,EF文件命令属于其中关键。
表1 EF文件中文件类型编码
2.2.4鉴别与核实
鉴别指的是内、外部认证,以外部认证流程为例,具体流程如图5所示,由此即可实现终端对智能卡验证真伪。内、外部认证的流程原理类似,在内部认证需要在终端内完成随机数的生成、解密后数据的比较;核实指的是鉴别持卡人身份的过程,卡内存储的密码与输入密码的一致性属于判定的主要原则,但为了进一步提升双界面智能卡操作系统安全性,照片、指纹等生物特征的引入也需要得到重视。
图5 外部认证流程
2.2.5设计完善
为进一步完善双界面智能卡操作系统安全体系,安全状态机、防掉电处理的设计同样需要得到重视。安全状态机可用于展示双界面智能卡操作系统的安全水平,因此设计采用了16种级别的安全状态,安全状态标识采用8位寄存器,且只有安全寄存器的取值正确,文件操作的权限如读、写才能够通过;防掉电处理是为了应对意外掉电情况,因此必须设计数据备份与数据恢复功能,并保证该功能较好服务于对EEPROM进行读写的过程,因此设计采用了设置缓冲区、防掉电状态标识的防掉电处理方式。
3.结论
综上所述,双界面智能卡操作系统的安全体系构建具备较高现实意义,在此基础上,本文涉及的加密算法、密钥管理、安全报文、鉴别与核实等内容,则提供了可行性较高的安全体系构建路径,而为了进一步提高双界面智能卡操作系统性能,基于安全状态机的安全级别表示、防掉电处理、更深层文件系统的操作同样需要得到重视。
参考文献:
[1]宋莉莉,陈君.基于智能卡操作系统的测试系统设计[J].集成电路应用,2018,35(07):67-70.
[2]卢希.《建设事业智能卡操作系统技术要求》5月起实施[J].中国建设信息化,2018(01):26-27.
[3]“安确”操作系统加固智能卡应用安全[J].中国信息安全,2016(12):92.
[4]薛明策,刘素娟,林平分.智能卡COS操作系统高速下载的研究与实现[J].单片机与嵌入式系统应用,2015,15(03):25-28.
论文作者:齐坤
论文发表刊物:《电力设备》2018年第30期
论文发表时间:2019/4/18
标签:密钥论文; 智能卡论文; 界面论文; 操作系统论文; 数据论文; 密码论文; 算法论文; 《电力设备》2018年第30期论文;