赞
踩
http协议
hypertext transfer protocol 超文本传输协议.主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.
http1.0和http1.1区别
签名验签
为了验证发送信息方的身份是正确的,使用私钥加密,公钥解密.因为私钥只有自己持有,公钥公开的.
通过MAC进行消息完整性验证
MAC(消息验证码,即带密钥的hash函数).它的输入包括任意长度的消息和一个发送者与接收者之间的共享密钥,然后输出固定长度的数据,这个数据称为MAC值.然后将MAC值和消息一块发送到接受端,接受端使用共享密钥对接收到的消息进行加密处理,将生成的值和传送过来的MAC值进行比较,如果相等,则说明消息是完整的.
那么加密解密、签名验签、完整性怎么结合在一起的呢?
由内到外一次是MAC完整性–>签名验签–>加密解密.
需要消息传输的密钥Pub1,签名验签的Pub2、Pri2,以及MAC消息验证码中的对称加密的公钥Pub3.
发送方: 将消息使用Pub3进行加密得到MAC值(保证信息完整性),MAC值连同消息m使用Pri2进行签名(身份验证),然后在使用Pub1进行加密(防止被劫持获取传输内容),进行发送.
接受方: 使用Pub1对接收的信息进行解密,使用Pub2再进行解密,得到m和MAC,再对原文信息m使用Pub3加密,得到另一个MAC值,比较两个MAC值是否一样,如果一样则说明信息再传输过程中是完整的,没有任何修改.因为信息有一点修改,得到的MAC值就是完全不同的.
还有其他的问题吗?
经过之前的陈述,我们知道在信息传输过程中使用对称加密的方式进行,这样可以保证传输的速率.而对称加密的密钥使用非对称加密的方式进行传输的.即客户端使用服务器发送给自己的公钥对信息传输中使用的公钥进行加密,发送给服务器端,服务器端使用自己的私钥进行解密,然后获取在实际的数据传输过程中使用的对称加密的密钥.
那么服务器端发送给客户端的非对称加密公钥是怎么发送的呢?安全吗?
在服务器向客户端发送公钥的过程中,由于无法确保服务器身份的合法性(因为公钥并不包含服务器的信息),所以存在安全隐患.
那么可能会想:无法确保服务器身份的合法性,这个学过呀,使用非对称加密的方式私钥签名、公钥验签呀…那么验签的公钥怎么传递呢?从而陷入了无限循环…
那么服务器向客户端发送公钥,不保证服务器身份的合法性,能出现什么问题呢?
主要参考文章: HTTPS中CA证书的签发及使用过程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。