HTTPS

本文详细解释了SSL协议如何使用非对称加密算法协商密钥,并采用该密钥对HTTP内容进行对称加密传输。通过一个生动的例子展示了客户端与服务器如何安全地交换密钥并建立加密通道。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.图片说明(出自:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html)

2.拟人化说明(转自:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html)

SSL的加密过程

需要注意的是非对称加解密算法的效率要比对称加解密要低的多。所以SSL在握手过程中使用非对称密码算法来协商密钥,实际使用对称加解密的方法对http内容加密传输。下面是对这一过程的形象的比喻(摘自http://blog.chinaunix.net/u2/82806/showart_1341720.html):

假设A与B通信,A是SSL客户端,B是SSL服务器端,加密后的消息放在方括号[]里,以突出明文消息的区别。双方的处理动作的说明用圆括号()括起。

A:我想和你安全的通话,我这里的对称加密算法有DES,RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA。

B:我们用DES-RSA-SHA这对组合好了。

这是我的证书,里面有我的名字和公钥,你拿去验证一下我的身份(把证书发给A)。

A:(查看证书上B的名字是否无误,并通过手头早已有的数字的证书验证了B的证书的真实性,如果其中一项有误,发出警告并断开连接,这一步保证了B的公钥的真实性)

(产生一份秘密消息,这份秘密消息处理后将用作对称加密密钥,加密初始化向量和hmac的密钥。将这份秘密消息-协议中称为per_master_secret-用B的公钥加密,封装成称作ClientKeyExchange的消息。由于用了B的公钥,保证了第三方无法窃听)

我生成了一份秘密消息,并用你的公钥加密了,给你(把ClientKeyExchange发给B)

注意,下面我就要用加密的办法给你发消息了!

(将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥)

[我说完了]

B:(用自己的私钥将ClientKeyExchange中的秘密消息解密出来,然后将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了)

注意,我也要开始用加密的办法给你发消息了!

[我说完了]

A: [我的秘密是...]

B: [其它人不会听到的...]

从上面的过程可以看到,SSL协议是如何用非对称密码算法来协商密钥,并使用密钥加密明文并传输的。还有以下几点补充:

1.B使用数字证书把自己的公钥和其他信息包装起来发送A,A验证B的身份,下面会谈到A是如何验证的。

2.A生成了了加密密钥、加密初始化向量和hmac密钥是双方用来将明文摘要和加密的。加密初始化向量和hmac密钥首先被用来对明文摘要(防止明文被篡改),然后这个摘要和明文放在一起用加密密钥加密后传输。

3.由于只有B有私钥,所以只有B可以解密ClientKeyExchange消息,并获得之后的通信密钥。

4.事实上,上述过程B没有验证A的身份,如果需要的话,SSL也是支持的,此时A也需要提供自己的证书,这里就不展开了。在设置IIS的SSL Require的时候,通常默认都是igore client certification的。



参考:

1.HTTPS 是如何保证安全的? (很赞,很易懂)

http://heckpsi.com/archives/986

2.HTTP协议详解(图片出处,关于http这篇讲得好全面,而且是对照wireshark抓的包讲得)

http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值