对称加密 非对称加密 HTTPS

2018-06-19  本文已影响0人  小涂涂哦

对称加密: 原始数据可逆变换.简单来说就是 加密解密是同一个秘钥. 比如有一个秘钥 A 

原始 --> 使用 A 加密 --> 密文 --> 使用 A 解密 --> 原始

非对称加密: 简单来说 就是有两个密码  A 和 B ,用 A 加密的内容 只能用 B 解密 ,用 B 加密的内容 只能 用 A 解密.

原始 --> 使用 A 加密 --> 密文 --> 使用 B 解密 --> 原始

同样

原始 --> 使用 B 加密 --> 密文 --> 使用 A 解密 --> 原始

至于 公钥 与 私钥 是相对概念,私钥是自己用的不想别人知道的,公钥是给别人用的

例子: HTTPS

HTTP: 好处是简单易用,坏处,主要有3点

1. 数据是明文,容易被窃听

2. 无法保证数据的完整性,即不能验证是否被串改或丢失

3. 无法验证通讯双方的合法性

解决方案:

使用 HTTPS  及 在 HTTP 与 TCP 之间加了一层 SSL/STL ,即安全传输通道

分析:

安全通道的建立

1.将通讯的内容用 对称方式加密. 但这样客户端需要知道 对称的密钥.

有缺点,不能被广泛使用,

2. 使用非对称秘钥传输  对称密钥 

有缺点,公钥需要事先指定,同时无法验证服务器合法性

3. 借助第三方机构

操作系统直接保存了可信任的第三方机构的公钥,服务器向第三方机构申请私钥,使用第三方私钥加密服务器自己要下发的公钥.

1 有一个问题,对称密钥无法传输给对方,必须不能明文传输,可以被窃听

2 解决了1中对称加密的密钥的传输的问题,但没让客户端验证发送公钥服务器的合法性.比如伪造一个服务器是某个银行,在劫持 DNS或其他手段使客户端的请求响应到伪造服务器上,这样双方通信不是 mb 了.

3 解决了可信服务器公钥传输的问题.

总的来说: 客户端的操作系统实现保存好了第三方的公钥, 服务器向第三方申请 私钥 ,服务器用申请的私钥加密 服务器下发给客户端自己的公钥, 客户端用系统中已经存在的第三方公钥解密 获得服务器下发的公钥同时验证服务器的合法性.不合法的服务器没有第三方的私钥.客户端随机生成一个对称加密的秘钥,用公钥加密后,上传到服务器,服务器用自己的私钥解密.或的对称加密的秘钥,之后内容使用对称秘钥加密.加密信道建立. 至于数据完整性,就是使用 hash 码 .

上一篇下一篇

猜你喜欢

热点阅读