【SSL】关于SSL协议
1. 起因
因为昨天听了公司的SSL协议的培训,说实话,但是没有提前准备,有点懵。对SSL 又不是很熟悉,所以想整理下。
Question:
SSL 是什么? 安全通信协议,443端口,通过加密传输的方式保证数据的安全和完整性。
SSL 应用在哪里? Web 浏览器 和 服务器之间,用于 身份鉴别 和 保证数据安全。
SSL 位于OSI哪一层? 传输层 和 应用层之间。
SSL 和 https 的区别? http (超文本传输协议) SSL (安全套接层),HTTP+SSL = HTTPS 。HTTP主要保证传输,SSL主要保证安全和身份认证,SSL 离不开证书。
2. 内容
2.1 百度百科
SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全TLS(Transport Layer Security ) 是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
当前版本为3.0,已广泛的用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP和应用层之间,为数据通讯提供安全支持,
SSL协议分为两层:
SSL记录协议:建立在可靠的传输协议之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证和协商加密算法,交换加***。
2.1.2 服务:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器。
2)加密数据以防止数据被窃取。
3)维护数据的完整性,确保数据在传输过程中不被改变。
2.1.3 工作流程:
服务器认证阶段:
1)客户端向服务器发送一个开始信息 “Hello” 以开始一个新的会话连接,
2)服务器根据客户的信息确定是否需要生成新的主**,如需要则在响应客户端是包含 主** 所需的信息,
3)客户端根据接受的 信息,产生一个主**,并用服务器的公开**加密 发送给服务器,
4)服务器接收主**,并返回给客户一个用主**认证的信息,以此让客户认证服务器。
重点在于: 客户端使用 服务器的公开**加密,此时服务器的公开**应该是 服务器证书携带的,而服务器证书是由可靠CA 认证的。
用户认证阶段:
在此之前,服务器已经通过了客户认证。经认证的服务器发送一个提问给客户,客户则返回签名后的提问和其公开**,从而向服务器提供认证。
SSL协议提供的安全通道有以下特性:
机密性:SSL 协议使用**加密通信数据。
可靠性:服务器和客户都会被认证,客户的认证是可选的。
完整性:SSL协议会对传送的数据进行完整性检查。
2.2 有价值的博客
2.3 自己的看法
3. 扩展延伸:
3.1 两者之间的 安全协议 SSL 和 多方之间的 安全协议 SET
SSL 协议运作的基础是商家对消费者信息保密的承诺,这有利于商家而不利于消费者。在电子商务的初级阶段,电子商务公司都是信誉较高的公司,可以信任他们的承诺,随着发展,越来越多的中小型公司参与进来,不能保证小型公司不会泄露用户的信息。而且SSL协议只能用于浏览器和服务器之间进行双端认证,如果涉及到多方之间的安全传输,是不能实现的。此时visa 万事达 Netscape等公司,制定了SET协议,用来保证多方通信之间的保密问题。
SET协议为电子交易提供了许多保证安全的措施,保证电子交易的机密性,数据完整性,交易行为的不可否认性和身份的合法性。SET协议设计的证书中包括:银行证书及发卡机构证书、支付网关证书、商家证书。
1)保证客户交易信息的保密性和完整性。分别对订单消息和支付信息加密,使银行不知道订单信息,使商家不知道支付信息
2)确保商家和客户交易行为的不可否认性。采用核心技术包括 X.509标准,数字签名,报文摘要,双重签名技术。
3 )确保商家和客户的合法性。使用数字证书对交易各方合法性进行验证。
...