| 密码技术在POS安全控管中的应用 |
|
| http://www.cnfp.net 时间:2003-12-2来源:新大陆电脑股份有限公司 POS产品经理 兰书春 |
|
POS交易的安全需要 大小商户金融POS终端的普及配置,用卡环境的逐步完善,以及社会消费结算电子化的逐步实现,都使得金融POS交易的有效安全控制成为POS技术实现中必须控制的一个极其重要方面. 由于CPU卡在安全控制方面的独特设计, 如用柜员CPU卡控制POS终端机的安全交易,柜员的个人密钥及信息将被加密存放在CPU卡中,无法被盗用。
在加密过程中,密钥可以不出卡,安全级别最高,故CPU卡安全控管技术在POS应用中的推广,将大大提高POS应用的安全性。 新大陆新设计的NL8100 POS新型终端,采用专用的安全芯片,具备自毁功能,同时接收PSAM模块,用于存储金融交易的过程密钥,具有极高的保密性。为了保证对POS机具及操作员的安全管理,特别设计了操作员IC卡座,满足柜员卡的应用需要。在应用系统的设计中,柜员CPU卡用于存储POS及柜员的个人信息,签到认证密钥,生成随机数,加密传输密钥等,从而达到真正有效的安全控管。
一、 密码技术: 所谓密码技术,就是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获取真实信息的一种技术手段。判断一种加密算法是否安全,是看它的安全性是否仅仅取决于密钥的长度,而不取决于加密算法的保密。银行交易的安全控制更应该如此。因为加密算法的保密根本得不到保证,应用开发人员很容易就可以获得算法。在算法安全的情况下,唯一可行的非法解密是穷尽搜索密钥的强力攻击。因此当设计的密钥空间足够大时,加密算法才可以说是安全的。基于密钥的密码算法体制分为对称密码算法体制和非对称密码算法体制。对称密码算法加密和解密使用同样的密钥,如DES、IDEA等。非对称密码体制对信息的加解密是采用一对密钥来实现的,使用时公钥对社会公开,保密私钥。目前在电子商务中最有影响的RSA算法,能抵抗目前已知的所有密码攻击。在POS的实际应用中,可以考虑将对称密码和非对称密码结合使用,利用对称密码加密信息,采用非对称密码传输密钥。 目前在银行广泛使用的对称密钥算法DES,是一组分组密码,使用56BIT的密钥加密长度为64BIT的明文,获得长度为64BIT的密文;S-盒是DES设计的心脏,DES靠它来实现非线性变换,但许多密钥学家怀疑NSA设计S-盒时留下了陷门,使得只有他们才可以破译算法。另外,56BIT的密钥空间已经不能满足目前的加密需要,用简单的穷尽密钥攻击,很快就能破解56BIT的密钥。1997年,美国克罗拉多州的程序员Verser在Internet数万名志愿者的协同工作下,用96天就成功的找到了DES密钥;1998年7月,电子边境基金会(EFF)在56个小时内就破解了56BIT的密钥;1999年1月,电子边境基金会只用了22小时15分钟就将DES破解。故该算法已经是超期服役的密码算法。 另一种对称密钥算法IDEA,是很有希望的一个密码体制。IDEA算法的明文及密文分组都是64BIT,密钥的长度为128BIT,若用强行攻击法对付IDEA将是对付DES用同样方法的 倍。目前的技术条件下,该算法已经避免了穷尽密钥搜索攻击,同一算法既可用于加密又可用于解密,唯一不同的是解密密钥子块是从加密密钥子块的对应算法的逆运算而得到的。 该算法所依据的设计思想是“混合使用来自不同的代数群中的运算”。该算法所需要的“混乱”可通过连续使用三个“不相容”的群运算于两个16BIT子块来获得,并且该算法所选择使用的密码结构可提供必要的“扩散”,不管是密钥还是明文的每一个BIT位的变化,都可以影响密文数据近32BIT位的变化。 该算法的密码结构的选择也考虑了该密码算法的硬件和软件实现功能,通过软件程序的实现,我们明显的感觉到:IDEA算法快于DES算法。 IDEA基于可靠基础理论,虽然密码分析者能对轮数减少的变型算法进行一些分析工作,该算法仍然是安全的,即使有许多科研单位和军事部门对IDEA进行攻击,但还没有见到成功的报道。经过“混乱”运算,它的差分均匀性和线性偏差都是很好的,在第四轮后IDEA就对差分密码分析免疫了,如果还能提供一种算法来分析IDEA低抗差分密码分析及线性密码分析的能力,IDEA是很有希望的一种密码体制。
二、 POS安全控制的设计: l 交易安全控制 数据的保密性:对用户密码这一敏感数据的需要加密传输,防止除接收方之外的第三方截获密码。 数据的完整性:用MAC防止非法用户对POS交易报文的帐户、金额、交易类型、主机的应处理等内容,进行无意或恶意的假冒、篡改、删除,防止数据传送过程中信息的丢失和重复,保证交易报文完整。 数据的可鉴别性:操作员对敏感数据进行电子签名,如对交易帐号、交易金额、交易时间日期、交易终端号、交易流水号等进行有效的电子签名,为银行主机提供可靠的鉴别手段。 根据以上三个方面的安全控制原则,为保证POS密钥传输的安全,应用中我们引进双向认证的概念,也就是:在主机认证POS可靠性的同时,POS也必须认证银行主机的可靠,防止伪终端或伪主机的交易非法处理。 认证过程具体描述如下: 1)POS签到请求,提供POS ID,操作员号; 2)主机登记POS ID,并根据随机数算法生成RANDOM1; 3)POS根据随机数RANDOM1,异或POS ID,根据认证密钥生成认证码SIG1,并根据随机数算法生成RANDOM2; 4)主机校验SIG1,验证POS的合法性,生成经传输密钥加密的主密钥,根据随机数RANDOM1,异或POS ID,根据认证密钥生成认证码SIG2; 5)POS校验SIG2,验证系统主机的合法性,解密主密钥。 双向认证的随机数生成: 由于计算机本身提供的随机数算法是不科学的,产生的伪随机数并不随机,故提出随机数的生成。目的要求:作用在随机数生成函数数据的每一BIT位能量的变换能够使输出的随机数发生接近一半的BIT位的改变。 Random = des( date and time , initkey );
下载用户应用程序的安全控制: 出厂的POS机具带有一套完整的传输密钥,这一密钥在验证后可以修改,密钥主要的功能是控制用户程序的下载。验证的办法有两种:1.VERIFY(KEY);2.根据POS提供的随机数,用密钥计算DES后的值RESULT来验证,GET_POSRANDOM(),AUTHENTICATE()。第一种方法比较适合用户输密码的管理,第二种方法比较适合IC卡认证的管理。IC卡的使用密码通过后,IC卡提供认证的手段。进入下载菜单后,POS具有本地下载、远程下载、及两机通过红外对传等功能来下载客户应用程序。
三、 密钥管理 1.统一初始化POS的密钥传输密钥TKEY;

2.生成主密钥、主密钥卡,通过分散密钥产生柜员卡: KEY_tmp1 = DES( KEY_init, input1 ); KEY_tmp2 = UNDES( KEY_tmp1, input2 ); MKEY = DES( KEY_tmp2, input3 ); KEY_oper = DES( MKEY, operid ^ shopid ); 3.设计主密钥卡,主密卡在使用密码认证通过后输出经过密钥传输密钥加密过的主密钥,利用NL8100的密钥管理程序下载主密钥MKEY。 MKEY’ = DES( TKEY,MKEY); IC_verify(pin); IC_readkey(MKEY’); savekey(BANK_NO,MKEY_SLOT,MKEY’,BANK_NO,TKEY_SLOT);

4.工作密钥的下载: 利用操作员卡,根据RSA算法,产生签到报文的有效签名,通过POS的签到,获得POS交易使用的工作密钥(WKEY)的加密密文,存入POS的安全芯片。 savekey(BANK_NO,WKEY_SLOT,WKEY’,BANK_NO,MKEY_SLOT);
四、 安全性及运行成本的可行性分析 银行可采用一日一密甚至一次一密的方法增强密钥的安全。 由于采用了基于RISC技术的ARM芯片,32位的运算能力使得实现IDEA和3DES都非常快速简单;对于1024BIT的RSA算法,也可控制在1秒的时间内实现加解密过程,这在实际应用环境中是可以接受的。 通过结合几种不同的密钥算法, 可以保证POS信息传输双方的身份验证 (Authentication)和信息传输安全,实现传输信息的机密性、真实性、完整性和不可否认性(Non-repudiation)。
|
|
|