電子支付協議(SEPP)的開發.此前不久,Visa 和微軟組成的聯盟己經開始開發
另外壹種不同的網絡支付規範:安全交易技術(ST)。這樣便出現了壹種不幸的
局面.兩大信用卡組織Mastercard和visa.分別支持獨立的網絡支付解決方案.這
種局面持續了數月時間.在1996年1月,這些公司宜布它們將聯合開發統壹的系
統.叫做安全電子交易(SET). 1996年2月末.它們發布了兩份文件,其中第壹
份文件給出了SET協議的業務描述,而第二份文件給出了更多的技術細節。其後
經歷了壹段公眾評論期。在此期間,感興趣的各方對該規範進行了討論.並指出
了其中的不當之處。此後,發表了修改後的文件—協議描述.,它定義了產品
SET協議。SET是壹種基於消息流的協議,用來保證公***網絡上銀行卡支付交易
的安全性。在Internet支付產業中,很多重要組織都聲明將支持SET. SET在國
際上己彼大t實驗性地使用井經受了考驗,但大多致在Intemet上采晌的消費者井
沒有賓正使用SET.
支付系統安全是電子商務的關鍵.SET支持了電子商務的特殊安全需要.如:
使用加密保證購物信息和支付信息的機密性:使用數字簽名確保支付信息的完整
性;使用持卡人證書.對使用信用卡的合法性進行認證;使用商家證書.對商家
進行認證;保證各方對有關事項的不可否認性。特別地.SET保證了不會籍待卡人的信用卡號泄落給商家.
下面 對 電 子商務的交易過程進行簡單的介紹。壹個典型的墓於SET的電子商
務交易過程大體上可以用下面的壹個簡單的例子來描述:
1. 在交易之前客戶應向其金觸機構(即發行機構或付欲銀行)申請銀行帳號.
商家 也 應 該向它的金融機構(收單銀行)申請銀行帳號,並且向認證中心註
冊得 到 所 漪要的證書。
2. 持卡人通過各種方式來瀏覽商品,如可以通過瀏覽器瀏覽商家電子商務服務
器的 We b頁面上的商品目錄;或瀏覽由商家提供的存儲在CD ROM上的商
品 目錄 : 查看印刷的商品目錄,井選擇要購買的商品。
3. 持卡人選擇壹定的付欲方式,如選擇付欲卡的品牌。
4.持卡人(客戶)把完整的訂單以及付欲指令傳送給商家(付軟指令必須由合
法的 持 卡 人進行戴字簽名).
5. 商家向持卡人的金融機構請求付欲代理.
6. 商家向持卡人(客戶)發送定購確認.
7. 商家向持卡人(客戶)運送貨物或提供服務。
8. 商家從持卡人的金觸機構(付教銀行)取得貨教·
在整 個 交 易過程中SET參與了4,5 ,6 ,8 這幾個階段。在支付過程中SET
協議的參與者需要使用數字證書以證明自己的身份或交換會話密鑰。持卡者對自
己的數字證書和私鑰、信用卡號碼以及其他信息需耍進行加密存儲。它們與符合
SET協議的軟件壹起組成了壹個SET“電子錢包”。當持卡者在網上商店選中商品
並使用SET“電子錢包”付錢時,商家服務器上的軟件發報文給持卡者的瀏覽器
要求SET“電子錢包”付錢,SET“電子錢包”則與商家服務器交換“握手”消
息(包括得到商家的證書),讓持卡者確認商家被授權可以接受付欲卡付欲。同時
商家也通過類似過程來臉證持卡人的證書以驗證其使用付欲卡的合法性。臉證合
法性之後才能進行支付信息的交換。在SET協議的消息流中所有教感信息都采用
密碼技術對其機密性、完整性等進行保護,同時對消息派進行認證。為能夠實現
這些安全功能,SET使用了致字簽名、數字信封、對偶簽名(也稱雙重簽名)等.SET安全電子交易系統中,商家,CCA.MCA.發行銀行,支付網關,支付卡品牌均有壹對公開尹秘密密鑰交換密鑰和壹對公開尹秘密簽名密鑰及相應的證書。持卡人有壹對公開琳密簽名密鑰及相應的證書。除此以外,參與通信的各方均要求擁有加解密模塊、數字簽名了驗證模塊、具有密碼隨機性的隨機對稱密鑰生成器、能夠實現證書及其他安全今數的安全存貯的模塊等.它們壹起組成了SET棋組。該模型中的部分消息可能是帶外完成的,例如商家註姍、持卡人註冊及頒發證書時的部分認證過程。SE T 安全 電子交易的整個過程大體可以分為以下幾個階段:持卡人(c)註
冊,商家(M)註冊,購物請求,付欲授權,付款結算.
壹、持卡人註冊(Cardholder Registrafion)
持卡 人 C 在 實 兒電子交易之前必須先向其金勝機構(付欲銀行)註冊登記.
以便得到壹個簽名證書.在這過程中.C為了保證消息的機密性.盆要使用CCA
的密鑰交換公鑰,它是從CCA的密鑰交換證書中得到(在初始響應中由CCA發
送)。註冊的大體步異如下:
1. c向CCA發送初始請求;
2- CCA接收初始請求;
3- CCA生成響應,井對響應進行致字簽名:
4- CCA把晌應連同證書壹起發送給C;
5- C接收初始響應,井驗證CCA的證書;
6- C臉證CCA對響應的數字簽名:
7- C拍入帳號:
8- C生成註冊表請求:
9- c隨機生成對稱密鑰K二用K.對註冊表請求消息加密,K.與帳號壹起用CCA
的密 鑰 交 換公鑰加密:
10- C發送加密後的註冊表請求給CCA;
It- CCA用密祖交換私鑰解密K.和帳號,用K.解密加密的註冊表請求;
12- CC^選擇合適的註冊表.井對其進行數字簽名;
13- CCA發送註冊表及CCA的證書給C-.
14- C接收註冊表並臉證CCA的證書:
15- C臉證CCA對註冊表的效字簽名;
16- C產生壹公用秘密密鑰對和壹個秘密的用於註冊帳號隨機數R
17- C墳寫註冊表井生成註冊表請求:
18- C生成由請求、c的公開鑰和新生成的對稱密鑰K:組成的消息,並簽名;
19- C將此消息用密鑰丸加密,吮、R.與帳號壹起用CCA的密鑰交換公鑰加密:
20- C發送加密後的證書請求消息(包括加密的帳號和R,等)給CCA
21. CC人用密鑰交換私鑰解密K2、隨機數和帳號.用K,解密加密後的證書請求:
22- CCA驗證C的數字簽名:
23- CCA用帳戶信息和註冊表信息對C進行必要的臉證(SET中沒有具體規定):
24·根據驗證結果CCA生成隨機數凡,將凡、R,, C的帳號、有效期等信息的
散列 值 包 含在證書中,並簽名:
25- CCA生成證書應答(包含有加密的凡)並簽名:
26- CCA將證書應答用K:加密後發送給C;
27- C驗證CCA的證書並用K2解密消息:
28- C驗證CCA對證書的數字簽名後保留證書以及CC^產生的秘密隨機數R2
散列 函 數 作用於任愈長度的消息產生壹個具有固定長度、在統計意義上唯壹
的散列值。SET在實現數據完整性的時候,頻繁地使用散列函數。散列函數自身
井不能提供完整性,通常要把它和密鑰或者跟其他的算法結合在壹起。例如,它
和數字簽名結合在壹起、在通信雙方具有***享密鑰時跟分組密碼結合在壹起或使
用帶密鑰的散列函數等。散列函數壹般僅要求具有以下性質:故列函致的算法是
公開的:散列函數是壹個單向函數;對於特定的散列函數尋找其碰撞消息對在計
算上是不可行的.SET中默認使用的散列函數是SHA. SHA算法是NIST NSA設計的與DSS( Digitalsig natuers tandard)壹起使用的壹個敞列函數,它產生160bits
的散列值。與其 他 散 列算法類似,首先將消息填充為512bits的整數倍:先添加壹個比特
1,然後填充足夠多的零使其長度為512bits的整數倍減去64bits,最後的64bits
用於表示消息填充前的長度。
將 算 法 中的五個32bits的變量初始化: A= 0x67452301
B=Oxefcdab89。C=Ox98badcfe,D=0x10325476,E=Oxc3d2e1fO .
然後開始算法主循環,每次處理512 bits的消息。因此,主循環的次數是消息所
包含的512bits分組的數目。