陳衛(wèi)民
(湖南城市學(xué)院網(wǎng)絡(luò)信息中心,湖南益陽(yáng) 413000)
隨著信息技術(shù)的不斷發(fā)展和互聯(lián)網(wǎng)運(yùn)用的日益普及,電子商務(wù)正在各行各業(yè)得到越來(lái)越廣泛的應(yīng)用.受電子商務(wù)發(fā)展的有力拉動(dòng),我國(guó)個(gè)人網(wǎng)上支付的市場(chǎng)規(guī)模發(fā)展迅速.《2005年中國(guó)網(wǎng)上支付研究報(bào)告》數(shù)據(jù)顯示,2001年中國(guó)網(wǎng)上支付的市場(chǎng)規(guī)模為9億元,2004年該規(guī)模增長(zhǎng)為75億元,年均復(fù)合增長(zhǎng)率(CAGR)為102.7%.
然而,作為電子商務(wù)最核心、最關(guān)鍵的環(huán)節(jié)——網(wǎng)上支付卻存在不少問(wèn)題.在中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)公布的一份報(bào)告中,用戶對(duì)“目前網(wǎng)上購(gòu)物最大的問(wèn)題”的回答結(jié)果是:認(rèn)為網(wǎng)上支付安全得不到保障的占36.5%,認(rèn)為產(chǎn)品質(zhì)量、售后服務(wù)及廠商信譽(yù)得不到保證的占27.6%,而認(rèn)為付款不方便和送貨不及時(shí)的分別占17.79%和9.39%,這說(shuō)明,網(wǎng)上支付的安全性是人們最關(guān)心的問(wèn)題.所以,構(gòu)建安全的網(wǎng)上支付系統(tǒng),是促進(jìn)電子商務(wù)健康發(fā)展的一個(gè)重要課題.
網(wǎng)上支付是指以計(jì)算機(jī)及網(wǎng)絡(luò)為手段,將負(fù)載有特定信息的電子數(shù)據(jù)取代傳統(tǒng)的支付工具用于資金流轉(zhuǎn),并具有實(shí)時(shí)支付效力的支付方式.網(wǎng)上支付作為新的網(wǎng)絡(luò)交易支付方式,它的應(yīng)用和發(fā)展給傳統(tǒng)支付模式帶來(lái)了很大的沖擊和挑戰(zhàn).目前網(wǎng)上支付主要有兩種基本模式,一種是銀行辦理的支付業(yè)務(wù),即網(wǎng)上銀行;另一種是由第三方支付平臺(tái)辦理的支付業(yè)務(wù),如“支付寶”.[1]
對(duì)于網(wǎng)上支付,當(dāng)前的主流方式是通過(guò)銀行卡(包括信用卡、借記卡和支付卡等)這種支付工具,通過(guò)瀏覽器輸入必要的支付認(rèn)證信息,經(jīng)發(fā)卡行認(rèn)證授權(quán)后扣款完成在線支付.現(xiàn)階段網(wǎng)上支付的安全問(wèn)題主要存在以下方面:
①支付密碼泄漏.目前記錄鍵盤(pán)操作功能的木馬比比皆是,通過(guò)記錄下用戶輸入的密碼口令,將它們發(fā)送給木馬制作者,木馬制作者就可以輕易地冒充持卡人通過(guò)互聯(lián)網(wǎng)進(jìn)行消費(fèi),給持卡人帶來(lái)?yè)p失.
②支付數(shù)據(jù)被篡改.在缺乏必要的安全防范措施情況下,攻擊者可以通過(guò)修改互聯(lián)網(wǎng)傳輸中的支付數(shù)據(jù),譬如,修改付款銀行卡號(hào)、修改支付金額、修改收款人賬號(hào)等,達(dá)到謀利的目的.
③平臺(tái)系統(tǒng)安全性.來(lái)自互聯(lián)網(wǎng)的各類(lèi)攻擊、病毒及入侵將對(duì)網(wǎng)上在線支付系統(tǒng)的可用性帶來(lái)巨大威脅和侵害.同時(shí),如何對(duì)大量的金融信息資產(chǎn)進(jìn)行有效的管理,使不同程度的信息資產(chǎn)都能得到不同級(jí)別的安全保護(hù),將是金融信息系統(tǒng)安全管理面臨的巨大挑戰(zhàn).[2-3]
以中國(guó)工商銀行為例,其網(wǎng)上支付系統(tǒng)流程如圖1所示:
(1)客戶在商戶網(wǎng)站瀏覽商品信息,簽訂訂單;商戶按照銀行提供的接口要求形成提交數(shù)據(jù)表單;客戶確認(rèn)支付后,提交此表單到銀行.
(2)銀行接收此筆訂單,對(duì)訂單信息和商戶信息進(jìn)行檢查,并根據(jù)客戶輸入的交易卡號(hào)和其它相關(guān)信息,校驗(yàn)后進(jìn)行支付處理.
(3)銀行將處理結(jié)果提交到商戶網(wǎng)站,或者直接顯示交易結(jié)果給客戶.
圖1 中國(guó)工商銀行網(wǎng)上支付處理流程
目前,WEB開(kāi)發(fā)平臺(tái)有很多,如:ASP、ASP.NET、JSP、PHP等,這里我們選用ASP.NET.
ASP.NET是2002年由微軟公司推出的新一代Web應(yīng)用程序開(kāi)發(fā)平臺(tái),它是一個(gè)已編譯的、基于.NET的開(kāi)發(fā)環(huán)境,提供了生成企業(yè)級(jí)應(yīng)用程序所必需的全部服務(wù),可以使用任何與公共語(yǔ)言運(yùn)行庫(kù) (CLR)兼容的語(yǔ)言 (包括Visual Basic.NET、C#和JScript.NET)來(lái)創(chuàng)建應(yīng)用程序.目前最高版本是ASP4.0,開(kāi)發(fā)環(huán)境是Visual Studio 2010.
與其它的WEB開(kāi)發(fā)技術(shù)相比,ASP.NET提供的WEB頁(yè)面級(jí)狀態(tài)管理功能、服務(wù)器控件觸發(fā)事件的工作模式、代碼和內(nèi)容分離的編程方式等,在一定程度上改變了以往的WEB應(yīng)用系統(tǒng)的架構(gòu)模式.ASP.net的優(yōu)勢(shì)在于:執(zhí)行效率的大幅提高、世界級(jí)的工具支持、強(qiáng)大性和適應(yīng)性、簡(jiǎn)單性和易學(xué)性、高效可管理性、多處理器環(huán)境的可靠性、自定義性和可擴(kuò)展性、安全性、開(kāi)發(fā)的效率比較高.[4]
2.3.1 安全技術(shù)策略
(1)數(shù)據(jù)加密.數(shù)據(jù)加密通過(guò)一定的加密算法,利用密鑰 (Secret keys)來(lái)對(duì)敏感信息進(jìn)行加密,然后把加密好的數(shù)據(jù)和密鑰通過(guò)安全方式發(fā)送給接收者,接收者可利用同樣的算法和傳遞過(guò)來(lái)的密鑰對(duì)數(shù)據(jù)進(jìn)行解密,從而獲取敏感信息并保證網(wǎng)絡(luò)數(shù)據(jù)的機(jī)密性.
(2)數(shù)字簽名.數(shù)字簽名的主要方式是:報(bào)文的發(fā)送方從報(bào)文文本中生成一個(gè)散列值 (或報(bào)文摘要),發(fā)送方用自己的私鑰對(duì)這個(gè)散列值進(jìn)行加密來(lái)形成發(fā)送方的數(shù)據(jù)簽名.然后,將這個(gè)數(shù)據(jù)簽名作為報(bào)文的附件和報(bào)文一起發(fā)送給報(bào)文的接收方.報(bào)文的接收方首先從接收到的原始報(bào)文中計(jì)算出散列值 (或報(bào)文摘要),接著再用發(fā)送方的公鑰來(lái)對(duì)報(bào)文附加的數(shù)字簽名進(jìn)行解密.如果兩個(gè)散列值相同,那么接收方就能確認(rèn)該數(shù)字簽名是發(fā)送方的.通過(guò)數(shù)字簽名能夠?qū)崿F(xiàn)對(duì)原始報(bào)文完整性的鑒別和不可抵賴性.
(3)安全協(xié)議.比較有代表性的電子支付安全協(xié)議有SSL(安全槽層)和SET(安全電子交易規(guī)范).其中,SSL協(xié)議只有商家對(duì)客戶的認(rèn)證,缺少客戶對(duì)商家的認(rèn)證,客戶資料的安全性容易受到威脅.而SET協(xié)議在保留對(duì)客戶信用卡認(rèn)證的前提下,又增加了對(duì)商家身份的認(rèn)證,已成為實(shí)際上的工業(yè)技術(shù)標(biāo)準(zhǔn).[5-7]
2.3.2 具體實(shí)現(xiàn)代碼
(1)提交銀行數(shù)據(jù)
①原始訂單數(shù)據(jù)
string src=“〈?xml version=‘1.0’encoding=‘G BK’standalone= ‘no’?〉〈B2CReq〉〈interfaceName〉”+interfaceName+ “〈/interfaceName〉〈interfaceVersion〉”+interfaceVersion+ “〈/interfaceVersion〉”;src=src+“〈orderInfo〉〈orderDate〉” +orderDate+ “〈/orderDate〉〈curType〉”+curType+ “〈/curType〉〈merID〉”+merID+“〈/merID〉 〈subOrderInfoList〉 〈subOrderInfo〉〈orderid〉” +orderid+ “〈/orderid〉〈amount〉” +amount+ “〈/amount〉〈installmentTimes〉1〈/installmentTimes〉〈merAcct〉” +merAcct+ “〈/merAcct〉 〈goodsID〉” +goodsID+“〈/goodsID〉 〈goodsName〉”+goodsName+“〈/goodsName〉 〈goodsNum〉” +goodsNum+“〈/goodsNum〉〈carriageAmt〉〈/carriageAmt〉〈/subOrderInfo〉〈/subOrderInfoList〉〈/orderInfo〉”;
src=src+“〈custom〉 〈verifyJoinFlag〉0〈/verifyJoinFlag〉〈Language〉ZH-CN〈/Language〉”+ “〈/custom〉 〈message〉 〈creditType〉2〈/creditType〉〈notifyType〉HS〈/notifyType〉 〈resultType〉1〈/resultType〉 〈merReference〉www.yy.cn〈/merReference〉〈merCustomIp〉 〈/merCustomIp〉 〈goodsType〉1〈/goodsType〉 〈merCustomID〉 〈/merCustomID〉〈merCustomPhone〉〈/merCustomPhone〉〈goodsAddress〉”+userAddress+ “〈/goodsAddress〉〈merOrderRemark〉〈/merOrderRemark〉〈merHint〉〈/merHint〉〈remark1〉〈/remark1〉 〈remark2〉 〈/remark2〉 〈merURL〉http://www.yy.cn/bank.aspx〈/merURL〉〈merVAR〉〈/merVAR〉〈/message〉〈/B2CReq〉”;
②數(shù)字簽名
ICBCEBANKUTILLib.B2CUtilClass ICBC = new ICBCEBANKUTILLib.B2CUtilClass();
int a=ICBC.init(“E:/ebb2cpublic.crt”, “E:/klg0215cs.crt”,“E:/klg0215cs.key”,“12345678”);
string merSignMsg1=ICBC.signC(src,src.Length);
merSignMsg=merSignMsg1;
merCert=ICBC.getCert(1);
③數(shù)據(jù)加密
byte[]byte1=encoding.GetBytes(src);
tranData = Convert.ToBase64String (byte1, 0,byte1.Length);
④數(shù)據(jù)傳輸
https://b2c.icbc.com.cn/servlet/ICBCINBSEBusinessServlet
(2)銀行處理結(jié)果
①獲取返回?cái)?shù)據(jù)
merVAR=Request.QueryString[“merVAR”];
notifyData=Request.QueryString[“notifyData”];
signMsg=Request.QueryString[“signMsg”];
②數(shù)據(jù)解密
byte[]c=Convert.FromBase64String(notifyData);
string str-BaseOut=Encoding.GetEncoding(936).GetString(c);
notifyData=str-BaseOut;
③數(shù)據(jù)驗(yàn)簽
ICBCEBANKUTILLib.B2CUtilClass ICBC = new ICBCEBANKUTILLib.B2CUtilClass();int a=ICBC.init(“E:/ebb2cpublic.crt”, “E:/klg0215cs.crt”, “E:/klg0215cs.key”, “12345678”);int b=ICBC.verifySignC( str-BaseOut, str-BaseOut.Length, signMsg,signMsg.Length);
網(wǎng)上支付是電子商務(wù)活動(dòng)中最核心、最復(fù)雜的環(huán)節(jié),也是電子商務(wù)得以進(jìn)行的基礎(chǔ)條件.本文分析了目前網(wǎng)上支付存在的安全問(wèn)題,并給出了工商銀行網(wǎng)上支付系統(tǒng)的實(shí)現(xiàn)方案,希望能有助于網(wǎng)上支付系統(tǒng)的開(kāi)發(fā),進(jìn)而促進(jìn)電子商務(wù)的發(fā)展.
[1]李春燕.我國(guó)電子商務(wù)網(wǎng)上支付的探討 [J].電子商務(wù),2010,(01):50-52.
[2]彭銀香,白貞武.電子商務(wù)安全問(wèn)題及措施研究 [J].大眾科技,2005,(11):162-163.
[3]李峰.電子商務(wù)中的安全技術(shù)淺析 [J].電子商務(wù),2001,(2).
[4]NET簡(jiǎn)介 [EB/OL].http://wenku.baidu.com/view/2aa 595d5b14e852458fb577c.html.
[5]夏露.電子商務(wù)在線支付問(wèn)題研究 [J].學(xué)術(shù)論壇,2001,(5):55-57.
[6]楊恩寧.第三方電子商務(wù)支付平臺(tái)的構(gòu)建 [EB/OL].http://imfo. feno. cn/2007/130204/c000094942. shtml.2007-11-26.
[7]徐敏.我國(guó)電子商務(wù)網(wǎng)上支付的現(xiàn)狀分析 [J].濰坊高等職業(yè)教育,2009,(3):69-73.