無線支付終端全報(bào)文加密

隨著無線支付終端的應(yīng)用越來越廣泛,機(jī)具使用數(shù)量越來越大,安全問題成為人們?nèi)找骊P(guān)注的焦點(diǎn)。為此我們利用對稱密鑰加密算法,提供了針對“終端到后端系統(tǒng)”間敏感數(shù)據(jù)全程加密的方案,保證交易數(shù)據(jù)在無線通訊過程中極難被破解、偽造;同時(shí)提供加密密鑰在線更新同步的方案,進(jìn)一步提高了安全性。

一、無線支付終端與系統(tǒng)簡介

1、無線支付終端簡要介紹

無線支付終端配有IC卡卡槽、磁條卡刷卡器。并內(nèi)置密碼鍵盤。通過機(jī)身上的液晶屏可以選擇業(yè)務(wù)進(jìn)行各項(xiàng)交易,并可以通過話筒進(jìn)行無線通話,其外觀如圖1所示。

1

2、無線支付系統(tǒng)架構(gòu)圖

無線支付系統(tǒng)架構(gòu)如圖2所示,無線支付端發(fā)出交易報(bào)文后,通過移動運(yùn)營商網(wǎng)絡(luò)和APM專線,最后到達(dá)銀行內(nèi)部的無線接入平臺。本支就是針對終端與無線接入平臺之間的通訊報(bào)文逆行加密。

1

3、數(shù)據(jù)交互流程簡介

數(shù)據(jù)交互流程如圖3所示,原先的支付終端對密碼Personal ldentification Number (PIN) Da—ta、銀行卡磁道信息進(jìn)行加密,并計(jì)算消息鑒別碼(M essage Authentication Code,簡稱MAC),其他數(shù)據(jù)如金額、用戶手機(jī)號等敏感數(shù)據(jù)都沒有加密。

1

二、加密算法選擇

算法選擇主要針對對稱與非對稱加密算法。對這兩種算法進(jìn)行比較(見表1),選擇適合自己的算法。

1

綜上所述,考慮支付終端普遍采用的是嵌入式硬件配置,若采用非對稱算法將大大影響交易速度,特別是一些需要終端與系統(tǒng)進(jìn)行多次交互的交易將嚴(yán)重超出用戶忍耐等待時(shí)間,無法滿足實(shí)際需求。因此從用戶體驗(yàn)角度出發(fā),本文選擇對稱加密算法來對數(shù)據(jù)進(jìn)行加密。

本方案中,加密密鑰采用單倍長密鑰DES加密算法。實(shí)際應(yīng)用中可根據(jù)終端的硬件配置考慮使用雙倍長3DES加密算法。

三、密鑰管理

1、初始密鑰管理

對稱密鑰存放在無線支付終端和無線接入耳臺中,雙方互為加密方和解密方。終端出廠時(shí)與平臺約定,固化一套(三把)初始密鑰,每個(gè)密鑰翻有自己的密鑰ID,是密鑰的唯一索引。初始密鈔可取值如表2所示。

1

同樣地,無線接入平臺在第一次上線時(shí)也要輸入以上三把初始密鑰,與終端保持一致。

2、更新密鑰管理

在終端方,除了初始密鑰,后續(xù)的新密鑰都是由無線接入平臺在線更新的方式導(dǎo)入終端保存。在平臺方,需要密鑰更新時(shí),需要兩位管理員背靠背輸入兩個(gè)1 6字節(jié)分量,,平臺對兩個(gè)分量進(jìn)行異或運(yùn)算生成根密鑰,同時(shí)生成該密鑰索引號(ID)。異或算法如下:

1

例如:兩個(gè)分量分別為:313A33E435C637D8、388736753F33F231,進(jìn)行異或后得到:

1

根密鑰(M的就是:098D05910AF5C5E9。

(注:密鑰索引號(ID)為唯一索引,不允許重復(fù))

管理員一次可輸入多把密鑰。輸入完成后,需指定3把密鑰作為當(dāng)前平臺使用的密鑰組。比如:平臺已有ID為1、2、3的三把密鑰,管理員新輸入了4、5兩把密鑰。此時(shí)管理員可以指定3、4、5三把密鑰為當(dāng)前使用的密鑰組。

四、密鑰使用

1、密鑰選擇

交易都是由終端主動發(fā)起。終端發(fā)起交易時(shí),平臺會下發(fā)建鏈請求報(bào)文,并指定這筆交易的全報(bào)文加密密鑰ID(從平臺當(dāng)前使用的密鑰組中隨機(jī)選擇一把)。終端收到后,后續(xù)報(bào)文都使用這把密鑰對交易報(bào)文進(jìn)行加密。

2、臨時(shí)工作密鑰

為了保證終端每次交易使用的密鑰都不相同,需要生成臨時(shí)工作密鑰。生成方式如下:如果是正常交易流程,由終端當(dāng)前交易使用的全插文加密密鑰對平臺下發(fā)的建鏈請求報(bào)文中的同步隨機(jī)數(shù)進(jìn)行DES加密生成;如果是密鑰更新流程,由密鑰更新請求報(bào)文中的同步隨機(jī)數(shù)進(jìn)行DES加密生成。其中,同步隨機(jī)數(shù)為4字節(jié),加密時(shí)茬補(bǔ)4個(gè)OxFF。每次交易會話只生成一次臨時(shí)作密鑰,交易結(jié)束時(shí)清除。

例如:

1)根密鑰為098D05910AF5C5E9,隨機(jī)數(shù)為BF31948A;

2)將隨機(jī)數(shù)進(jìn)行補(bǔ)位,得到BF31948AF-FFFFFFF;

3)用根密鑰對其進(jìn)行DES加密,可得OE16689D2078288E,這就是當(dāng)筆交易的臨時(shí)工作密鑰。

3、加密數(shù)據(jù)域

所有交易報(bào)文、密鑰更新報(bào)文,整包均會進(jìn)行加密。

五、全報(bào)文加密流程

全報(bào)文加密流程如圖4所示。

1

1)終端發(fā)起交易,與接入平臺建立socket連接;

2)無線接入平臺從當(dāng)前使用的密鑰組中隨便選擇一把密鑰ID作為此次會話的通訊密鑰,并生成同步隨機(jī)數(shù),并計(jì)算出臨時(shí)工作密鑰,同時(shí)將密鑰ID、同步隨機(jī)數(shù)組成建鏈請求報(bào)文并發(fā)送到終端;

3)終端讀取密鑰ID,并根據(jù)同步隨機(jī)數(shù)計(jì)算出臨時(shí)工作密鑰。用臨時(shí)工作密鑰加密建鏈響應(yīng)報(bào)文后,發(fā)送給無線接入平臺;

4)無線接入平臺用臨時(shí)工作密鑰解密報(bào)文,把數(shù)據(jù)發(fā)送給支付前置系統(tǒng);

5)收到前置系統(tǒng)應(yīng)答后,用臨時(shí)工作密鑰加密報(bào)文,并發(fā)送給終端;

6)終端收到報(bào)文后,用臨時(shí)工作密鑰解密,并顯示交易結(jié)果。

六、密鑰更新流程

密鑰更新是在交易發(fā)起時(shí)進(jìn)行的。若無線接入平臺發(fā)現(xiàn)終端使用的密鑰組與平臺當(dāng)前使用的密鑰組ID不匹配,則自動發(fā)起密鑰更新。

全報(bào)文加密密鑰更新流程如圖5所示。

1

1)終端發(fā)起交易,與接入平臺建立socket連接;

2)無線接入平臺從當(dāng)前使用的密鑰組中隨機(jī)選擇一把密鑰ID作為此次會話的通訊密鑰,并生成同步隨機(jī)數(shù),計(jì)算出臨時(shí)工作密鑰,同時(shí)將密鑰ID、同步隨機(jī)數(shù)組成建鏈請求報(bào)文并發(fā)送給終端;

3)終端發(fā)現(xiàn)該密鑰ID不存在,選擇終端中現(xiàn)存的一把密鑰加密報(bào)文,并返回該密鑰ID;

4)平臺發(fā)現(xiàn)請求與響應(yīng)報(bào)文中的密鑰ID號不同,因此發(fā)起密鑰更新,將平臺當(dāng)前使用的密鑰組及其ID用終端現(xiàn)存的其中一把密鑰進(jìn)行加密;

5)終端根據(jù)報(bào)文更新密鑰;

6)更新成功后,重新發(fā)起交易。

小知識之報(bào)文

報(bào)文(message)是網(wǎng)絡(luò)中交換與傳輸?shù)臄?shù)據(jù)單元,即站點(diǎn)一次性要發(fā)送的數(shù)據(jù)塊。報(bào)文包含了將要發(fā)送的完整的數(shù)據(jù)信息,其長短很不一致,長度不限且可變。