1. SSL/TLS 协议
Secure Socket Layer安全套接层(SSL v2/v3)和Transport Layer Security 传输层安全协议(TLS v1)协议是目前Internet上使用最广泛的安全协议。SSL/TLS在源和目的实体间建立了一条安全通道(在传输层之上),提供基于证书的认证、信息完整性和数据保密性服务,用来传送信息、实现Server/Client双向身份验证、防篡改(完整性检测)等。
SSL 记录协议为 SSL 连接提供两种服务:
-
机密性:握手协议定义了共享的、可以用于对SSL有效载荷进行常规加密的密钥。
-
报文完整性:握手协议还定义了共享的、可以用来形成报文的鉴别码(MAC)的密钥。
客户与服务器之间建立逻辑连接的 4 个阶段:
-
建立安全能力:包括协议版本、会话ID、密文组、压缩方法和初始随机数;
-
服务器鉴别和密钥交换:,服务器可以发送证书、密钥交换和证书请求。服务器发出结束Hello报文阶段的信号;
-
客户鉴别和密钥交换,如果请求的话,客户发送证书,客户发送密钥交换,客户可以发送证书验证报文;
-
结束,修改密文族并结束握手协议。
SSL被设计成使用TCP来提供一种端到端的安全服务。浏览器与Web服务器之间经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接,握手过程流程如下:
-
① 客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。
-
② 服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。
-
③ 客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
-
④ 用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。
-
⑤ 如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。
-
⑥ 如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密码 ”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。
-
⑦ 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
-
⑧ 客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
-
⑨ 服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。
-
⑩ SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。
2. S/MIME & PGP 协议
PGP(Pretty Good Privacy)和S/MIME(Secure Multi-Part Intermail Mail Extension),邮件加密专用协议,它们的主要功能就是身份的认证和传输数据的加密。
PGP 协议:
-
PGP的成功,主要由于Phil Zimmerman的贡献。PGP提供了一种机密性和鉴别的服务,可以用于电子邮件和文件存储的应用。
-
PGP的实际操作由5种服务组成:鉴别、机密性、压缩、电子邮件的兼容性和分段/重组。
-
加密密钥和密钥环
PGP使用了4种类型的密钥:一次性会话的常规密钥、公开密钥、私有密钥和基于口令短语(Passphrase)的常规密钥。
- 公开密钥管理
S/MIME 协议:
该标准包括密码报文语法、报文规范、证书处理以及证书申请语法等方面的内容。
-
RFC822 – MIME – S/MIME
-
S/MIME的功能:加密的数据、签名的数据、Clear-signed Data和签名并且加密的数据。
-
S/MIME证书的处理(RFC2632):
-
S/MIME增强的安全服务(RFC2634):Signed Receipt、Security Label和Security mailing list。
3. 安全电子交易 SET 协议
在金融业逐步走向电子化的今天,支付工具己逐渐从传统的物理形式的现金转换成信用卡,但支付形式却仍是消费者与商家面对面地使用支付工具,当面即时地查验支付工具的真伪。对于网上交易而言,商家、消费者和银行等中间机构是通过Internet互连在一起的,他们无法用传统的方法完成支付的查验过程。为解决这一问题,VISA和Master两大信用卡组织提出了以信用卡为基础的电子系统支付系统规范,即SET(Secure ElectronicTransaction)标准。
在 SET 标准中,定义了五种实体:
-
1)持卡人:拥有信用卡的消费者;
-
2)商家:在Inter 3)支付网关:由金融机构或第三方控制,它处理持卡人购买和商家支付的请求;
-
4)收单者(Acquirer):负责将持卡人的帐户中资金转入商家帐户的金融机构;ne上提供商品或服务的商店;
-
5)发卡者:负责向持卡人发放信用卡的金融机构。
涉及SET交易的所有持卡人、商家和支付网关三个实体。认证机构需分别向持卡人,商家和支付网关发出持卡人证书、商家证书和支付网关证书。三者在传输信息时,要加上发方的数字签字,并用接收方的公开密钥对信息解密。实现商家无法获得持卡人的信用卡信息,银行无法获得持卡人的购物信息,同时保证商家能收到货款的SET支付的目标。
应用示例:
-
买主通过https连到电子商务站点,站点服务器验证客户证书
-
站点服务器去LDAP库查用户权限
-
购买、下定单,弹出ActiveX签名控件
-
用户验证控件有效性、受性任
-
控件通过微软CryptoAPI访问用户私钥,并提示签名,同时生订定单数据摘要
-
用户对摘要签名点击提交,签名和订单发到web站点
-
供货商收到订单时先申请时间戳存入日志,再验证签名,验证后指定完成订单者,并生成通告用安全邮件发给完成订单及买主
微信公众号:海若Hero