本文主要是介绍计算机网路之https相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、基础
https并不是一个单独的协议,只是在http的基础上用TLS/SSL进行加密。SSL是TLS的前身,都是加密协议,现在绝大部分浏览器都是支持TLS。
2、https的加密方式
(1)对称加密,双方使用同样的加密和解密规则(只用一把私钥算法)。
问题:若第三方知道加密规则后,就很容易破解了。对称加密劫持到数据和部分明文就可以知道密钥规则。
(2)非对称加密:用两个密钥进行加密和解密,公开密钥是所有人都知道的秘密。私有密钥仅仅是持有放才有的密钥,一般来说私钥就放在服务器中,数据经过公钥加密就只能被私钥解密,数据经过私钥加密就只能被公钥解密。
服务端:拥有成对的公钥和私钥,公布公钥让客户端知道。
客户端:利用公钥把自己的数据进行加密,加密后的数据反而是无法用公钥进行解密的,一定要用服务端的私钥才能解密。
问题:不能对方确定是否是想要沟通的对象
(3)数字证书与数字签名
服务端:申请SSL证书来证明该域名,SSL证书是保存在源服务器的数据文件,需要向第三方机构CA(Certificate Authority证书授权中心)申请该证书才能生效。双方都信任该机构,证书表明域名所属者,日期,特定的公钥和私钥。服务器安装了SSL证书后,SSL就可以通过https来访问服务器了。
客户端:浏览器把http默认端口改为https的默认端口443,在正常的tcp连接后,有TLS握手。
3、TLS1.2加密握手过程
因为考虑到性能的问题,所以双方在加密应用信息时使用的是对称加密密钥,而对称加密密钥是不能被泄漏的,为了保证对称加密密钥的安全性,所以使用非对称加密的方式来保护对称加密密钥的协商,这个工作就是密钥交换算法负责的。
RSA握手过程:
这篇关于计算机网路之https相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!