0 前言
三年前,我所在的公司建立了和供应商之间的B2B电子商务网站,本人在参与这个项目时了解了网络通讯加密和SSL相关的知识。随着本人对电子商务的了解和认识的不断加深,随着目前各种电子商务平台的不断出现,我又加强了对SSL的学习和理解。本文将结合本人的认识来介绍SSL的基本原理,由于考虑到阅读本文的人大部分对于安全和加密有了一定的了解和认识,本文的安排如下:
1 首先介绍SSL通讯的示意图,有相关网络安全背景知识的人看了该图即可了解SSL的基本原理。
2 对SSL通讯示意图进行文字上的讲解和描述,这里会涉及到一些加密和安全的术语,因此对于了解加密的人读到此即可。
3 对一些涉及到的术语进行简要地说明和解释,对于需要了解一些加密术语的读者可以作为简要参考。
本文的目的是简明概要地讲解SSL原理,对于需要进一步了解SSL原理的读者可以进一步读取相关著作和论文。
1 SSL通讯示意图
SSL通讯示意图如图1所示:

2 SSL通讯说明
在该部分,将对图1所示的示意图进行说明。为了说明的方便,在本文中称客户端为B,服务器端为S。
STEP 1: B——〉S(发起对话,协商传送加密算法)
你好,S!我想和你进行安全对话,我的对称加密算法有DES,RC5,我的密钥交换算法有RSA和DH,摘要算法有MD5和SHA。
STEP2: S——〉B(发送服务器数字证书)
你好,B!那我们就使用DES-RSA-SHA这对组合进行通讯,为了证明我确实是S,现在发送我的数字证书给你,你可以验证我的身份。
STEP 3: B——〉S(传送本次对话的密钥)
(检查S的数字证书是否正确,通过CA机构颁发的证书验证了S证书的真实有效性后。生成了利用S的公钥加密的本次对话的密钥发送给S)
S, 我已经确认了你的身份,现在将我们本次通讯中使用的对称加密算法的密钥发送给你。
STEP4: S——〉B(获取密钥)
(S用自己的私钥解密获取本次通讯的密钥)。
B, 我已经获取了密钥。我们可以开始通信了。
STEP5: S<——>B(进行通讯)
说明:一般情况下,当B是保密信息的传递者时,B不需要数字证书验证自己身份的真实性,如电子银行的应用,客户需要将自己的账号和密码发送给银行,因此银行的服务器需要安装数字证书来表明自己身份的有效性。在某些B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通讯时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。
此外需要说明的是,在一些电子商务的应用中,可能还会使用到电子签名,或者为了信息交换的更加安全,会增加电子签名和消息校验码(MAC)。