□文/张 海
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介入结束;⑨发卡行传送支付确认信息→商家服务器,商家组织发货;⑩发卡行与商家开户行进行资金清算。