張寶燕
(晉中學(xué)院,山西 晉中 030600)
計(jì)算機(jī)技術(shù)、企業(yè)管理理念都隨著生產(chǎn)社會(huì)化的浪潮快速發(fā)展和更新,在線安全支付系統(tǒng)在這個(gè)大環(huán)境下也應(yīng)運(yùn)而生,并且正在越來(lái)越廣泛地應(yīng)用到方方面面。實(shí)現(xiàn)在線安全支付系統(tǒng),有助于將計(jì)算機(jī)技術(shù)應(yīng)用到實(shí)際的購(gòu)買活動(dòng)中,方便用戶的購(gòu)買,做到足不出戶,就能買到想要的產(chǎn)品商品;對(duì)于在線安全支付領(lǐng)域[1-3]存在的問題和潛在的問題,都能夠通過對(duì)系統(tǒng)的設(shè)計(jì)和使用體現(xiàn)出來(lái),豐富在線安全支付領(lǐng)域的研究?jī)?nèi)涵。在線安全支付系統(tǒng)的設(shè)計(jì),同時(shí)也對(duì)企業(yè)產(chǎn)生深遠(yuǎn)影響,對(duì)它們的銷售渠道在線支付方式,都是很大的改變。
網(wǎng)上購(gòu)物系統(tǒng)中一般可以分為購(gòu)買和支付兩大部分,買家通過因特網(wǎng)使用網(wǎng)銀行卡進(jìn)行網(wǎng)上購(gòu)物。其中在瀏覽商戶網(wǎng)站時(shí)需要用戶登錄驗(yàn)證身份合法性;選購(gòu)商品,放入購(gòu)物車。這些操作完成后,進(jìn)入收銀臺(tái),商戶根據(jù)購(gòu)物車內(nèi)容,生成付款單,將付款單和商戶對(duì)該付款單的數(shù)字簽名一起交消費(fèi)者確認(rèn)。一旦消費(fèi)者確認(rèn)支付,則該付款單和商戶對(duì)該付款單數(shù)字簽名將自動(dòng)轉(zhuǎn)發(fā)銀行在線支付支付平臺(tái)。對(duì)于支付部分:支付平臺(tái)用商戶在線支付簽名公鑰對(duì)付款單的商戶身份及數(shù)據(jù)一致性,以及其他的諸如數(shù)據(jù)合法性、重復(fù)在線支付記錄、日志處理記錄作為輔助商戶不可否認(rèn)的依據(jù)。支付平臺(tái)的支付頁(yè)面會(huì)對(duì)商戶在線支付請(qǐng)求進(jìn)行會(huì)話建立,密鑰協(xié)商傳輸?shù)裙ぷ鳌?/p>
在系統(tǒng)中為了防止機(jī)器人登錄網(wǎng)頁(yè)進(jìn)行頻繁非法的操作,采用了圖片驗(yàn)證技術(shù),也即是驗(yàn)證碼填寫(或者叫做附加碼),該圖片通過服務(wù)器端的驗(yàn)證碼生產(chǎn)服務(wù)程序產(chǎn)生,采用隨機(jī)函數(shù)生成驗(yàn)證碼,再通過對(duì)驗(yàn)證碼顏色、字體、大小、顯示高度等四個(gè)方面的隨機(jī)設(shè)定,最終畫成按照上述隨機(jī)要求的驗(yàn)證碼圖片,并傳輸?shù)綖g覽器上,讓用戶識(shí)別該圖片上的內(nèi)容,并填寫在<input >控件當(dāng)中。對(duì)于目前的計(jì)算機(jī)計(jì)算能力而言,總是正確的快速的自動(dòng)識(shí)別圖片中的內(nèi)容是一個(gè)復(fù)雜的運(yùn)算,機(jī)器人去做這種操作需要耗費(fèi)的資源和最終獲取到驗(yàn)證碼得到的利益不成正比。前者要遠(yuǎn)遠(yuǎn)大于后者,因此驗(yàn)證碼能夠一定程度上防止機(jī)器人的頻繁無(wú)意義訪問,而需要強(qiáng)調(diào)的是,用戶的安全性和權(quán)限,仍然要依靠密碼的復(fù)雜設(shè)置和妥善保密。這是唯一確保用戶合法權(quán)限和利益的有效保證。
方法getsFont 用于返回字體設(shè)置,包括大小顏色等。隨機(jī)產(chǎn)生各種顏色,使得數(shù)字的顏色呈現(xiàn)隨機(jī)性,增加程序通過像素點(diǎn)顏色分析圖片中文字的難度。隨機(jī)產(chǎn)生數(shù)字,讓驗(yàn)證碼產(chǎn)生多樣性,讓敵手不能找到數(shù)字產(chǎn)生的規(guī)律性,從而只能以猜測(cè)的方式獲得競(jìng)爭(zhēng)挑戰(zhàn)游戲的勝利,詳情如圖1 驗(yàn)證碼驗(yàn)證流程圖所示。
圖1 驗(yàn)證碼驗(yàn)證流程圖
本文設(shè)計(jì)采用了X.509 證書,該證書經(jīng)過了多個(gè)版本的改進(jìn)擴(kuò)展是一種商用的成熟的廣泛使用的證書系統(tǒng)。證書同樣使用了自簽名,使得證書本身不會(huì)被隨意的篡改。證書的核心部分就是證書持有者的公鑰,也包含了身份的其他信息,具體包括如下:基本信息部分:版本、認(rèn)證機(jī)構(gòu)CA、序列號(hào);簽名聲明部分:算法選取、安全參數(shù);SSL 使用者標(biāo)示;有效期:開始時(shí)間、結(jié)束時(shí)間;公鑰描述聲明部分:算法聲明、安全參數(shù)、公鑰;SSL 使用者序列號(hào);擴(kuò)展部分;簽名可選項(xiàng)集合聲明:算法列表、參數(shù)列表、加密部分[4-7]。
該證書是公鑰基礎(chǔ)設(shè)施PKI 部分的主體證書設(shè)計(jì)部分,它的設(shè)計(jì)包括了身份驗(yàn)證,加密解密傳輸,文本簽名等功能,在實(shí)際的網(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)信息的安全有效傳輸,確保信息的安全性。該證書通過可信任第三方機(jī)構(gòu)CA 機(jī)構(gòu)頒發(fā),用戶可以通過注冊(cè)購(gòu)買使用該證書。
前面已經(jīng)提到,SSL 握手和數(shù)據(jù)傳輸?shù)男阅芊治觯唧w到模塊的設(shè)計(jì)部分:
SSL 握手協(xié)議部分具體為證書交換,Gen(1k)產(chǎn)生隨機(jī)數(shù)r,具體構(gòu)造表達(dá)式如下:
加密的文本結(jié)構(gòu)表達(dá)式為:C=Encry(Bpub,(Encry(Apri,H(M)))||Encry(Bpub,M)。在在線安全支付過程中,中間會(huì)有代理服務(wù)器的存在,所以,這里客戶端和服務(wù)器之間,往往會(huì)先經(jīng)過代理服務(wù)器,把C 加密文本交給代理服務(wù)器,然后再轉(zhuǎn)交給接收方。在解密部分,接收端解密H'(M)=Decry(Apub,Decry(Bpri,C))。M'=Decry(Bpri,C2)。分別從身份驗(yàn)證和選擇性密文解密驗(yàn)證了文本的身份合法性,然后再通過測(cè)試函數(shù)比對(duì)H(M')==H'(M)。這里面M 通常為會(huì)話密鑰k=r||日期序列號(hào),例如k=r| |2014031206012。k 協(xié)商之后,開始DES 加密信息傳輸。
圖2 SSL 握手流程圖
加密信息文本結(jié)構(gòu)表達(dá)式為C2=Encry(k,H(M))| |Encry(k,M)。到解密接受端,H2'(M)=Decry(k,C)。M'=Decry(k,C2)。同樣測(cè)試H(M')==H'(M)的相等性,然后如果驗(yàn)證錯(cuò)誤的話,啟動(dòng)預(yù)警應(yīng)急功能,向?qū)Ψ教岢鼍娟P(guān)閉或者審查網(wǎng)絡(luò)連接。
這里分為了RSA 和DES 加密兩部分,散列函數(shù)是MD5算法,RSA 用于SSL 握手,DES 用于會(huì)話信息加密解密傳輸。DES 加密模塊服務(wù)于一次商戶在線支付會(huì)話當(dāng)中,其會(huì)話密鑰動(dòng)態(tài)生成,有公鑰加密體制RSA 負(fù)責(zé)傳輸該次會(huì)話密鑰。
在在線安全支付的訂單提交階段,系統(tǒng)和用戶的交互就會(huì)在建立的SSL 信道通信內(nèi)進(jìn)行。包括了SSL 建立,會(huì)話密鑰協(xié)商,在線支付信息加密傳輸,異常報(bào)警提示等功能[8-10]。
構(gòu)建SSL 公鑰證書java 存儲(chǔ)對(duì)象,且在在線支付前完成證書交換。建立SSL 安全信道,完成SSL 握手。等完成證書構(gòu)建和交換之后,開始下一步構(gòu)建RSA 加密的會(huì)話密鑰協(xié)商。
其中證書結(jié)構(gòu)如前面提到的X.509 標(biāo)準(zhǔn),包括了基本信息部分:版本、認(rèn)證機(jī)構(gòu)CA、序列號(hào);簽名聲明部分:算法選取、安全參數(shù);SSL 使用者標(biāo)示;有效期:開始時(shí)間、結(jié)束時(shí)間;公鑰描述聲明部分:算法聲明、安全參數(shù)、公鑰;SSL 使用者序列號(hào);擴(kuò)展部分;簽名可選項(xiàng)集合聲明:算法列表、參數(shù)列表、加密部分。雙方在下載對(duì)方的證書之后,知道了對(duì)方的公鑰Apub,Bpub,然后通過服務(wù)器方產(chǎn)生隨機(jī)數(shù)r 作為消息M,這里面H 散列函數(shù)就是MD5 算法,Encry 函數(shù)為RSA 加密函數(shù),這里私鑰記為Apri,Bpri。詳情見圖2 SSL 握手流程圖所示。
RSA 加密算法構(gòu)建會(huì)話密鑰,將隨機(jī)產(chǎn)生的密鑰r 通過RSA 加密模塊傳輸?shù)娇蛻舳恕?/p>
這里面RSA 大素?cái)?shù)為768 位比特的標(biāo)準(zhǔn),RSA 參數(shù)初始化過程需要產(chǎn)生兩個(gè)768 比特位的大素?cái)?shù)P,Q,其N=P* Q,M=(P-1)* (Q-1),然后隨機(jī)選取e1,使得e1和N互質(zhì);再計(jì)算在modM 運(yùn)算下,求e1的逆元e2,這樣Apub=(n,e1),Apri=(n,e2)密鑰對(duì)就產(chǎn)生了,分別記Apub為公鑰,Apri為私鑰。其過程如圖3 RSA 加密流程圖所示。
圖3 RSA 加密流程圖
在線安全支付系統(tǒng)是對(duì)傳統(tǒng)商品在線支付環(huán)境的擴(kuò)充,也是在線安全支付運(yùn)作模式的集中體現(xiàn),支付模塊,采用了RSA 公鑰加密和DES 對(duì)稱加密相結(jié)合的方式,并且用MD5算法驗(yàn)證商戶身份。通過實(shí)際的使用驗(yàn)證了該在線支付系統(tǒng)的好處。該方案能夠?yàn)樵诰€支付提供安全保障。
[1]程亮,劉輝.一種基于三因素認(rèn)證的網(wǎng)絡(luò)支付安全認(rèn)證模式[J].計(jì)算機(jī)應(yīng)用,2008(7):1810-1811.
[2]文林彬.電子商務(wù)中ssl 協(xié)議的安全性分析[J].現(xiàn)代商業(yè),2007(18):194-195.
[3]吳稟雅.國(guó)內(nèi)當(dāng)前網(wǎng)上支付方式研究[J].浙江金融,2007(5):64.
[4]何宗要,方黨生,李曉強(qiáng).基于圖像特征和公鑰密碼系統(tǒng)的易損水印算法[J].計(jì)算機(jī)應(yīng)用,2006(1):90-92.
[5]李二亮,劉云強(qiáng).淺議第三方支付平臺(tái)[J].電子商務(wù),2005(9):92-94.
[6]魏利明,陳相寧.PKI 技術(shù)分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005(3):19-21.
[7]謝琳,盧建軍.電子商務(wù)中第三方電子支付平臺(tái)分析[J].計(jì)算機(jī)應(yīng)用研究,2003(12):149-151.
[8]劉淵,周世兵,孫亞民.網(wǎng)上在線支付數(shù)字簽名的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2003(11):110-112.
[9]郭晶晶,李臘元.基于SET 協(xié)議的電子商務(wù)支付系統(tǒng)的研究[J].計(jì)算機(jī)應(yīng)用,2002(3):68-70.
[10]周龍?bào)J.電子商務(wù)協(xié)議研究綜述[J].軟件學(xué)報(bào),2001(7):1014-1031.