交易平台基本密钥处理流程(SJL05加密机)
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
????在平時的工作中,很少接觸安全這塊內(nèi)容,最近需要自己獨立完成安全這塊內(nèi)容,在開發(fā)中遇到的問題會在下面的理解中得到相應(yīng)的解決。
????在交易平臺中,基于安全考慮會對傳輸中的報文進(jìn)行加密處理,用到最多的是MAC校驗、PIN加密。
????MAC校驗保證數(shù)據(jù)的完整性,PIN加密保證個人信息的安全性(即你輸入的密碼用PIN進(jìn)行保護(hù))。
------------------------------------------------------------------------------------------------------------------
首先需要明確三點的是:
??????? 1:除加密機(jī)之外所有看到的密鑰全是以密文形式存在。
??????? 2:當(dāng)你傳輸索引或加密機(jī)加密后的密鑰密文給加密機(jī)時,加密機(jī)會自動找到與之對就應(yīng)的密鑰明文,進(jìn)行相應(yīng)的操作(如加密或解密)
??????? 3:加密與解密操作中是應(yīng)用密鑰的明文(加密機(jī)真正計算MAC、PIN時所用的密鑰)。
前提:加密機(jī)有一頂層密鑰(LMK)(用與加密其他密鑰的密鑰),通過多人分段輸入來進(jìn)行設(shè)置。可以認(rèn)為此密鑰安全。
場景:
??????? 1)平臺則
??????????????? 1:平臺與平臺之間一般會有一個BMK(用于平臺之間進(jìn)行工作密鑰(MACKEY,PINKEY)的自動分發(fā)),受加密機(jī)LMK保護(hù)。此密鑰以索引或是通過加密機(jī)LMK加密后的密文形式出現(xiàn)在應(yīng)用數(shù)據(jù)庫中。
??????????????? 2:工作密鑰通過應(yīng)用程序發(fā)起簽到交易向服務(wù)器方獲得,服務(wù)方返回的工作密鑰是以通過BMK加密之后的密文形式出現(xiàn)。當(dāng)應(yīng)用程序接收到工作密鑰密文時,需對工作密鑰密文進(jìn)行檢驗(checkvalue)。
??????????????????????? 為進(jìn)一步保護(hù)工作密鑰,將工作密鑰由BMK加密的密文轉(zhuǎn)換成以LMK加密的密文存儲在應(yīng)用數(shù)據(jù)庫中。
??????????????? 3:應(yīng)用程序發(fā)起交易(余額查詢)根據(jù)相應(yīng)的要求,進(jìn)行MAC、PIN的組包。
????????????????????????? MAC:根據(jù)要求組MACBLOCK,傳MACKBLOCK、MAC密鑰密文 得到MAC。
????????????????????????? PIN:根據(jù)要求是否需要帳號,傳帳號、PIN密鑰密文得PIN。
??????????????? 4:程序程序做的就是計算MAC、驗證MAC、PIN轉(zhuǎn)換操作來完成報文的傳遞。
???? 2)終端測
??????????????? 1:終端與平臺之間一般會有一個TMK。
??????????????????????? TMK 與BMK的作用基本上相同,之后的處理過程相同,請參考慮平臺則說明。
-------------------------------------------------------------------------------------------------------------------
????寫的非常好的參考文件:http://www.360doc.com/content/14/0217/15/15841745_353246743.shtml???????
關(guān)于checkvalue生成與校驗:
????引用:http://www.bctest.com/wtjd-show.asp?id=2370
1)銀聯(lián)直聯(lián)終端測試中,在POS終端簽到的應(yīng)答報文中,62域是如何規(guī)定的?
????? 62域長度應(yīng)為24或40個字節(jié)。對于單倍長密鑰算法:前12個字節(jié)為PIN的工作密鑰的密文,后12個字節(jié)為MAC的工作密鑰的密文。(其中,前8個字 節(jié)是密文,后4個字節(jié)是checkvalue;用前8個字節(jié)解出的明文做key,對8個字節(jié)00做單倍長密鑰算法,取結(jié)果的前四位與checkvalue 的值比較應(yīng)該是一致的)。
????? 對于雙倍長密鑰算法:前20個字節(jié)為PIN的工作密鑰的密文,后20個字節(jié)為MAC的工作密鑰的密文。(其中,“PIN工作密鑰”前16個字節(jié)是密文,后 4個字節(jié)是checkvalue;用前16個字節(jié)解出明文做key,對8個字節(jié)00做雙倍長密鑰算法,取結(jié)果的前四位與checkvalue 的值比較應(yīng)該是一致的;“MAC工作密鑰”前8個字節(jié)是密文,再8個字節(jié)是二進(jìn)制零,后4個字節(jié)是checkvalue;用前8個字節(jié)解出明文做key, 對8個字節(jié)00做單倍長密鑰算法,取結(jié)果的前四位與checkvalue 的值比較應(yīng)該是一致的)。
????????????????????
?
轉(zhuǎn)載于:https://my.oschina.net/3pgp/blog/200485
總結(jié)
以上是生活随笔為你收集整理的交易平台基本密钥处理流程(SJL05加密机)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThinkPHP框架搭建网站
- 下一篇: java出现no XXX in java