非对称加密:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
常用的对称加密算法有RSA加密.
值得注意的是,RSA所要求的指数运算相当耗费时间,形成对比的是,DES用软件实现要比RSA快100倍,所以,在实际应用中,RSA通常与对称密钥密码结合起来使用
Hash: hash 是把任意长度数据经过处理变成一个长度固定唯一的字符串,但任何人拿到这个字符串无法反向解密成原始数据(解开你就是密码学专家了),Hash 常用来验证数据的完整性。常见 Hash 算法有 MD5(已经不安全了)、SHA1、SHA256
结合上述对称加密和非对称加密的特点,HTTPS采用混合加密机制
具体过程为:
服务器把 公钥发给客户端 去加密 稍后共享密钥加密 中要使用的密钥
客户端把 共享密钥 用服务器刚发来的公钥加密,并发给服务器,服务器拿到后用私钥解开,就得到了共享密钥
然后就可以快乐的用共享密钥来进行通信
可是问题又来了,
我如何证明我收到的公钥就是货真价实服务器发来的公钥,而不是坏人发来的钓鱼公钥呢?
数字证书认证机构(CA)数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上.
数字证书认证的业务流程:
首先,服务器 的运营人员向数字证书认证机构提出公开密钥的申请。
数字证书认证 机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。
服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。
公钥证书也可叫做数字证书或直接称为证书。
接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书 上的数字签名进行验证,一旦验证通过,客户端便可明确两件事: 一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二, 服务器的公开密钥是值得信赖的。
此处认证机关的公开密钥必须安全地转交给客户端。
使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。
CA认证要花钱么?
CA证书的价格主要受到两个方面的因素影响,即:品牌和类型。
品牌方面,高端的像Symantec、GlobalSign等,价格基本都在千元到万元不等,平价的像GeoTrust、Comodo、RapidSSL等,几百元到几千元不等。
类型方面,基础型的DV证书就比较便宜,最低百元左右就能申请。企业型的OV证书和EV证书价格就贵一些,几百几千甚至上万元都有。
总的来说,价格从百元到千元甚至万元的都有。当然,不同类型的CA证书适用于不同类型的网站。
参考:
https://segmentfault.com/a/1190000013028798
https://baijiahao.baidu.com/s?id=1686728003170581869&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1677802258258817086&wfr=spider&for=pc
《图解HTTP》
《计算机网络 自顶向下方法》
对对象的这些请求可以一个接一个地发送,而不必等待对未决请求的回答
Quick UDP Internet Connections