Https如何保证安全传输

(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高

(2) 非对称加密使用一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢

(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

 

 

对称密钥算法非常适合于快速并安全地加密数据。但其缺点是,发件人和收件人必须在交换数据之前先交换机密密钥。结合使用加密数据的对称密钥算法与交换机密密钥的公钥算法可产生一种既快速又灵活的解决方案。

基于公钥的密钥交换步骤如下:

 

发件人获得收件人的公钥。

发件人创建一个随机机密密钥(在对称密钥加密中使用的单个密钥)。

发件人使用机密密钥和对称密钥算法将明文数据转换为暗文数据。

发件人使用收件人的公钥将机密密钥转换为暗文机密密钥。

发件人将暗文数据和暗文机密密钥一起发给收件人。

收件人使用其私钥将暗文机密密钥转换为明文。

收件人使用明文机密密钥将暗文数据转换为明文数据。

同样,这些步骤是由启用 PKI 的应用程序(如 Microsoft Outlook)来完成的,并且对用户来说是透明的。

 

https中 通过server 的证书来交换密钥,这个过程是明文的还是加密的?这个过程被人截获后不怕被人拿到密钥从而破解整个https?

系统中会预先安装好证书,进行https通讯前会核对公钥是否在传输中被篡改。只有不信任一些不可靠证书,通讯才能安全。

 

https:

服务器 用RSA生成公钥和私钥

把公钥放在证书里发送给客户端,私钥自己保存

客户端首先向一个权威的服务器检查证书的合法性,如果证书合法,客户端产生一段随机数,这个随机数就作为通信的密钥,我们称之为对称密钥用公钥加密这段随机数,然后发送到服务器,服务器用密钥解密获取对称密钥,然后,双方就已对称密钥进行加密解密通信了

你可能感兴趣的:(HTTP/TCP/Socket)