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

    在平时的工做中,不多接触安全这块内容,最近须要本身独立完成安全这块内容,在开发中遇到的问题会在下面的理解中获得相应的解决。html

    在交易平台中,基于安全考虑会对传输中的报文进行加密处理,用到最多的是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域是如何规定的?spa

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

      对于双倍长密钥算法:前20个字节为PIN的工做密钥的密文,后20个字节为MAC的工做密钥的密文。(其中,“PIN工做密钥”前16个字节是密文,后 4个字节是checkvalue;用前16个字节解出明文作key,对8个字节00作双倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的;“MAC工做密钥”前8个字节是密文,再8个字节是二进制零,后4个字节是checkvalue;用前8个字节解出明文作key, 对8个字节00作单倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的)。索引

相关文章
相关标签/搜索