1. 程式人生 > >pos機開發相關

pos機開發相關

打算做pos機的開發:

先了解相關的知識點:

DUKPT(devider unique key per Transation):一種安全的祕鑰管理技術:

保證每次交易使用唯一祕鑰(不可逆轉)

要求:收單行+ 終端必須同步支援該技術。

金鑰 =  基礎金鑰 (BDK) + KSN   他倆一起裝入加密模組

KSN 組成:

1.金鑰標識10位【基礎派生金鑰標識9位+子金鑰標識1位】

2.裝置標識5位【最後一個二進位制位給3使用】

3.交易計數器5位【即二進位制的20位,但是他佔用了裝置標識的一個二進位制位,所以其實是21位】

8583協議:基於ISO8583報文國際標準的包格式的通訊協議

8583報文 = 點陣圖 【8583的靈魂】+ 欄位域

點陣圖:打包,解包,確定欄位域的關鍵替代

欄位域:最多由128個欄位域組成,每個欄位域都有統一規定,並且有定長變長之分

=================================有關資料加密======================================

資料加密演算法(DEA):是一種對稱加密演算法,可能是使用最廣泛的金鑰系統,特別是在保護金融的安全中。

最初開發的DEA是嵌入硬體的,如自動取款機(ATM),他來自IBM

資料加密標準(DES):傳統的密碼加密都是由古代的迴圈移位思想而來,恩尼格瑪機在整個基礎之上進行擴散模糊,

但是本質原理是一樣的。現代DES在二進位制級別做這同樣的事:替代模糊,增加分析的難度。 

加密原理:DES使用一個56位的金鑰+8位奇偶校驗位=64位的分組大小,這是一個迭代的分組密碼,使用Feistel的技術:

具體:1.對加密的文字塊分成兩半,

2.使用子金鑰對其中一半應用迴圈功能

3.將2中的輸出與另一半進行異或運算

4.接著交換新的這兩半

5.迴圈上面的1--4的過程,切記最後一次不交換

DES使用16輪迴圈,使用異或,置換,代換,移位操作四種基本運算。

DES加密演算法加密模式:

使用塊加密前需要指定它使用的模式。

這個模式定義了Clipher如何應用加密演算法。

改變模式可以容許一個【塊加密程式】--->【流加密程式】

塊加密演算法:每次加密一個數據分組,這個分組位數可以隨意(一般選擇64或者128位)

流加密演算法:每次加密或解密一個位元組的資料,這使它比流加密的應用程式更加有用。

1.ECB(電碼本)

最簡單的模式,同樣的明文分組加密成---->相同的密文分組

優點:這對於傳送單一的塊資料來說是非常好的,如金鑰

缺點:

1.對執行一個加密的資訊流來說不是很好,因為如果相同的明文多次傳送以後,同樣的密文也會被多次傳送。

2。對每一個塊用相同的方式進行加密。

如果我們的金鑰或者資料不斷髮生變化,ECB是完全安全的

但是如果類似的塊經過同樣的金鑰加密發出以後,攻擊者可能獲得一些我們並不想讓別人知道的資訊

2.CBC(密碼分組連結)需要IV

CBC模式改變了加密方式【使用前一分組的資訊加密當前分組】,同樣的明文分組不一定加密或解密同樣的密文塊
優點:解決了ECB存在的主要問題 缺點:相同的資訊仍然加密成相同的密文,因為所有的分組是同時變成密文分組的

解決:引入一個Initialization Vector(初始化向量),

IV僅僅是一個初始化加密程式的隨機數。它無需祕密儲存,但對每一個資訊來說它都是不同的

通過這個方式,即使有兩條相同的資訊,只要他們有不同的IV,那麼他們加密後的密文也是不同的

CBC很適合文字傳輸,但它每一次都需要傳送一個完整的資料塊,一般選8個字元。


3.CFB(Cipher FeedBack:密碼反饋)需要IV

工作方式與CBC類似,但它可以執行更小的資料塊,典型的有8位

適合加密像聊天對話這樣的資訊,因為每次可以傳送單一的位元組資料塊。

和CBC一樣,CFB也需要一個IV,且相同及鑰傳送的每條資訊的IV都必須是唯一的。

4.OFB(Output FeedBack:輸出反饋)需要IV

和CFB類似 優點:傳輸中能給資料提供更好的保護,防止資料丟失外 密文中一位出錯,也只造成明文中的一位出錯,其他的方式會造成整個塊丟失

====================================有關加密機知識=============================================

1.1 加密機型號(加密機提供加密服務)

江南計算機研究所(56所):

SJL06E(江南卡友)

SJL06T(江南卡友)

SJL22(江南歌盟)

衛士通訊息產業股份有限公司(30所

SJL05

1.2 通訊方式:

應用軟體通過TCP方式呼叫加密機服務

1.3 在銀行業具體應用:金鑰管理,PIN保護,訊息完整性控制,具體內容:

a,產生隨機金鑰供 終端通訊使用,並列印

b.產生隨機工作金鑰,並用本地主金鑰

c.驗證接受的工作金鑰轉換為本地主金鑰,加密保護

d.根據明文PIN生成指定格式的密文PINBLOCK;

e。轉換PINBLOCK

f,校驗MAC

g,生成MAC

h.解密明文PIN:

i.CV V & CVN的校驗

三層金鑰體系:

銀行業使用標準ANSI x9.17,為三層金鑰體系,對不同金鑰(特別是工作金鑰)的功能做了嚴格的使用限制,

專鑰專用


第一層:本地主金鑰【加密機】(LMK):採用雙倍標準的3DES金鑰(128位),存放在硬體加密機內,

作用:將所有本地存放其他金鑰加密資料加密,

第二層:傳輸主金鑰銀行(BMK   TMK  ZMK):金鑰加密金鑰(金鑰交換金鑰)

作用:加密在通訊線路上需要傳遞的工作金鑰。

在本地或共享網路中,不同的通訊網點使用不同金鑰加密金鑰,實現金鑰分工管理

它在本地存放時,處於本地MK加密之下或直接儲存在硬體加密機中。

第三層:工作金鑰 (資料加密金鑰)= 

完整性金鑰(MAK)+

PIN保護金鑰(PIK)+

終端金鑰(TMK=TPK+TAK)

作用:加密不同的資料。實現資料保密、資訊認證,數字簽名

這些資料金鑰在本地存放時,處於BMK的加密之下或者直接儲存在硬體加密機中

名詞解釋:

本地主金鑰(local Master key  --LMK)加密機 主金鑰,儲存在加密機中,保護儲存在加密機外的各種金鑰和關鍵資料的金鑰加密金鑰

傳輸主金鑰(Transfer Master Key ---TMK):兩臺加密裝置間(加密機和加密機 、加密機和終端)用於加密保護工作金鑰的更換

同屬型別的有:ZMK,TMK,BMK

工作金鑰(Working Key):處理物件為一般資料的金鑰。

同屬型別有:TAK  TPK  ZAK ZPK


2.3演算法體系

國內金融加密機 加密演算法遵循以下兩個加密體系:雷卡體系 、金卡體系

雷卡體系:使用ZMK的指令集模式對外發布使用方法,

LMK加密之下,由應用本地存放。

具體:通過向加密機提交密文ZMK(進LMK加密後的)運算完成

金卡體系:使用加密索引的API模式對外發布使用方法,

它的BMK存放於加密機中,通過索引訪問

具體:1.密碼機產生一個128bits,192bits的隨機數作為指定的銀行主金鑰,

  2.把1中主金鑰儲存在密碼機內,並用主金鑰加密後返回給主機