您的位置:首页 > 其它

交易平台基本密钥处理流程(SJL05加密机)

2014-07-28 17:14 211 查看
摘要: MAC,PIN,磁道密钥

在平时的工作中,很少接触安全这块内容,最近需要自己独立完成安全这块内容,在开发中遇到的问题会在下面的理解中得到相应的解决。

在交易平台中,基于安全考虑会对传输中的报文进行加密处理,用到最多的是MAC校验、PIN加密。
MAC校验保证数据的完整性,PIN加密保证个人信息的安全性(即你输入的密码用PIN进行保护)。
------------------------------------------------------------------------------------------------------------------
首先需要明确三点的是:
1:除加密机之外所有看到的密钥全是以密文形式存在。
2:当你传输索引或加密机加密后的密钥密文给加密机时,加密机会自动找到与之对就应的密钥明文,进行相应的操作(如加密或解密)
3:加密与解密操作中是应用密钥的明文(加密机真正计算MAC、PIN时所用的密钥)。
前提:加密机有一顶层密钥(LMK)(用与加密其他密钥的密钥),通过多人分段输入来进行设置。可以认为此密钥安全。
场景:
1)平台则
1:平台与平台之间一般会有一个BMK(用于平台之间进行工作密钥(MACKEY,PINKEY)的自动分发),受加密机LMK保护。此密钥以索引或是通过加密机LMK加密后的密文形式出现在应用数据库中。
2:工作密钥通过应用程序发起签到交易向服务器方获得,服务方返回的工作密钥是以通过BMK加密之后的密文形式出现。当应用程序接收到工作密钥密文时,需对工作密钥密文进行检验(checkvalue)。
为进一步保护工作密钥,将工作密钥由BMK加密的密文转换成以LMK加密的密文存储在应用数据库中。
3:应用程序发起交易(余额查询)根据相应的要求,进行MAC、PIN的组包。
MAC:根据要求组MACBLOCK,传MACKBLOCK、MAC密钥密文 得到MAC。
PIN:根据要求是否需要帐号,传帐号、PIN密钥密文得PIN。
4:程序程序做的就是计算MAC、验证MAC、PIN转换操作来完成报文的传递。

2)终端测
1:终端与平台之间一般会有一个TMK。
TMK 与BMK的作用基本上相同,之后的处理过程相同,请参考虑平台则说明。

-------------------------------------------------------------------------------------------------------------------

写的非常好的参考文件:http://www.360doc.com/content/14/0217/15/15841745_353246743.shtml

关于checkvalue生成与校验:

引用:http://www.bctest.com/wtjd-show.asp?id=2370

1)银联直联终端测试中,在POS终端签到的应答报文中,62域是如何规定的?

62域长度应为24或40个字节。对于单倍长密钥算法:前12个字节为PIN的工作密钥的密文,后12个字节为MAC的工作密钥的密文。(其中,前8个字 节是密文,后4个字节是checkvalue;用前8个字节解出的明文做key,对8个字节00做单倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的)。

对于双倍长密钥算法:前20个字节为PIN的工作密钥的密文,后20个字节为MAC的工作密钥的密文。(其中,“PIN工作密钥”前16个字节是密文,后 4个字节是checkvalue;用前16个字节解出明文做key,对8个字节00做双倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的;“MAC工作密钥”前8个字节是密文,再8个字节是二进制零,后4个字节是checkvalue;用前8个字节解出明文做key, 对8个字节00做单倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: