摘 要:在安全電子交易的前提下,分析目前流行的SET標(biāo)準(zhǔn)協(xié)議,指出SET協(xié)議在電子交易過程中的缺陷。針對(duì)手機(jī)支付自身的特點(diǎn),將簡(jiǎn)化的SET協(xié)議框架應(yīng)用于手機(jī)支付系統(tǒng)的設(shè)計(jì),提出手機(jī)小額支付與轉(zhuǎn)帳支付2種支付形式,并分析這2種支付形式的安全性與有效性。這2種支付形式滿足了手機(jī)支付的安全性、實(shí)時(shí)性、便捷性等要求。
關(guān)鍵詞:SET協(xié)議;手機(jī)支付;數(shù)字簽名;電子商務(wù)
中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004-373X(2008)02-116-03
Design of Mobile Payment Based on Simplified SET Protocol
SUN Xiaohan1,JIANG Jianguo2
(1.Weinan Teachers University,Weinan,714000,China;2.Xidian University,Xi′an,710071,China)
Abstract:Based on electronic transaction security,this paper analyzes the SET standard protocol which is popular at present and points out the disadvantages of SET protocol in process of electronic transaction.Based on the properties of mobile payment,simplified SET protocol frame is applied to the design of mobile payment.The two patterns of payment of little quantity mobile payment and account transfer mobile payment are proposed and their security and efficiency are also analyzed.The two patterns of payment satisfied security,real-time and convenience of mobile payment.
Keywords:SET protocol;mobile payment;digital signature;E-business
隨著手機(jī)的普及和無線運(yùn)營(yíng)商業(yè)務(wù)能力的增強(qiáng),直接利用手機(jī)進(jìn)行支付或利用手機(jī)進(jìn)行銀行轉(zhuǎn)帳成為一種電子商務(wù)支付形式。手機(jī)支付涉及消費(fèi)者、商家、無線運(yùn)營(yíng)商和銀行4方實(shí)體。消費(fèi)者通過語(yǔ)音或短信息方式發(fā)出各項(xiàng)指令,并以短信息等方式得到交易結(jié)果通知。由于手機(jī)通信時(shí)的安全性問題,本文基于SET協(xié)議框架并加以簡(jiǎn)化和變形,取消SET協(xié)議中的CA認(rèn)證中心和支付網(wǎng)關(guān),由無線運(yùn)營(yíng)商實(shí)現(xiàn)CA認(rèn)證中心和支付網(wǎng)關(guān)的功能,從而實(shí)現(xiàn)安全的手機(jī)支付。
1 SET協(xié)議簡(jiǎn)介
1.1 SET協(xié)議工作原理
SET協(xié)議包括5個(gè)實(shí)體:用戶、商家、發(fā)卡行、CA認(rèn)證中心、支付網(wǎng)關(guān)。其工作原理如圖1所示。
1.2 SET協(xié)議交易流程
SET協(xié)議交易流程為:
(1) 用戶在發(fā)卡行開戶,獲得信用卡;
(2) 用戶在網(wǎng)上購(gòu)物,驗(yàn)證商家的商家證書、網(wǎng)關(guān)證書,并向商家發(fā)出包含支付指令的購(gòu)物請(qǐng)求;
(3) 商家接收用戶的購(gòu)物請(qǐng)求,驗(yàn)證用戶證書,并將用戶的支付指令轉(zhuǎn)送支付網(wǎng)關(guān);
(4) 支付網(wǎng)關(guān)根據(jù)支付指令,通過金融網(wǎng)向發(fā)卡行驗(yàn)證用戶賬戶余額,完成支付授權(quán);
(5) 商家得到支付網(wǎng)關(guān)的響應(yīng),獲取支付令牌并發(fā)貨;
(6) 商家定期使用支付令牌向支付網(wǎng)關(guān)請(qǐng)求完成銀行轉(zhuǎn)帳;
(7) 銀行得到商家的轉(zhuǎn)帳請(qǐng)求,驗(yàn)證通過支付令牌,實(shí)現(xiàn)銀行轉(zhuǎn)帳。
1.3 SET協(xié)議在手機(jī)支付中存在的問題
SET協(xié)議在手機(jī)支付中存在的問題為:
(1) SET協(xié)議交易流程過于復(fù)雜,難以在消費(fèi)者手機(jī)端快速實(shí)現(xiàn);
(2) SET協(xié)議只支持信用卡消費(fèi);
(3) SET協(xié)議涉及實(shí)體較多且每一方均需驗(yàn)證與其聯(lián)系的他方證書,手機(jī)實(shí)現(xiàn)時(shí)難以協(xié)調(diào);
(4) SET協(xié)議傳輸?shù)膱?bào)文消息過于復(fù)雜,手機(jī)的快速驗(yàn)證和傳輸實(shí)現(xiàn)困難。
2 通過無線運(yùn)營(yíng)商直接實(shí)現(xiàn)小額支付
2.1 手機(jī)小額支付系統(tǒng)的設(shè)計(jì)模型及描述
消費(fèi)者通過手機(jī)向商家發(fā)出購(gòu)物請(qǐng)求,若購(gòu)物金額數(shù)目不多,消費(fèi)者可以直接通過無線運(yùn)營(yíng)商從預(yù)存話費(fèi)中進(jìn)行支付。本系統(tǒng)的設(shè)計(jì)主要涉及3方實(shí)體:消費(fèi)者、無線運(yùn)營(yíng)商和商家。銀行僅在無線運(yùn)營(yíng)商進(jìn)行預(yù)存話費(fèi)轉(zhuǎn)帳時(shí)涉及其中。整個(gè)交易流程如圖2所示。
[HT5”K][JZ]圖2 小額手機(jī)支付交易流程[HT10.]
2.2 手機(jī)小額支付系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
2.2.1 各方實(shí)體的初始設(shè)置
(1)無線運(yùn)營(yíng)商的初始設(shè)置
無線運(yùn)營(yíng)商的身份標(biāo)識(shí)IDt、無線運(yùn)營(yíng)商的公私鑰對(duì)(Ut,Rt),其中身份標(biāo)識(shí)IDt和無線運(yùn)營(yíng)商的公鑰Ut公開。
(2)商家的初始設(shè)置
商家的身份標(biāo)識(shí)IDs、商家的公私鑰對(duì)(Us,Rs),其中身份標(biāo)識(shí)IDs和商家的公鑰Us公開。
(3)消費(fèi)者的初始設(shè)置
消費(fèi)者的身份標(biāo)識(shí)IDc、消費(fèi)者與無線運(yùn)營(yíng)商之間通信公私鑰對(duì)(Uc,Rc)。其中消費(fèi)者的身份標(biāo)識(shí)IDc、公鑰Uc和消費(fèi)者電話號(hào)碼記錄在無線運(yùn)營(yíng)商數(shù)據(jù)庫(kù)中。
(4)銀行的初始設(shè)置
銀行的身份標(biāo)識(shí)IDb、銀行的公私鑰對(duì)(Ub,Rb),其中身份標(biāo)識(shí)IDb和銀行的公鑰Ub公開。
2.2.2 交易流程實(shí)現(xiàn)
(1) 消費(fèi)者生成購(gòu)物請(qǐng)求OI,包括欲購(gòu)商品名稱、欲購(gòu)商品數(shù)量、本次購(gòu)買所需金額;此外還需指定交易序列碼num及生成本次交易的會(huì)話密鑰key。消費(fèi)者將OI、用Key加密的(OI+IDc+num)和用商家公鑰Us加密的Key,即OI+Ekey(OI+IDc+num)+Kus(key)一起發(fā)送給商家。
(2) 消費(fèi)者生成付款指令PI,包括本次購(gòu)買所需金額和商家身份標(biāo)識(shí)IDs。消費(fèi)者用與無線運(yùn)營(yíng)商之間通信的私鑰Rc加密PI,即KRc(PI+num),并將PI+ KRc(PI+num)發(fā)送給無線運(yùn)營(yíng)商。
(3) 商家開啟消費(fèi)者發(fā)送的購(gòu)物請(qǐng)求,利用自己的私鑰Rs解密出本次交易的對(duì)稱密碼key,并用key解密出OI,IDc和num,比較解密出的OI與未經(jīng)加密的OI是否一致,若不一致則交易到此結(jié)束;若一致則商家生成付款請(qǐng)求GI,包括本次購(gòu)買所需金額、消費(fèi)者身份標(biāo)識(shí)IDc、本次交易序列碼num、自己的銀行帳戶。商家用自己的私鑰Rs加密GI,即KRs(GI),再用無線運(yùn)營(yíng)商的公鑰Ut加密GI和KRs(GI),即Kut(GI+KRs(GI)),并將其發(fā)送給無線運(yùn)營(yíng)商。
(4) 無線運(yùn)營(yíng)商開啟消費(fèi)者發(fā)來的指令。無線運(yùn)營(yíng)商根據(jù)消費(fèi)者電話號(hào)碼查找到消費(fèi)者身份標(biāo)識(shí)IDc和公鑰Uc,用Uc解密出PI和交易序列碼num,比較解密出的PI和未經(jīng)加密的PI是否一致,若不一致則交易到此結(jié)束;若一致則查看消費(fèi)者剩余話費(fèi)是否足夠支付本次交易,若不夠則交易到此結(jié)束,否則開啟商家發(fā)來的請(qǐng)求。無線運(yùn)營(yíng)商用自己的私鑰Rt解密商家發(fā)來的請(qǐng)求,得到GI,再根據(jù)消費(fèi)者發(fā)來的商家的身份標(biāo)識(shí)查找到商家的公鑰Us,再用Us解密也得到GI,比較兩次得到的GI是否一致,若不一致則交易到此結(jié)束;若一致再比較根據(jù)消費(fèi)者電話號(hào)碼查到消費(fèi)者身份標(biāo)識(shí)IDc與商家包含在GI中的IDc是否一致;比較消費(fèi)者發(fā)來的交易序列號(hào)與商家發(fā)來的交易序列號(hào)是否一致;若2項(xiàng)中有任意一項(xiàng)不一致則交易到此結(jié)束,若一致則無線運(yùn)營(yíng)商根據(jù)商家的銀行帳戶向相應(yīng)銀行發(fā)出轉(zhuǎn)帳指令。
(5) 銀行收到轉(zhuǎn)帳指令后實(shí)現(xiàn)轉(zhuǎn)帳,將轉(zhuǎn)帳成功的響應(yīng)VI用銀行私鑰Rb加密,即KRb(VI1),并將VI1+ KRb(VI1)發(fā)送給無線運(yùn)營(yíng)商。
(6) 無線運(yùn)營(yíng)商用銀行公鑰Ub解密,驗(yàn)證銀行的簽名,并將VI1+ KRb(VI1)轉(zhuǎn)發(fā)給商家。
(7) 無線運(yùn)營(yíng)商生成交易成功指令VI2,并用自己的私鑰Rt和消費(fèi)者公鑰Uc加密VI2,即Kuc(VI2+KRt(VI2)),將其發(fā)送給消費(fèi)者。
(8) 商家收到無線運(yùn)營(yíng)商轉(zhuǎn)發(fā)的轉(zhuǎn)帳成功響應(yīng),驗(yàn)證銀行簽名的合法性后,支付消費(fèi)者商品,并保留交易記錄。
(9) 消費(fèi)者收到無線運(yùn)營(yíng)商的交易成功指令后,驗(yàn)證無線運(yùn)營(yíng)商的簽名,保留記錄并等待商家的商品。
3 通過無線運(yùn)營(yíng)商和銀行實(shí)現(xiàn)轉(zhuǎn)帳支付
3.1 手機(jī)轉(zhuǎn)帳支付系統(tǒng)的設(shè)計(jì)模型及描述
消費(fèi)者通過手機(jī)向商家發(fā)出購(gòu)物請(qǐng)求,若購(gòu)物金額數(shù)目較大,預(yù)存話費(fèi)不足以支付,此時(shí)消費(fèi)者可以通過無線運(yùn)營(yíng)商從銀行進(jìn)行轉(zhuǎn)帳支付。本系統(tǒng)的設(shè)計(jì)涉及4方實(shí)體:消費(fèi)者、無線運(yùn)營(yíng)商、商家和銀行。整個(gè)交易流程如圖3所示。
3.2 手機(jī)轉(zhuǎn)帳支付系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)
3.2.1 各方實(shí)體的初始設(shè)置
(1) 無線運(yùn)營(yíng)商、商家和銀行的初始設(shè)置同上。
(2) 消費(fèi)者的初始設(shè)置:消費(fèi)者的身份標(biāo)識(shí)IDc、消費(fèi)者與無線運(yùn)營(yíng)商之間通信公私鑰對(duì)(Uc1,Rc1)。其中消費(fèi)者的身份標(biāo)識(shí)IDc、公鑰Uc和消費(fèi)者電話號(hào)碼記錄在無線運(yùn)營(yíng)商數(shù)據(jù)庫(kù)中。消費(fèi)者與銀行之間通信的公私鑰對(duì)(Uc2,Rc2),其中消費(fèi)者的身份標(biāo)識(shí)IDc、公鑰Uc2,銀行帳戶記錄在銀行數(shù)據(jù)庫(kù)中。
(3) 商家轉(zhuǎn)帳銀行的身份標(biāo)識(shí)IDb2。
3.2.2 交易流程實(shí)現(xiàn)
(1) 消費(fèi)者生成購(gòu)物請(qǐng)求OI,包括欲購(gòu)商品名稱、欲購(gòu)商品數(shù)量、本次購(gòu)買所需金額;指定交易序列碼num;生成本次交易的會(huì)話密鑰key。消費(fèi)者將OI+Ekey(OI+IDc+num)+Kus(key)發(fā)送給商家。
(2) 消費(fèi)者生成付款指令PI,包括交易序列碼num、商家身份標(biāo)識(shí)IDs和消費(fèi)者轉(zhuǎn)帳銀行身份標(biāo)識(shí)IDb1。并用轉(zhuǎn)帳銀行的公鑰Ub加密自己的轉(zhuǎn)帳帳戶,即KUb(消費(fèi)者帳戶+本次交易所需金額),將Kut(PI+ KRc(PI+num)+KUb(消費(fèi)者帳戶+本次交易所需金額))發(fā)送給無線運(yùn)營(yíng)商。
(3) 商家開啟消費(fèi)者發(fā)送來的購(gòu)物請(qǐng)求,驗(yàn)證消費(fèi)者請(qǐng)求未被篡改。商家生成付款請(qǐng)求GI,包括交易序列碼num、消費(fèi)者身份標(biāo)識(shí)IDc和本次交易所需金額。商家轉(zhuǎn)帳銀行身份標(biāo)識(shí)IDb2。用轉(zhuǎn)帳銀行的公鑰Ub2加密自己的轉(zhuǎn)帳帳戶,即KUb2(商家?guī)簦?,將KUt(GI+KRs(GI)+ IDb2+商家?guī)簦┌l(fā)送給無線運(yùn)營(yíng)商。
(4) 無線運(yùn)營(yíng)商開啟消費(fèi)者發(fā)來的指令,用自己的私鑰Rt解密,驗(yàn)證消費(fèi)者簽名的合法性;開啟商家發(fā)來的請(qǐng)求,用自己的私鑰Rt解密,驗(yàn)證商家簽名的合法性;若消費(fèi)者和商家的簽名均合法,則比較二者發(fā)來的交易序列號(hào)和本次交易所需金額是否一致,若均一致則無線運(yùn)營(yíng)商根據(jù)消費(fèi)者的銀行身份標(biāo)識(shí)向相應(yīng)銀行發(fā)出轉(zhuǎn)帳指令CI,包括商家身份標(biāo)識(shí)IDs、商家轉(zhuǎn)帳銀行身份標(biāo)識(shí)IDb2和商家?guī)簟Ub(消費(fèi)者帳戶+本次交易所需金額+num)+ KUb( IDt+KRt(IDt )+CI)發(fā)送給銀行。
(5) 銀行開啟運(yùn)營(yíng)商發(fā)來的指令,用自己的私鑰Rb解密,驗(yàn)證商家簽名的合法性,根據(jù)消費(fèi)者帳戶查找到消費(fèi)者的身份標(biāo)識(shí)和公鑰,檢查消費(fèi)者帳戶余額是否足以支付本次交易,若帳戶余額足夠則銀行生成核實(shí)轉(zhuǎn)帳指令EI,包括IDs、本次交易所需金額和num。將KUc(IDb+ KRb(IDb)+EI)發(fā)送給消費(fèi)者。
(6) 消費(fèi)者開啟銀行發(fā)來的指令,驗(yàn)證銀行簽名的合法性及交易內(nèi)容的準(zhǔn)確性,向銀行發(fā)出同意轉(zhuǎn)帳的指令A(yù)I,包括本次交易所需金額和num。將KUb(IDc+ KRb(IDc)+AI)發(fā)送給銀行。
(7) 銀行開啟消費(fèi)者發(fā)來的指令,驗(yàn)證消費(fèi)者簽名的合法性,根據(jù)消費(fèi)者帳戶和商家?guī)魧?shí)現(xiàn)轉(zhuǎn)帳,并給無線運(yùn)營(yíng)商發(fā)出轉(zhuǎn)帳成功響應(yīng)VI1,將VI1+ KRb(VI1)發(fā)送給無線運(yùn)營(yíng)商。
(8) 無線運(yùn)營(yíng)商用銀行公鑰Ub解密,驗(yàn)證銀行的簽名,并生成交易成功指令VI2,將 KUt(VI2+KRs(VI2))發(fā)送給商家。
(9) 無線運(yùn)營(yíng)商將VI1+ KRb(VI1)轉(zhuǎn)發(fā)給轉(zhuǎn)發(fā)給消費(fèi)者。
(10) 商家收到無線運(yùn)營(yíng)商交易成功指令,驗(yàn)證無線運(yùn)營(yíng)商簽名的合法性后,支付消費(fèi)者商品,并保留交易記錄。
(11) 消費(fèi)者收到無線運(yùn)營(yíng)商轉(zhuǎn)發(fā)的交易成功響應(yīng)后,驗(yàn)證銀行的簽名,保留記錄并等待商家的商品。
4 安全性和有效性分析
4.1 安全性分析
(1) 無論是小額支付系統(tǒng)還是轉(zhuǎn)帳支付系統(tǒng)均使用RSA加密算法,該算法的安全性是基于大數(shù)的素?cái)?shù)分解的困難性。
(2) 在消費(fèi)者與商家通信時(shí)使用會(huì)話密鑰key,但該密鑰只使用1次,以后不再使用。
(3) 交易序列碼由消費(fèi)者指定,無線運(yùn)營(yíng)商可以根據(jù)消費(fèi)者發(fā)送的交易序列碼與商家發(fā)送的交易序列碼的一致性,防止商家重復(fù)消費(fèi)。
(4) 轉(zhuǎn)帳支付系統(tǒng)中消費(fèi)者的帳戶是用銀行的公鑰加密的,無線運(yùn)營(yíng)商不能得知消費(fèi)者帳戶。
(5) 轉(zhuǎn)帳支付系統(tǒng)中銀行在實(shí)現(xiàn)轉(zhuǎn)帳之前會(huì)向消費(fèi)者發(fā)出核實(shí)命令,消費(fèi)者可以防止商家或無線運(yùn)營(yíng)商的欺詐行為。
(6) 消費(fèi)者和商家都保留交易成功的記錄,做為日后出現(xiàn)問題時(shí)核實(shí)的證據(jù)。
(7) 轉(zhuǎn)帳支付系統(tǒng)中消費(fèi)者的手機(jī)號(hào)與銀行帳號(hào)不進(jìn)行綁定,原因是消費(fèi)者可能會(huì)更換手機(jī)號(hào)碼。
4.2 有效性分析
(1) 小額支付系統(tǒng)中消費(fèi)者端需進(jìn)行4次RSA的加解密算法,轉(zhuǎn)帳支付系統(tǒng)中消費(fèi)者端需進(jìn)行7次RSA的加解密算法。雖然每進(jìn)行1次RSA算法都檢驗(yàn)時(shí)有一定的耗時(shí),但每次都是用無線運(yùn)營(yíng)商、銀行及消費(fèi)者自己的公私鑰進(jìn)行的,可以將這些算法固化在硬件中,其運(yùn)算速度會(huì)大大提高。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。