一、https工作原理
01.HTTPS工作原理
- HTTPS工作原理
- 一、首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;
- 二、客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);
- 三、消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;
- 四、发送给服务端,此时只有服务端(RSA私钥)能解密。
- 五、解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。
02.HTTPS代理作用
- HTTPS代理的作用是什么?
- 代理作用:提高访问速度、Proxy可以起到防火墙的作用、通过代理服务器访问一些不能直接访问的网站、安全性得到提高
二、https安全问题
1.Https为何安全
1.1 Https=Http+Ssl
- Https保证了我们数据传输的安全,Https=Http+Ssl
- 之所以能保证安全主要的原理就是利用了非对称加密算法,平常用的对称加密算法之所以不安全,是因为双方是用统一的密匙进行加密解密的,只要双方任意一方泄漏了密匙,那么其他人就可以利用密匙解密数据。
- 非对称加密算法之所以能实现安全传输的核心精华就是:公钥加密的信息只能用私钥解开,私钥加密的信息只能被公钥解开。
1.2 非对称加密算法为什么安全
- 简述非对称加密算法为什么安全:
- 服务端申请CA机构颁发的证书,则获取到了证书的公钥和私钥,私钥只有服务器端自己知道,而公钥可以告知其他人,如可以把公钥传给客户端,这样客户端通过服务端传来的公钥来加密自己传输的数据,而服务端利用私钥就可以解密这个数据了。由于客户端这个用公钥加密的数据只有私钥能解密,而这个私钥只有服务端有,所以数据传输就安全了。
- 上面只是简单说了一下非对称加密算法是如何保证数据安全的,实际上Https的工作过程远比这要复杂
2.为什么要用Https
- 为什么要用HTTPS?
- 通信使用明文(不加密),内容可能被窃听(抓包工具可以获取请求和响应内容)
- 不验证通讯方的身分,任何人都坑你发送请求,不管对方是谁都返回相应
- 无法证明报文的完整性,可能会遭到篡改,即没有办法确认发出的请求/相应前后一致
3. Https如何加密
- Https如何加密?
- 加密&证书
- 加密方法:非对称加密(非对称加密算法有两个密钥:公开密钥(public key)和私有密钥(private key);并且加密密钥和解密密钥是成对出现的)
- 数字签名:数字签名技术就是对"非对称"和"数字摘要"两项技术的应用,它将摘要信息用发送者的私钥加密,与原文一起传送给接受者。接受者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原因产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输的过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。明文——>hash运算——>摘要——>私钥加密——>数字签名
- 数字证书:
三、ssl证书
01.什么是SSL证书
- Https协议中需要使用到SSL证书。SSL证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,需要从经销商购买。
- 证书有很多类型,按认证级别分类:
- 域名认证(DV=Domain Validation):最低级别的认证,可以确认申请人拥有这个域名
- 公司认证(OV=Organization Validation):确认域名所有人是哪家公司,证书里面包含公司的信息
- 扩展认证(EV=Extended Validation):最高级别认证,浏览器地址栏会显示公司名称。
- 按覆盖范围分类:
- 单域名证书:只能用于单域名,foo.com证书不能用不www.foo.com
- 通配符证书:可用于某个域名及所有一级子域名,比如*.foo.com的证书可用于foo.com,也可用于www.foo.com
- 多域名证书:可用于多个域名,比如foo.com和bar.com
02.TLS/SSL的原理
- TLS/SSL的原理是什么?
- SSL(Secure Sokcet Layer,安全套接字层)
- TLS(Transport Layer Security,传输层安全协议)