倪嘉慧
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210046)
雙重簽名與SET協(xié)議應(yīng)用分析
倪嘉慧
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210046)
隨著各種電子商務(wù)平臺的迅速崛起,網(wǎng)絡(luò)在線支付成了交易雙方重要的交易手段。由于SET協(xié)議的復(fù)雜性,從雙重簽名的詳細(xì)生成與使用驗(yàn)證入手,逐步分段剖析SET協(xié)議的流程。通過雙重簽名將消費(fèi)者的訂購信息與支付信息有效隔離,同時,將雙重簽名的方法運(yùn)用到SET協(xié)議中去,并簡要分析其安全性。
雙重簽名;SET協(xié)議;電子商務(wù);在線交易
隨著各種B2C(Business-to-Customer),C2C(Customer-to-Customer),B2B(Business-to- Business)等模式的電子商務(wù)平臺的迅速崛起,網(wǎng)絡(luò)在線支付成了交易雙方重要的交易手段。在帶來便利的同時,其引發(fā)的安全問題也隨之而來,因此,擁有一款貫穿交易始終的安全性協(xié)議顯得尤為重要。因此,SET協(xié)議隨之產(chǎn)生了,由Mastercard與VISA聯(lián)合其他公司共同推出,在B2C上的安全電子交易協(xié)議。其中包含了消費(fèi)者、商家、發(fā)卡銀行、收單銀行、支付網(wǎng)關(guān)以及認(rèn)證中心CA這幾大要素[1]。
在網(wǎng)銀、支付寶等支付平臺上,SET協(xié)議可以起到很好的安全保障,在我國雖然SET協(xié)議使用較少,未得到廣泛的普及,使得SSL與SET并存,安全性得不到保障。在SET協(xié)議中,雙重簽名其中的重要一環(huán),因此,本文主要通過從分析雙重簽名入手,逐步探討至SET協(xié)議的具體流程,并分析其安全性。
在網(wǎng)絡(luò)支付環(huán)境下,消費(fèi)者需要將訂購信息與支付信息分別給到商家與銀行,而又不希望商家能得到支付信息,也不希望銀行能得到訂購信息。在這里雙重簽名就很好地隔離了這兩種信息。同時,商家與銀行也可以驗(yàn)證訂購信息與支付信息是否是一致的,這樣就可以知道傳輸過程中信息是否篡改。如圖1所示,那么雙重簽名的生成算法如下:
(1)消費(fèi)者將訂購信息與支付信息分別通過HASH算法生成兩個摘要1和2;(2)將這兩個摘要進(jìn)行連接再次進(jìn)行HASH算法可以得到摘要3;(3)最后通過使用消費(fèi)者的私鑰對摘要3進(jìn)行加密得到雙重簽名(在之后的SET協(xié)議中會頻繁使用)。
圖 1 雙重簽名生成
那么,雙重簽名生成了以后又是如何來進(jìn)行使用與驗(yàn)證的,這里給出其具體流程:
簽名配送如圖2所示。
(1)消費(fèi)者將訂購信息、支付信息的摘要2、雙重簽名一同發(fā)給商家,并等待其驗(yàn)證。
(2)消費(fèi)者將支付信息、訂購信息的摘要1、雙重簽名一同發(fā)給銀行,并等待其驗(yàn)證。
圖 2 雙重簽名配送
簽名驗(yàn)證如圖3—4所示。
(1)對于商家而言,商家擁有消費(fèi)者的公鑰,因此可以解開雙重簽名,得到摘要3,商家同時將訂購信息進(jìn)行HASH運(yùn)算,所得摘要與摘要2連接再次進(jìn)行HASH運(yùn)算,將結(jié)果與之前解出的摘要3比較,相同則認(rèn)為真實(shí),反之丟棄。
(2)同樣對于銀行而言,銀行也擁有消費(fèi)者的公鑰,因此可以解開雙重簽名,得到摘要3,銀行同時將支付信息進(jìn)行HASH運(yùn)算,所得摘要與摘要1連接再次進(jìn)行HASH運(yùn)算,將結(jié)果與之前解出的摘要3比較,相同則認(rèn)為真實(shí),反之丟棄。
這樣就完成了驗(yàn)證的過程,當(dāng)然運(yùn)用在SET協(xié)議中還會更為復(fù)雜,之后分析會給出。
圖3 商家驗(yàn)證雙重簽名
圖4 銀行驗(yàn)證雙重簽名
從上述流程中可以看到,雙重簽名中包含了非對稱加密算法,多次的HASH算法等過程,從而將訂購信息與支付信息在傳遞給目標(biāo)的同時,能夠抵御未知的風(fēng)險(xiǎn)(不被他人竊?。?。
上述雙重簽名的最好例子就是SET協(xié)議。1997年,VISA與Mastercard兩大信用卡公司聯(lián)合其他公司推出了安全電子交易協(xié)議(SET)。從而解決消費(fèi)者、商家與銀行之間的信用交易問題,將所有信息在Internet上加密安全傳輸,保證數(shù)據(jù)不被他人竊取,將訂購信息與支付信息隔離開來,并對交易涉及的多方進(jìn)行身份認(rèn)證,并且保證訂購與支付過程中的保密性與完整性。
而在SET協(xié)議中涉及的多方認(rèn)證中,參與者的含義分別如下:
消費(fèi)者:在網(wǎng)站上購物的一方;商家:符合SET協(xié)議的網(wǎng)上商店;發(fā)卡銀行:消費(fèi)者的信用卡所屬銀行;收單銀行:商家的開戶銀行;支付網(wǎng)關(guān):連接內(nèi)網(wǎng)與Internet,傳遞付款信息;認(rèn)證中心:為消費(fèi)者、商家、銀行、支付網(wǎng)關(guān)提供身份認(rèn)證服務(wù)[2]。
為了更清晰地說明SET協(xié)議的流程,將整個流程分為4個部分:(1)消費(fèi)者將訂購信息給商家;(2)消費(fèi)者將支付信息給支付網(wǎng)關(guān);(3)支付網(wǎng)關(guān)將支付應(yīng)答給商家;(4)商家將購物應(yīng)答給用戶。
2.1 消費(fèi)者將訂購信息給商家
用消費(fèi)者協(xié)商并向商家初始化請求交易環(huán)境;商家產(chǎn)生應(yīng)答,同時對應(yīng)答進(jìn)行數(shù)字簽名,連同商家數(shù)字證書與支付網(wǎng)關(guān)數(shù)字證書一同發(fā)給消費(fèi)者;消費(fèi)者驗(yàn)證商家數(shù)字證書與支付網(wǎng)關(guān)數(shù)字證書,把收到的應(yīng)答進(jìn)行HASH運(yùn)算,用商家的公鑰解開數(shù)字簽名,將兩者對比,相同則信息真實(shí),可以進(jìn)行進(jìn)一步的交易,反之丟棄。
消費(fèi)者將訂購信息與支付信息進(jìn)行雙重簽名,隨機(jī)生成密鑰K1加密支付信息,隨機(jī)生成密鑰K2加密訂購信息,使用支付網(wǎng)關(guān)的公鑰加密K1,使用商家的公鑰加密K2。
于是這里就產(chǎn)生了兩個包,一個的最終目的地是商家(雙重簽名、支付信息摘要、加密的訂購信息、加密的K2、消費(fèi)者數(shù)字證書),另一個的最終目的地是支付網(wǎng)關(guān)(雙重簽名、訂購信息摘要、加密的支付信息、加密的K1、消費(fèi)者數(shù)字證書),消費(fèi)者將兩個包均發(fā)送給商家。商家認(rèn)證第一個包中的用戶數(shù)字證書,使用消費(fèi)者公鑰解開雙重簽名,商家用私鑰解出K2,從而可以得到訂購信息,使用之前講過的雙重簽名的驗(yàn)證可以驗(yàn)證真實(shí)性。然后是消費(fèi)者將支付信息給支付網(wǎng)關(guān)。雖然表面上是消費(fèi)者將支付信息給支付網(wǎng)關(guān)的,但是,實(shí)際上的間接通過商家傳遞的。商家認(rèn)證第一個包以后,向支付網(wǎng)關(guān)發(fā)出支付請求,并且對支付請求進(jìn)行數(shù)字簽名,使用隨機(jī)生成的密鑰K3對支付請求加密,再用支付網(wǎng)關(guān)的公鑰加密K3,連同之前第二個包與商家的數(shù)字證書發(fā)送給支付網(wǎng)關(guān)。支付網(wǎng)關(guān)收到信息后,首先認(rèn)證商家的數(shù)字證書,通過后使用私鑰解出K3,使用商家公鑰解開數(shù)字簽名,與生成的支付請求摘要對比,以此認(rèn)證商家發(fā)送信息的真實(shí)性。接下來,支付網(wǎng)關(guān)可以驗(yàn)證商家轉(zhuǎn)發(fā)的包了,驗(yàn)證其中的消費(fèi)者的數(shù)字證書后,用私鑰可以解出K1,使用K1獲得支付信息,繼續(xù)使用雙重簽名的驗(yàn)證方法可判斷真實(shí)性。
2.2 支付網(wǎng)關(guān)將支付應(yīng)答給商家
在這一步之前,支付網(wǎng)關(guān)得到了支付信息后會將其發(fā)送給收單銀行,而這期間的過程與SET協(xié)議無關(guān)因此不加贅述。收單銀行會返回一個支付應(yīng)答信息。支付網(wǎng)關(guān)對支付應(yīng)答信息進(jìn)行數(shù)字簽名,并且使用隨機(jī)密鑰K4進(jìn)行加密支付應(yīng)答信息,然后使用商家的公鑰將K4加密,將上述信息連同支付網(wǎng)關(guān)的數(shù)字證書一同傳送給商家。商家驗(yàn)證數(shù)字證書,用私鑰解開K4,可以得到支付應(yīng)答,這樣商家可以確認(rèn)支付完成交易成功,可以開始發(fā)貨了。但是,消費(fèi)者完全不知道什么情況,因此商家會發(fā)送一個訂購應(yīng)答給消費(fèi)者。
2.3 商家將購物應(yīng)答給用戶
商家將訂購應(yīng)答,對這一應(yīng)答進(jìn)行數(shù)字簽名,將二者連同商家的數(shù)字證書一起發(fā)給消費(fèi)者。消費(fèi)者驗(yàn)證商家的數(shù)字證書,使用商家的公鑰解開數(shù)字簽名,對訂購應(yīng)答生成摘要,進(jìn)行比較,相同則信息真實(shí),交易成功[3]。
從上面的SET流程可以看出,幾乎每次的信息傳遞都要經(jīng)過數(shù)字證書的認(rèn)證,數(shù)字簽名,其中還用到了大量的對稱加密,非對稱加密,如此下來,速度收到極大的限制。
當(dāng)商家收到了支付網(wǎng)關(guān)發(fā)過來的支付應(yīng)答以后,商家是知道消費(fèi)者支付成功了,因此當(dāng)其拒絕發(fā)貨的時候,就產(chǎn)生了問題,消費(fèi)者收不到訂購應(yīng)答,交易失敗,消費(fèi)者就得不到保障。歸根到底這一原因是,消費(fèi)者的支付過程是始終經(jīng)過商家的,商家總會有可能來進(jìn)行攻擊的,這樣安全性就失效了。
因此,當(dāng)有另一方平臺出現(xiàn)的時候,作為收單銀行與發(fā)卡銀行間的可信過渡方的時候,現(xiàn)將金額暫存可信過渡方,當(dāng)消費(fèi)者確認(rèn)收貨的時候,再將金額轉(zhuǎn)入收單銀行,如此才交易成功。
互聯(lián)網(wǎng)技術(shù)發(fā)展也伴隨著危險(xiǎn)性的提升,越來越多新技術(shù)的出現(xiàn),同時也有越來越多的攻擊手段的誕生。沒有最可靠的協(xié)議,只有相對可靠的協(xié)議,本文仔細(xì)闡述了雙重簽名與SET協(xié)議的具體流程,使得該協(xié)議更為清晰明了,也從一定角度說明了其局限性,歸根到底,該協(xié)議始終是對傳統(tǒng)方式的提升。
[1]張世永.網(wǎng)絡(luò)安全原理與應(yīng)用[M].北京:科學(xué)出版社,2004.
[2]任莉莉,歐玨.基于SET協(xié)議的網(wǎng)上支付安全探討[J ].華北科技學(xué)院學(xué)報(bào),2009(2):80-83.
[3]趙躍民.SET協(xié)議交易流程詳解[J].山西經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2010(1):79-81.
Analysis on application of double signature and SET protocol
Ni Jiahui
(Computer Science School of Nanjing University of Posts and Telecommunications, Nanjing 210046, China)
With the rapid rise of e-commerce platform, online payment has become an important means of transaction between the two sides. Due to the complexity of SET protocol, the process of SET protocol is analyzed step by step from the detail generation and verification of double signature. Through the double signature, the consumer’s order information and the payment information are separated effectively. At the same time, the double signature method is applied to the SET protocol. Finally its security is analyzed briefy.
double signature; set protocol; electronic commerce; online trading
倪嘉慧(1995— ),男,江蘇蘇州。