Https的加密方式-非对称加密与对称加密

1、对称加密:

对称加密算法:密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,前提是要求解密方事先必须知道加密密钥。常用的对称加密算法有DES、AES(传统的DES由于只有56位密钥,已经不适应分布式开放网络对数据加密安全性的要求,AES128位的加密强度是DES1021倍多)。

优点:计算量小、加密速度快、加密效率高。

不足:安全性得不到保证,双方拥有的密钥越来越多。若这个密钥在互联网上传输就有可能被黑客截获。

2、非对称加密:

不对称加密算法:两把完全不同但完全匹配的一对公钥和私钥,私钥只有服务器有,而公钥可以发给所有的客户端。常用的不对称加密算法:RSA算法

问题:1、黑客可以用公钥解密服务器发送给客户端的信息,2、不对称加密算法效率低,速度慢。

3、服务器给客户发送公钥时可能被黑客截获,然后黑客把自己的公钥发给客户,导致客户一直用黑客的公钥加密并发消息给黑客。(如何得到公钥?)

3、非对称与对称加密相结合

为了解决加密算法的速度,第一次交换共享密钥时,使用非对称加密。然后用对称密钥加密信息报文

问题:“服务器”要对外发布公钥,那“服务器”如何把公钥发送给“客户”呢?我们第一反应可能会想到以下的两个方法:

a)把公钥放到互联网的某个地方的一个下载地址,事先给“客户”去下载。

b)每次和“客户”开始通信时,“服务器”把公钥发给“客户”

方式a无法保证公钥是服务器发布的

方式b任何黑客都可以截获服务器的公钥,给客户发送一个假的公钥。

解决数字证书数字证书可以保证数字证书里的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的身份。具备公信力的认证中心, 这个中心给大家颁发一个证书。第三方机构使用它的私钥对服务器的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密如果中间人使用自己的私钥加密后的东西传给客户端,客户端是无法使用第三方的公钥进行解密的。

问题:证书传递的过程中被黑客篡改

解决:服务端证书发给客户端的时候,将证书信息用Hash算法与证书私钥加密生成数字签名客户端就用同样的Hash 算法, 再次生成消息摘要,然后用CA的公钥对数字签名解密, 得到CA创建的消息摘要, 两者一比,就知道有没有人篡改了!如下:

服务端生成数字证书
客户端验证证书

注:高层的CA给底层的CA做信用背书,而操作系统/浏览器中会内置一些顶层的CA的证书,相当于你自动信任了他们。这些顶层的CA证书一定得安全地放入操作系统/浏览器当中。浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。如果浏览器和操作系统这道防线被破了,就没办法。自己安装的非常规系统,都可能被攻击。

签名算法:对信息做一个Hash计算得到Hash值,这个过程是不可逆的,也就是无法通过Hash值得出原来的信息内容,把信息发送出去时,把这个Hash值加密后作为一个签名和信息一起发出去。

证书中内容:数字签名、签名算法、被签名证书,被签名的证书包括申请证书时填写的国家、省份、组织以及证书支持的域名、公钥等。

证书和域名是强相关的,https库在连接目标的时候,会验证目标的证书和本地请求的域名是否一致所以使用https请求的时候,是无法使用ip地址请求目标的。

总结:HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题

    加密分对称和非对称加密,对称加密效率高,但是解决不了密钥传输问题,非对称加密可以解决这个问题,但是效率不高。

    非对称密钥需要通过证书和权威机构来验证公钥的合法性。

    HTTPS是综合了对称加密和非对称加密算法的HTTP协议,既保证传输安全,又保证了传输效率。

4、Windows上的证书查看

在浏览器中也可以看到证书的详细信息:

站点的证书不受信任情况:

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值