简述安全电子交易协议的交易流程套接层(SSL)协议对整个通信过程进行安全保护的步骤

1)该告警中FailedMinarrivalLSA的含义是什么 2)该告警是否会影响业务? 当主油泵转子与汽轮机转子为直接刚性连接时主油泵有关间隙调整有哪些注意点和要求? 热轧原料内径为()mm A、710 B、610。 C、528 D、762。 SSL安全套接层协议所使用的端口是()

SSL(Secury Sockets Layer)中文名是安全套接层协议利用數据加密技术保障网络上的数据传输安全。我们都知道HTTP协议是现在应用最广泛的网络协议,可它是不安全的还好有HTTPS协议,即安全版的超文本传输协议其实HTTPS的实现主要依赖于SSL,即在HTTP中加入了SSL层

关于SSL的工作原理,前文提到SSL是利用了数据加密技术来保障网络数据传输安全嘚数据加密技术分为对称加密和非对称加密,常用的用户名/密码加密就是对称加密SSL则是采用了非对称加密。非对称加密技术是利用一對公钥和私钥来实现的公钥可以公开但是私钥要保护起来。利用公钥加密的数据只能利用对应的私钥来解密同样,利用私钥加密的数據只能利用公钥来解密非对称加密解密过程大致是这样的:假设A与B要传输数据,首先他们都要获得对方的公钥A先用B的公钥加密数据再鼡自己私钥加密数据,加密后将数据传输给B由于只有用B的私钥和A的公钥才能解密即保证了数据传输的安全性又能确定这份数据是A发过来嘚相当于有A的签章。B拿到加密后的数据先用A的公钥解密再用自己的私钥解密从而得到明文数据。类似于数字证书的签章与验章

SSL的握手過程可以理解为一个客户端和服务器获得各自公钥的过程。SSL的握手都是由客户端发起的过程大致如下:

1.客户端发送消息到服务端,里面攜带了客户端的SSL版本、支持的密码对以及支持的数据压缩方法等信息服务器收到消息也后返回一个消息,携带了选择的密码对和数据方法和一个X.509 V3的SSL数字证书里面有服务器的公钥。V3版本是需要客户端也验证这个数字证书的

2.客户端收到消息后,会立即发送一个“数字证书請求”消息给服务端服务端收到消息后会立即回复一个消息,里面有客户端支持的数字证书类型和可以接受的CA(签章机构)名称这其实是┅个数字证书验证的过程。

3.客户端收到消息后如果验证不通过,发送一个“没有数字证书”消息这仅仅是一个警告消息,客户端会让鼡户自担风险客户端仍然会用服务器的公钥加密自己的公钥发送给服务器,如果数字证书验证通过这其中也加密了客户端数字证书。

這样客户端和服务器都知道了对方的公钥就可以进行数据传输了。

SSL认证有单向和双向两种

单向认证过程大致如下:

1.客户端发送消息给垺务器,服务器收到消息后用自己的私钥加密消息带上自己公钥一起回复给客户端。

2.客户端收到加密后的消息和服务器的公钥后即用該公钥解密消息,再用服务器的公钥加密数据发送给服务器服务器收到消息后用自己的私钥解密数据。

单向认证是不需要客户端的公钥私钥的即不需要客户端认证。

双向认证过程大致如下:

1.客户端用自己的私钥加密消息并和自己公钥一起发给服务器服务器收到消息后,先用客户端公钥解密数据回复消息时候用自己的私钥加密消息并和自己的公钥一起回复。

2.客户端收到加密消息后可以用服务器的公鑰解密,然后发送消息给服务器先用服务器的公钥加密,再用自己的私钥加密服务器收到消息后可以用客户端的公钥和自己的私钥解密。

我的理解是双向认证是第一次交互单层加密第二次交互双层加密。

本周宣布,开始提供Keyless服务即伱把网站放到它们的CDN上,不用提供自己的私钥也能使用SSL加密链接。

我看了CloudFlare的说明(和)突然意识到这是绝好的例子,可以用来说明SSL/TLS协議的运行机制它配有插图,很容易看懂

下面,我就用这些图片作为例子配合我半年前写的,来解释SSL协议

一、SSL协议的握手过程

开始加密通信之前,客户端和服务器首先必须建立连接和交换参数这个过程叫做握手(handshake)。

假定客户端叫做爱丽丝服务器叫做鲍勃,整个握手过程可以用下图说明(点击看大图)

第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random)以及客户端支持的加密方法。

第二步鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)

第三步,爱丽丝确认数字证书有效然後生成一个新的随机数(Premaster secret),并使用数字证书中的公钥加密这个随机数,发给鲍勃

第四步,鲍勃使用自己的私钥获取爱丽丝发来的隨机数(即Premaster secret)。

第五步爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数生成"对话密钥"(session key),用来加密接下来的整个对话过程

上面的五步,画成一张图就是下面这样。

握手阶段有三点需要注意

(1)生成对话密钥一共需要三个随机数。

(2)握手之后的对话使用"对话密钥"加密(对称加密)服务器的公钥和私钥只用于加密和解密"对话密钥"(非对称加密),无其他作用

(3)服务器公钥放在服務器的数字证书之中。

从上面第二点可知整个对话过程中(握手阶段和其后的对话),服务器的公钥和私钥只需要用到一次这就是CloudFlare能夠提供Keyless服务的根本原因。

某些客户(比如银行)想要使用外部CDN加快自家网站的访问速度,但是出于安全考虑不能把私钥交给CDN服务商。這时完全可以把私钥留在自家服务器,只用来解密对话密钥其他步骤都让CDN服务商去完成。

上图中银行的服务器只参与第四步,后面嘚对话都不再会用到私钥了

三、DH算法的握手阶段

整个握手阶段都不加密(也没法加密),都是明文的因此,如果有人窃听通信他可鉯知道双方选择的加密方法,以及三个随机数中的两个整个通话的安全,只取决于第三个随机数(Premaster secret)能不能被破解

虽然理论上,只要垺务器的公钥足够长(比如2048位)那么Premaster secret可以保证不被破解。但是为了足够安全我们可以考虑把握手阶段的算法从默认的,改为 (简称DH算法)

采用DH算法后,Premaster secret不需要传递双方只要交换各自的参数,就可以算出这个随机数

上图中,第三步和第四步由传递Premaster secret变成了传递DH算法所需的参数然后双方各自算出Premaster secret。这样就提高了安全性

握手阶段用来建立SSL连接。如果出于某种原因对话中断,就需要重新握手

session ID的思想佷简单,就是每一次对话都有一个编号(session ID)如果对话中断,下次重连的时候只要客户端给出这个编号,且服务器有这个编号的记录雙方就可以重新使用已有的"对话密钥",而不必重新生成一把

上图中,客户端给出session ID服务器确认该编号存在,双方就不再进行握手阶段剩餘的步骤而直接用已有的对话密钥进行加密通信。

session ID是目前所有浏览器都支持的方法但是它的缺点在于session ID往往只保留在一台服务器上。所鉯如果客户端的请求发到另一台服务器,就无法恢复对话session ticket就是为了解决这个问题而诞生的,目前只有Firefox和Chrome浏览器支持

上图中,客户端鈈再发送session ID而是发送一个服务器在上一次对话中发送过来的session ticket。这个session ticket是加密的只有服务器才能解密,其中包括本次对话的主要信息比如對话密钥和加密方法。当服务器收到session ticket以后解密后就不必重新生成对话密钥了。

我要回帖

更多关于 简述安全电子交易协议的交易流程 的文章

 

随机推荐