□文/張 海
1、網上支付是電子支付的一種形式。廣義地講,網上支付指的是客戶、商家、網絡銀行(或第三方支付)之間使用安全電子手段,利用電子現金、銀行卡、電子支票等支付工具通過互聯網傳送到銀行或相應的處理機構,從而完成支付的整個過程。
2、網上支付基本流程。①填寫訂單,加密交易信息、支付信息,發送到商家服務器;②審核交易信息,傳遞支付信息(加密)→支付網關→收單行;③收單行與開戶行對支付信息進行確認,返回授權響應信息;④商家組織發貨;⑤開戶行與收單行資金劃撥清算,并返回支付成功信息。
保證支付工具的真實與識別該使用者的合法身份是金融業在網絡環境下實現網上支付所面臨的問題。解決這一問題的關鍵是使用安全的網上支付模式,SSL和SET是目前實現安全電子支付的兩種主要模式。目前,基于SSL安全協議的信用卡支付模式得到廣泛發展,而SET模式并未普及,故本文圍繞SSL網上支付模式展開研究。
1、SSL協議及相關概念
(1)SSL安全套接層協議。SSL協議是Netscape公司于1994年提出的一個關注互聯網信息安全的信息加密傳輸協議,其目的是為客戶端(瀏覽器)到服務器端之間的信息傳輸構建一個加密通道,此協議是與操作系統和Web服務器無關。
SSL協議位于TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層:SSL記錄協議:它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。SSL握手協議:它建立在SSL記錄協議之上,用于在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。
(2)HTTPS安全超文本傳輸協議。HTTP提供了一種非常適宜使用SSL來保護其安全的特性。它是第一個使用SSL的協議,到目前為止仍然是最重要的使用SSL來保護其安全的協議。在 1995年,Netscape公司發布的NetscapeNavigotor2中公開發表了SSL上的HTTP實現,當時是采用的獨立端口策略。為了將其與HTTPURL區分開來,SSL上的HTTP用來獲取頁面的URL以HTTPS://開頭,這種方案就成為HTTPS名稱的來由。
2、SSL協議工作原理
(1)客戶端向服務器發送一個開始信息以便開始一個新的會話連接,協商傳送加密算法。舉例說明:你好,服務器。我想和你進行安全對話,我的對稱加密算法有DES、RC5,我的密鑰交換算法有RSA和DH,摘要算法有MD5和SHA。
(2)服務器根據客戶的信息確定是否需要生成新的主密鑰,如需要則服務器在響應客戶的信息時將包含生成主密鑰所需的信息,并發送服務器數字證書。舉例說明:你好,客戶端。那我們就使用DES-RSA-SHA這對組合進行通訊,為了證明我確實是服務器,現在發送我的數字證書給你,你可以驗證我的身份。
(3)客戶根據收到的服務器響應信息,檢查服務器的數字證書是否正確,通過CA機構頒發的證書驗證了服務器證書的真實有效性后,產生一個主密鑰,并用服務器的公開密鑰加密后傳給服務器。舉例說明:服務器,我已經確認了你的身份,現在將我們本次通訊中的密鑰發送給你。
(4)服務器恢復該主密鑰,并返回給客戶一個用主密鑰認證的信息,以此讓客戶認證服務器。舉例說明:客戶端,我已經獲取了密鑰。我們可以開始通信了。
一般情況下,當客戶端是保密信息的傳遞者時,不需要數字證書驗證自己身份的真實性,如電子銀行的應用,客戶需要將自己的賬號和密碼發送給銀行,因此銀行的服務器需要安裝數字證書來表明自己身份的有效性。在某些B2B應用,服務器端也需要對客戶端的身份進行驗證,這時客戶端也需要安裝數字證書以保證通訊時服務器可以辨別出客戶端的身份,驗證過程類似于服務器身份的驗證過程。
3、SSL協議工作層次。隨著電子商務的不斷發展,SSL協議得到了越來越廣泛的使用。SSL協議是介于HTTP協議與TCP之間的一個可選層,從上至下分別為 HTTP、SSL、TCP、IP層。安全連接的建立要求在連接建立以后再次進行握手。即在“著名的TCP/IP三次握手”以后再次利用證書來握手。
4、SSL協議介入特征。當在瀏覽器的地址欄的開頭是HTTPS而不是HTTP,在瀏覽器的右下角有一把鎖,說明已經建立起SSL加密通道。訪問過程中HTTP層首先將請求轉換成HTTP請求,然后SSL層通過TCP和IP層實現瀏覽器和服務器握手(HANDSHAKE),服務器層獲得密鑰,最后TCP層與服務器之間建立了加密通道,實現了雙方安全交換信息的目的。
1、初級信用卡在線支付SSL模式工作流程。①客戶開設信用卡賬戶;②填寫訂單信息,選擇信用卡支付,將訂單信息+支付信息→商家服務器;③商家服務器返回訂單ID→客戶端,由支付網關傳遞支付信息→客戶發卡行;④發卡行在客戶端瀏覽器彈出頁面,SSL協議介入;⑤客戶端與發卡行通過數字證書相互驗證身份;⑥進行SSL握手協議,建立安全信道;⑦客戶端瀏覽器出現支付頁面,輸入密碼;⑧確認支付后,提示離開SSL安全連接,SSL介入結束;⑨發卡行傳送支付確認信息→商家服務器,商家組織發貨;⑩發卡行與商家開戶行進行資金清算。
初級SSL支付模式存在兩個主要缺陷,其分別是:①客戶的支付信息將被商家所獲知;②缺少商家對客戶的身份驗證。基于上述兩種原因,改良式的SSL信用卡支付模式應運而生,在這一模式中,商家生成的訂單信息將經由客戶端瀏覽器轉發到發卡行的支付網關進行支付,有效地避免了原SSL模式下商家獲知客戶支付信息的缺點,其也是國內各大商業銀行主要采用的模式。
2、改良在線支付SSL模式工作流程。①客戶開設信用卡賬戶;②填寫訂單信息→商家服務器;③商家服務器返回訂單信息(加密)+數字簽名→客戶端;④發卡行選擇是否驗證商家身份,確認訂單,經由支付網關傳送訂單信息+支付信息發卡行服務器;⑤發卡行在客戶端瀏覽器自動彈出頁面,SSL協議介入;⑥客戶端與發卡行通過數字證書相互驗證身份,進行SSL握手協議,建立安全信道;⑦客戶端瀏覽器出現支付頁面,輸入密碼;⑧確認支付后,提示離開SSL安全連接,SSL介入結束;⑨發卡行傳送支付確認信息→商家服務器,商家組織發貨;⑩發卡行與商家開戶行進行資金清算。