文章目录

  • HTTPS为什么安全
    • 1.https的作用是什么
    • 2.http为啥不安全
    • 3.https也要网络传输为啥他是安全的
      • (1)对称加密和非对称加密
      • (2)摘要
      • (3)签名
      • (4)解决下发假公钥的问题
      • (5)第三方机构 CA证书
    • 4.https传输的过程

HTTPS为什么安全

此文章只分析https为何保证安全,从发展历程开始分析,希望读者在阅读本文章前先弄懂httphttps的传输过程。

全文全文字,枯燥无味,但认真读完肯定受益匪浅

1.https的作用是什么

解决http传输数据的安全问题,对数据进行加密

2.http为啥不安全

网络传输过程只是两个人之间说悄悄话吗?显然不是的,你要经过路由,运营商,把你要传输的数据进行好几手的传递,中间有任何一个有坏心思都可以读取并篡改你的数据。

3.https也要网络传输为啥他是安全的

解决上面的问题我们要弄懂签名,摘要,证书,对称加密,非对称加密是什么

(1)对称加密和非对称加密

根据加密和解密的算法是否相同来区别对称和非对称加密

  • 对称加密:加密和解密是用同样的密钥

  • 非对称加密:私钥加密公钥解密,公钥加密私钥解密,私钥只有一个,公钥想有几个有几个

(2)摘要

摘要的作用是防篡改,举个例子,你有一篇文章《我的男朋友,彭于晏》,然后呢有人给你改了,把内容改成了宋小宝,这显然和题目不符合,意味着被篡改了,即摘要决定了内容是什么。

一段数据,通过摘要算法,拿出它的摘要,那么它的内容就定死了,不能再次修改,假设篡改的话,很大的几率上生成的摘要也会不同,两端数据摘要不同则代表被篡改。理解成hash即可。

过程:

一端发送 数据和这段数据的摘要,以及摘要密钥(因为对端要知道对方的摘要算法)。

另一端根据传递的密钥重新运算数据摘要,与另一端传递过来的摘要进行对比,相同则未篡改,不同则被篡改

此时还存在问题,假设有个大坏蛋把内容和摘要全改了怎么办?

解决此问题需要使用非对称加密+摘要的方式,即签名。

(3)签名

签名的作用是防伪。

过程:

一端的私钥对摘要进行加密,私钥只有一个,另一端用公钥进行解密,拿出摘要,再进行对比,防止中间人连皮带肉全部替换。

其为何安全?

场景:

客户端用私钥对一段摘要进行了加密,分析一下中间商具备的能力

1.能看吗

中间商有客户端私钥对应的公钥即可解密,能解密则意味着能看,那是否意味着能篡改呢,能看≠能改

2.能改吗

两端进行传输的时候肯定商量好了用哪对私公钥,你中间商能有私钥吗,私钥只有一个,所以说你没有加密的能力,所以说能看不能改。

继续往下猜想,假设说在商量密钥的时候动了手脚,因为公钥也是在网络上传输的,本来客户端想给服务端自己的公钥,然后大坏蛋扣留这个公钥,然后用自己的私钥生成的公钥交给服务端呢,则伪装客户端成功。伪装服务端也是一样的道理,无非就是服务端下发公钥的时候扣留,然后给你一份假的公钥,这时候解决这个问题就引入了第三方机构。

(4)解决下发假公钥的问题

先不想CA第三方机构,如果让我们自己解决怎么解决这个问题呢,把密钥拷到U盘里不就稳稳当当了,中间商没有我的公钥,首先不能看,而且呢我们两端商量好就用这对公私钥,私底下商量好,不经过网络就能解决一切问题。

产生的问题是,只要需要两端通信则需要copy u盘的密钥,限制太大了。

(5)第三方机构 CA证书

此时把上述u盘行为委托给可信的第三方,第三方会给我们的操作系统内置根证书,服务器申请证书,然后服务端传递的数据先发送一个证书,里面有自己的公钥,签名算法,指纹,指纹算法,证书颁发机构,过期时间等等,客户端对证书内容进行验证,第三方的服务是需要收费。

那这样究竟安不安全呢,分析传输过程

4.https传输的过程

1.客户端发送请求,浏览器输入地址

2.服务端接受请求,下发证书

3.客户端验证证书合法性

4.客户端生成对称加密密钥,并用证书里的公钥进行加密,传递给服务端

5.使用这个对称密钥进行数据传输

安全否在3个方面进行分析

1.能被监听吗

数据是对称加密的密钥来加密的,此密钥使用服务端的公钥来加密的,那么谁能解这个密钥呢,只有服务端的私钥可以解,因此中间人拿不到对称加密的密钥。

2.能被篡改吗

上述分析可得中间人拿不到对称加密的密钥,因为只有对称加密的密钥可以解码和编码数据。

3.能伪装吗

中间人伪装客户端和服务端能实现吗,第三机构的下发证书并不是随便下发的,一个组织首先提出申请,第三方机构对组织进行评审,审评通过还需付费才可使用。所以说中间人想要伪装服务端的成本非常高,伪装是相互的一个过程,伪装不了服务端就伪装不了客户端。

✨原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

HTTPS为什么安全相关推荐

  1. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  2. 消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

    消除安卓SDK更新时的"https://dl-ssl.google.com refused"异常的方法 消除安卓SDK更新时的"https://dl-ssl.google ...

  3. https://blog.csdn.net/blmoistawinde/article/details/84329103

    背景     很多场景需要考虑数据分布的相似度/距离:比如确定一个正态分布是否能够很好的描述一个群体的身高(正态分布生成的样本分布应当与实际的抽样分布接近),或者一个分类算法是否能够很好地区分样本的特 ...

  4. 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)

    上篇文章说到接口安全的设计思路,如果没有看到上篇博客,建议看完再来看这个. 通过园友们的讨论,以及我自己查了些资料,然后对接口安全做一个相对完善的总结,承诺给大家写个demo,今天一并放出. 对于安全 ...

  5. HTTP/HTTPS抓包工具-Fiddler

    HTTP代理神器Fiddler Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP请求. Fiddler启动的时候,默认IE的代理设为了127.0.0.1:8888,而其他浏 ...

  6. HTTP/HTTPS的请求和响应

    HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer ...

  7. 阿里云https认证

    1.登录阿里云服务器,在控制台上选择 安全(云盾)---CA证书服务(数据安全) 2.点击购买证书--(阿里把免费的隐藏起来了,这显得很不厚道)默认都是付费的,如果要免费的需要先选择 品牌 Syman ...

  8. 腾讯云https认证

    1.准备好域名 2.登录腾讯云,在腾讯云找到ssL证书管理 2.申请一个证书 选择1年免费版的 3.填写域名资料: 1.通用名称就是你的域名 2.申请邮箱填写你的常用邮箱 3.证书备注名:填写一个易记 ...

  9. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  10. 在okhttp3,WebView中忽略HTTPS证书校验

    在APP开发过程中,后台使用的可能是自签的Https证书,如果不忽略证书校验,会出现Trust anchor for certification path not found的错误 Okhttp3忽略 ...

最新文章

  1. 基于单片机的超市储物柜设计_657【毕设课设】基于单片机智能存柜储物柜存储柜系统设计...
  2. 看完让你彻底搞懂Websocket原理
  3. python重复import_Python module重复载入的问题
  4. about Ghost Solution Suite 2.5
  5. 英语 四六级 学习网址
  6. 离散免疫算法求解旅行商问题(源码实现)
  7. c# 备份oracle waitforexit()方法死锁,ProcessStartInfo挂在“WaitForExit”上?为什么?
  8. jquery动态加载JS【方法getScript】的改进
  9. sql视图 权限_MySQL数据库的SQL语言与视图
  10. 抓取html中用到的css_如何使用HTML和CSS制作像《星球大战》一样的抓取文字
  11. SpringMvc异步请求的使用及部分原理
  12. 获取Authorize.Net Transaction Key ( Getting Your Authorize.Net Transaction Key )
  13. 命中率极高的 Go 面试题,赶紧收藏!
  14. 你的护城河在哪?老程序员的一些2016感悟
  15. perl表达 匿名数组和匿名哈希
  16. 电脑手写输入法_5款好用的拼音输入法软件推荐
  17. GitHub中文项目排行榜
  18. 计算机怎么调整桌面图标的大小,电脑显示器屏幕图标大小如何设置_电脑显示屏内图标大小怎么调...
  19. js 相对路径转为绝对路径
  20. 怎么申请好用的企业邮箱?外贸公司企业邮箱托管

热门文章

  1. 360html怎么保存,360浏览器网页怎么保存电脑桌面上
  2. java与前端实现7种二维码
  3. 信奥中的数学:质数与合数
  4. MySQL utf8mb4字符集按中文拼音排序
  5. android系统最近删除照片,安卓手机最近删除的照片怎么恢复?专家教你这样做...
  6. Eclips运行时概述4
  7. html5 canvas 显示文字,如何使用HTML5canvas绘制文字
  8. load()方法异步请求数据
  9. 机械硬盘计算机管理,机械硬盘怎么分区
  10. Js逆向教程-10常见代码混淆