https简介以及仿https的加密tcp安全通道的简要设计思路

本文介绍了HTTPS的安全原理,强调了对称加密和非对称加密在其中的作用,以及数字证书在验证身份中的关键角色。此外,还提出了一种仿HTTPS的简单TCP安全通道设计,包括服务端生成RSA密钥对、通过安全方式传递公钥、客户端生成对称秘钥并加密传输、服务端解密获取秘钥,最后使用对称秘钥进行内容加密通信。

        今天, 我们来说说https,  也就是安全的http.

        怎么个安全法? 那肯定是要对传输的数据进行加密, 为了效率, 我么可以考虑用对称加密算法, 如典型的AES.  那么问题来了, 客户端和服务端怎样才能拥有相同的对称秘钥key呢?  显然, 可以考虑从客户端端随机生成一个秘钥, 然后传递了服务端, 这不就行了吗? 是的。

        但是, 传递这个秘钥的过程, 是一个不靠谱的过程, 如果秘钥被坏人中途截获怎么办? 显然, 坏人也是可以用秘钥key来解密传输内容的, 安全性无从说起。

        那怎么办呢?  可以考虑这样一种情况, 如果客户端有RSA公钥, 那么就可以对对称秘钥key进行加密保护, 传递给服务端, 即使中途被截获, 也不怕, 因为必须要有RSA私钥才能解开内容, 所以, 这样就保护了对称秘钥key不被中途截获, 问题貌似就解决了。 恩。

        但是, 这又引入了一个新的问题, 客户端的RSA公钥和服务端的RSA私钥是怎么分配的? 必然要从一段传递到另外一端啊。 我们考虑, 在服务端生成RSA公钥和RSA私钥, 然后服务端传递给客户端, 这不就OK了吗?  公钥是公开的, 坏人知道了公钥又能如何? 恩。

        可是, 坏人可以在中间过程生成一对假的RSA秘钥对, 然后把坏人把假的RSA公钥发给客户端, 坏人自己持有假的RSA私钥, 于是, 客户端实际上在跟中间的坏人进行通信, 客户端浑然不知。这就引入了一个新的问题: 客户端怎么知道自己手上的RSA公钥是服务端派发的还是中间坏人的呢?  这里就引入了数字证书的概念。

        第三方机构对服务端的RSA公钥进行认证(确保真实无误,且没有篡改), 那么问题就完全解决了。 怎么实现的呢? 第三方认证

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值