C/C++编程知识:网络编程之 Https 详细分析,超详细知识点!

本文详细介绍了HTTPS的必要性、工作原理、SSL/TLS协议、RSA验证的风险与CA证书验证的重要性。通过实例分析了HTTPS的加密方式,探讨了中间人攻击和信息抵赖等问题,并阐述了HTTPS代理的作用。此外,文章还讨论了HTTPS的安全性,包括Charles抓包原理,以及HTTPS的性能损耗与优化策略,如CDN接入、会话缓存、硬件加速和SPDY/HTTP2协议。
摘要由CSDN通过智能技术生成

01.为何会有Https

Http的缺点

通信使用明文

通信使用明文意味着安全性大大降低,当通信过程被窃听后,无需花费额外的投入就可看到传输的数据。

例如使用抓包工具,无需任何配置就可查看任何使用HTTP协议的通信数据;

不验证通信方身份

不验证通信方的身份,将导致通信过程被窃听后,可能会遭遇伪装,例如使用抓包工具抓取数据后,就可按照数据包的格式构造HTTP请求;任何人都坑你发送请求,不管对方是谁都返回相应。

无法验证报文的完整性

不验证报文的完整性,数据在传输过程中就可能被篡改,本来想看杨充呢,结果数据在传输过程中被换成了逗比。

遭到篡改,即没有办法确认发出的请求/相应前后一致。

Http的缺点解决方案

通信使用明文

既然明文不安全,那可以考虑使用密文,即:对通信数据进行加密。即便数据被窃听,对方依然需要花费一定的投入来破解,这种高昂的成本间接提高安全级别。

不验证通信方身份

和服务端使用相同的算法,根据网络请求参数生成一个token,请求/应答时根据token来确定双方的身份。

无法验证报文的完整性

使用MD5/SHA1等算法进行完整性验证,对方接收到数据后,根据同样的算法生成散列值,比对发送方生成的散列值,即可验证数据的完整性。

你知道Http存在哪些风险吗?

窃听风险:Http采用明文传输数据,第三方可以获知通信内容

篡改风险:第三方可以修改通信内容

冒充风险:第三方可以冒充他人身份进行通信

如何解决这些风险

SSL/TLS协议就是为了解决这些风险而设计,希望达到:所有信息加密传输,三方窃听通信内容;具有校验机制,内容一旦被篡改,通信双发立刻会发现;配备身份证书,防止身份被冒充

SSL原理及运行过程

SSL/TLS协议基本思路是采用公钥加密法(最有名的是RSA加密算法)。大概流程是,客户端向服务器索要公钥,然后用公钥加密信息,服务器收到密文,用自己的私钥解密。

为了防止公钥被篡改,把公钥放在数字证书中,证书可信则公钥可信。公钥加密计算量很大,为了提高效率,服务端和客户端都生成对话秘钥,用它加密信息,而对话秘钥是对称加密,速度非常快。而公钥用来机密对话秘钥。

02.解决方案分析

Https加密方式

Https=Http+Ssl

Https保证了我们数据传输的安全,Https=Http+Ssl

之所以能保证安全主要的原理就是利用了非对称加密算法,平常用的对称加密算法之所以不安全,是因为双方是用统一的密匙进行加密解密的,只要双方任意一方泄漏了密匙,那么其他人就可以利用密匙解密数据。

非对称加密算法之所以能实现安全传输的核心精华就是:公钥加密的信息只能用私钥解开,私钥加密的信息只能被公钥解开。

非对称加密算法为什么安全

服务端申请CA机构颁发的证书,则获取到了证书的公钥和私钥,私钥只有服务器端自己知道,而公钥可以告知其他人,如可以把公钥传给客户端,这样客户端通过服务端传来的公钥来加密自己传输的数据,而服务端利用私钥就可以解密这个数据了。由于客户端这个用公钥加密的数据只有私钥能解密,而这个私钥只有服务端有,所以数据传输就安全了。

上面只是简单说了一下非对称加密算法是如何保证数据安全的,实际上Https的工作过程远比这要复杂。

03.SSL是什么

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值