目前国内在商用密码领域中使用的加解密一般都普遍使用对称密钥算法,主要是由于其运算速度快,算法公开,技术成熟。对称密钥算法又以DES算法或3DES算法运用更为普遍。
在对称密钥算法中为了保证密钥的安全,一般都采用三层密钥体系来进行保护。三层密钥体系由主密钥、区域密钥和通讯密钥构成。主密钥是用来保护区域密钥的,区域密钥是用来保护通讯密钥的,通讯密钥是真正参与到交易中用来加解密的。主密钥和区域密钥一般都是由多人掌握密钥分量,分别注入到硬件加密机中后由加密机自行合成的,通讯密钥一般是由系统和系统之间自行约定产生的,由区域密钥加密后保存在系统中,一般都保存在数据库中。
首先我们来看一下如何实现PIN的泄露。目前国内普遍采用的加密机其所带的标准指令集中可以使用一个区域密钥来加密其他的区域密钥并将密文输出,那么如果该加密机中存在一个我们知晓明文的区域密钥,那么通过该指令集我们就可以获取所有的区域密钥的明文了,从而可以进一步从数据库中解密出所有的通讯密钥的明文,获取了通讯密钥的明文就可以进一步解密出PIN的明文了。
由于业务需要PIN的转换指令是必须存在的,如果在加密机中存在一个我们知晓明文的区域密钥,那么只要利用PIN转换指令集我们就可以直接获取到PIN的明文了。
因此在加密机中如何确保区域密钥不被泄露出去是至关重要的。例如:严格禁止将生产的加密机即用于生产又用于测试;严格禁止在生产加密机中注入测试密钥;严格执行密钥分量分段保管的原则防止密钥泄露等等。但是这些原则对一些小型的商业机构往往很难被严格遵守或执行,因此一旦控制不严很容易发生内部泄密事件,如果该机构又是作为收单行,那么被泄露的信息范围就可能不仅仅局限在该机构自身了。
下面我们再来看一下如何实现针对加密机的攻击。加密机的标准指令集中可以通过指令要求加密机产生随机分量并存储到指定的密钥索引中,那么如果有一个程序对加密机中所有的密钥索引均执行上述指令,那么原先保存的用于生产的区域密钥将全部被替换,其带来的直接后果是所有的交易将全部失败。
因此对于区域密钥的及时备份是非常重要的,在应急处理时可以使用备份密钥导入的方式来恢复原先的区域密钥。另外,对于加密机的指令集在可能的情况下尽量实现指令集定制是一个比较好的预防手段。对于直接参与到交易的加密机尽量只保留交易所必需的指令集,将管理指令尽量的缩减或取消,可以有效的防止该类攻击手段。不过该项工作需要加密机厂商同应用开发方密切配合方能实现。
目前看来,在加密机的使用过程中还是存在着一些风险和隐患的,如没有一个切实有效的指导标准是很难确保在使用过程中不出现问题的。政府监管部门、加密机厂商以及用户自身都需要认识到这些问题并重视这些问题,才能在日常使用过程中严格把关,从而避免信息安全事件的发生。
(免责申明:文中所描述的均为存在的技术可能性,并不代表笔者的鼓励或支持上。如有人利用上述可能性而触犯法律的,一切后果自负,笔者不承担任何责任)
转自:http://blog.sina.com.cn/s/blog_67118e770100l0zy.html