首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

https是如何工作的

发布网友 发布时间:2022-04-25 14:40

我来回答

2个回答

热心网友 时间:2022-05-25 13:15

加密(Cipher)

在java 1.2时,引入JCR(java 加密扩展)系统,用来负责java中的密钥和证书。

我们都知道,如果我们想要加密或解密一些信息,我们必须要有一个密钥。这好比你想要开门或者锁门,必须要有钥匙一样。

在java中,密钥由KeyGenerator或KeyPairGenerator生成。前者用来生成对称密钥,后者用来生成非对称密钥。

现在,我们来看看这种可能的场景:黑客截获了该通信,这意味着黑客拥有了密钥和密文。一旦黑客有了密钥,那么解密密文就是很简单的事情了,我们的数据就这样泄漏了。

如何使用非对称加密?

上面的解决方案非常不安全。我们继续往下看。使用非对称加密怎么样?

这个想法非常棒:服务端发送给你公钥,你使用这个公钥加密数据。因为服务端是唯一拥有私钥的, 
这意味着只有服务端能够解密密文。即使黑客截获了该通讯,但因为没有私钥也就无法解密密文。

但是,非对称加密比对称加密更加耗时。为了用户体验,不建议使用非对称加密这种方式来加密/解密大量的数据 。

最终方案

前两种方案都无法解决我们安全通信,我们怎么结合上面的两种方案呢?来看看最终方案: 

上面这张图片已经清楚的展示了HTTPS工作的流程。

1.[Server]生成一对密钥:公钥和私钥,我们称之为“KeyPub”,“KeyPri” 
2.[Server]服务端将公钥(KeyPub)发送到客户端 
3.[Client]生成一个对称密钥(姑且称之为key2),然后用key2加密数据。 
4.[Client]使用公钥(KeyPub)加密key2.这时,key2是安全的,因为只有服务度有私钥KeyPri 
5.[Client]发送用key2加密后的信息及用KeyPub加密过的key2到服务端 
6.[Server]服务端使用KeyPri解密得到加密过的key2,得到真正的key2 
7.[Server]使用key2解密消息正文。这样,数据就被安全的传输到了服务端。

结论

由于对称加密比非对称加密快,https决定使用对称加密来加密数据,使用非对称加密对称加密生成的密钥,以确保安全

热心网友 时间:2022-05-25 13:16

HTTPS工作原理:
户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;
服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;
客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;
客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值计算出加密和MAC密钥(参考DH密钥交换算法)。
客户端将所有握手消息的MAC值发送给服务器;
服务器将所有握手消息的MAC值发送给客户端。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com