覃如賢
西南科技大學應用技術學院 四川 621000
為了保障電子商務安全性,人們制定了各種安全協議,來規范在 Internet上的商務活動流程。典型的電子商務安全協議有SSL和SET。
SSL協議是基于 Web應用的安全協議,該協議向基于TCP/IP的客戶/服務器應用程序提供客戶端和服務器的鑒別、數據完整性及信息機密性等安全措施。通過在應用程序進行數據交換前交換SSL初始握手信息,來實現安全性審查。在SSL握手信息中采用了DES、MD5等加密技術來實現機密性和數據完整性,并采用X.509的數字證書實現鑒別。
SSL提供如下安全服務:
秘密性。SSL客戶機和服務器之間通過密碼算法和密鑰的協商,建立起安全通道。以后在安全通道中傳輸的所有信息都經過加密處理,網絡中的非法竊聽者所獲取的信息都將是無意義的密文。
完整性。SSL利用密碼算法和hash函數,通過對傳輸信息特征值的提取來保證信息的完整性,確保要傳輸的信息全部到達目的地,可避免服務器和客戶機間的信息內容被破壞。
認證性。利用證書技術和可信的第三方 CA,可讓客戶機和服務器相互識別對方身份。為驗證證書持有者是合法用戶,SSL要求證書持有者在握手時相互交換數字證書,通過驗證來保證對方身份合法。
SSL分為兩層,一是握手層,二是記錄層。SSL握手協議描述建立安全連接的過程,在客戶和服務器傳送應用層數據之前,完成諸如加密算法和會話密鑰的確定,通信雙方的身份驗證等功能;SSL記錄協議定義了數據傳送的格式,上層數據包括SSL握手協議建立安全連接時所需傳送的數據都通過 SSL記錄協議再往下層傳送。這樣,應用層通過 SSL協議把數據傳給傳輸層時,已是被加密后的數據,此時TCP/IP協議只需負責將其可靠地傳送到目的地,彌補了TCP/IP協議安全性較差的弱點。
SSL標準解決以下幾個問題:
客戶對服務器的身份確認:SSL服務器允許客戶的瀏覽器,使用標準的公鑰加密技術和一些可靠的認證中心(CA)的證書,來確認服務器的合法性(檢驗服務器的證書和ID的合法性)。對于用戶服務器身份的確認與否是非常重要的,因為客戶可能向服務器發送自己的信用卡密碼。
服務器對客戶的身份確認:容許SSL服務器確認客戶的身份,SSL協議容許客戶服務器的軟件通過公鑰技術和可信賴的證書,來確認客戶的身份(客戶的證書 client’s certificate)。
建立起服務器和客戶之間安全的數據通道:SSL要求客戶和服務器之間的所有的發送數據都被發送端加密,所有的接收數據都被接收端解密,這樣才能提供一個高水平的安全保證。同時SSL協議會在傳輸過程中解查數據是否被中途修改。
SSL協議存在的缺點:
(1)系統不符合中國國務院最新頒布的《商用密碼管理條例》中對商用密碼產品不得使用國外密碼算法的規定,要通過國家密碼管理委員會的審批會遇到相當困難。
(2)系統安全性差。SSL協議的數據安全性其實就是建立在RSA等算法的安全性上,因此從本質上來講,攻破RSA等算法就等同于攻破此協議。由于美國政府的出口限制,使得進入我國的實現了SSL的產品(Web瀏覽器和服務器)均只能提供512比特RSA公鑰、40比特對稱密鑰的加密。
但總的來講,SSL協議的安全性能是好的,而且隨著SSL協議的不斷改進,更多的安全性能好的加密算法被采用,邏輯上的缺陷被彌補,SSL協議的安全性能會不斷加強。
(1)瀏覽器發送一個連接請求給安全服務器。
(2)服務器將自己的證書,以及同證書相關的信息發送給客戶瀏覽器。
(3)客戶瀏覽器檢查服務器送過來的證書是否是由自己信賴的CA中心所簽發的。如果是,就繼續執行協議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的,詢問客戶是否需要繼續。
(4)接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與服務器剛剛發送的相關消息是否一致,如果是一致的,客戶瀏覽器認可這個服務器的合法身份。
(5)服務器要求客戶發送客戶自己的證書。收到后,服務器驗證客戶的證書,如果沒有通過驗證,拒絕連接;如果通過驗證,服務器獲得用戶的公鑰。
(6)客戶瀏覽器告訴服務器自己所能夠支持的通訊對稱密碼方案。
(7)服務器從客戶送發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密后通知瀏覽器。
(8)瀏覽器針對這個密碼方案,選擇一個通話密鑰,接著用服務器的公鑰加過密后發送給服務器。
(9)服務器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得通話密鑰。
(10)服務器,瀏覽器接下來的通訊都用是經過對稱密碼方案,對稱密鑰加過密的。
上面所述的是雙向認證SSL協議的具體通訊過程,這種情況要求服務器和用戶雙方都有證書。單向認證SSL協議不需要客戶擁有CA證書,具體的過程相對于上面的敘述,只需將服務器端驗證客戶證書的過程去掉,以及在協商對稱密碼方案,對稱通話密鑰時,服務器發送給客戶的是沒有加過密的(這并不影響SSL過程的安全性)。
這樣,雙方具體的通訊內容,就是加過密的數據,如果有第三方攻擊,獲得的只是加密的數據,第三方要獲得有用的信息,就需要對加密的數據進行解密,這時候的安全就依賴于密碼方案的安全。只要通訊密鑰長度足夠的長,就足夠的安全。
SET是進行在線交易的安全標準,它采用公鑰密碼體制和X.509數字證書標準,主要應用于保障網上購物信息的安全性。
由于SET提供了消費者、商家和銀行之間的認證,確保了交易數據的機密性、真實性、完整性和交易的不可否認性,特別是保證不將消費者銀行卡號暴露給商家等優點,它成為了目前公認的信用卡/借記卡的網上交易的國際安全標準。
SET主要適用于因特網上的卡交易。SET交易雖然沒有傳統的面對面交易過程,但與傳統交易類似,也涉及到三種實體:持卡人;商戶;金融機構。持卡人是通過自己的計算機,瀏覽到商戶建立在因特網上的網站,選購商品,然后通過金融機構在網上的代表—支付網關進行支付。
SET要達到的目標是:
(1)信息在公共因特網上安全傳輸,保證網上傳輸的數據不被黑客竊取。
(2)訂單信息和個人賬號信息隔離。在將包括持卡人賬號信息在內的訂單送到商家時,商家只能看到訂貨信息,而看不到持卡人的賬戶信息。
(3)持卡人和商家相互認證,以確保交易各方的真實身份。通常,第三方機構負責為在線交易的各方提供信用擔保。
(4)要求軟件遵循相同協議和消息格式,使不同廠家開發的軟件具有兼容性和互操作性,并且可以運行在不同的硬件和操作系統平臺上。
SET協議涉及的當事人包括持卡人、發卡機構、商家、銀行以及支付網關。他們在SET協議中扮演的角色各不相同(如圖1所示)。

圖1 SET系統中參與方之間的關系圖
一個較為簡單和完整的購物流程如下所述(如圖2)。

圖2 網上交易流程
(1)持卡人使用瀏覽器在商家的Web頁面上查看和瀏覽在線商品及目錄。
(2)持卡人選擇要購買的商品。
(3)持卡人填寫訂單,包括項目列表、價格、總價、運費、搬運費和稅費等。訂單可通過電子化方式從商家傳過來,或由持卡人的電子購物軟件建立。有些在線商店允許持卡人與商家協商物品的價格(例如出示老客戶證明或給出競爭對手的價格等)。
(4)持卡人選擇付款方式,此時SET開始介入。
(5)持卡人通過網絡發送給商家一個完整的訂單及要求付款的指令。在SET中,訂單和付款指令由持卡人進行數字簽名,同時,利用雙重簽名技術保證商家看不到持卡人的賬號信息。
(6)商家接受訂單,通過支付網關向持卡人的金融機構請求支付認可。在銀行和發卡機構確認和批準交易后,支付網關給商家返回確認信息。
(7)商家通過網絡給顧客發送訂單確認信息。客戶端軟件可記錄交易日志,以備將來查詢。
(8)商家為顧客配送貨物,完成訂購服務。
(9)商家可以立即請求銀行將錢從購物者的賬號轉移到商家賬號,也可以等到某一時間,請求成批劃賬處理。到此為止,一個購買過程結束。
在該購物過程中,前三步與 SET協議無關,從第四步SET協議開始起作用。在處理過程中,SET對通信協議、請求信息格式、數據類型定義等都有明確的規定。同時,在操作的每一步,持卡人、商家、支付網關等都需要通過CA安全認證中心來驗證交易各方的身份,以確保對方不是冒名頂替。
(1)信息的機密性:SET系統中,敏感信息(如持卡人的賬戶和支付信息)是加密傳送的,不會被未經許可的一方訪問。
(2)數據的完整性:通過數字簽名,保證在傳送者和接收者傳送消息期間,消息的內容不會被修改。
(3)身份的驗證:通過使用證書和數字簽名,可為交易各方提供認證對方身份的依據,即保證信息的真實性。
(4)交易的不可否認性:通過使用數字簽名,可以防止交易中的一方抵賴已發生的交易。
(5)互操作性:通過使用特定的協議和消息格式,SET系統可提供在不同的軟硬件平臺操作的同等能力。
在整個電子交易過程中,SET利用各種加密方法、數字簽名、證書認證等技術手段為網上交易的各方提供了最全面的保護,確保了電子交易的安全、有序的進行。
SET提供電子商務的特殊安全需要:支付信息和訂單信息的安全保密;使用數字簽名確保支付信息的完整性;使用數字簽名和消費者證書,進行消費者銀行的認證;使用數字簽名和商家證書,進行商家的認證;保證所有方事務的不可否認性。
從以下4個方面來比較SSL和SET的異同。
(1)認證機制:SET的安全要求較高,因此,所有參與SET交易的成員(持卡人、商家、支付網關等)都必須先申請數字證書來識別身份,而在SSL中只有商店端的服務器需要認證,客戶端認證則是有選擇性的。
(2)設置成本:持卡者希望申請SET交易,除了必須先申請數字證書之外,也必須在計算機上安裝符合SET規格的電子錢包軟件,而SSL交易則不需要另外安裝軟件。
(3)安全性:一般公認SET的安全性較SSL高,主要是因為整個交易過程中,包括持卡人到商店端、商店到付款轉接站再到銀行網絡,都受到嚴密的保護,而SSL的安全范圍只限于持卡人到商店端的信息交換。
(4)基于Web的應用:SET是為信用卡交易提供安全的,它更通用一些。然而,如果電子商務應用只通過Web或是電子郵件,則可能并不需要SET。
SET從技術上和流程上都相對優于 SSL,但并不表示SET會超過SSL也不會取代SSL,主要原因是SET成本高,互操作性差,實現過程復雜,還有待完善。
[1]關鐵軍.電子商務安全策略研究.北京郵電大學碩士論文. 2008.
[2]彭利軍.電子商務中的安全技術,武漢理工大學碩士論文. 2006.
[3]項潤華.電子商務交易安全機制的研究.中南林學院碩士學位論文.2005.
[4]姚小兵.電子商務中SET協議分析與研究.網絡信息安全.2010.
[5]覃如賢.幾類危害網絡安全的 JAVA程序分析.綿陽經濟技術高等專科學校學報.2003.