当前位置: 首页 > news >正文

HTTP有什么缺陷,HTTPS是怎么解决的

缺陷

HTTP是明文的,谁都能看得懂,HTTPS是加了TLS/SSL加密的,这样就不容易被拦截和攻击了。
SSL是TLS的前身,他俩都是加密安全协议。前者大部分浏览器都不支持了,后者现在用的多。

对称加密

通信双方握有加密解密算法,是对称的,但是假设有别人也知道这个算法就寄了

非对称加密

这篇博客讲的巨好
数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。当服务器发送经过数字签名的宏或文档时,证书和公钥也会随之一起发送。浏览器会查一下这个证书是不是它正在访问的这个网站的,并且这个证书合法不合法。
公开密钥是所有人都知道的密钥,私有密钥是只有自己知道的(一般放在服务器里)。
数据被公钥加密就只能用私钥解密,数据被私钥加密就只能用公钥解密
具体对应到实际场景,就是服务器会公布自己的公钥,客户端用这个公钥加密后发送数据给服务器,然后只有服务器用自己的私钥才能解开。
在通信里,实际上是如何相互信任的呢?
假如我有对方的公钥,我就可以用对方的公钥加密我的内容,顺便用我自己的私钥给内容签个名,然后发给他。对方收到后用对方的私钥解密内容,如果解密失败则为密钥过期或者发错人了;对方顺便用我的公钥验证(解密)一下签名,如果签名有误则是冒充或他人伪造。
也就是说:**公钥加密私钥解,任何人都可以加密信息发给持有私钥的对方。
私钥签名公钥验签,私钥签名出来的东西任何人都可以验证是否合法,不可抵赖。
再对信息本身公钥加密,将得到的结果,与接收到的信息进行对比。如果两者一致,就证明这封信未被修改过。
**
在这里插入图片描述

SSL证书

向Certificate Authority证书授权中心申请才有,这样用户就可以用https来访问网站了,端口号也会从80变为443

TLS握手流程

第三四步,是服务端发送证书和公钥发给客户端。
在这里插入图片描述

相关文章:

  • 探索ChatGPT在软件架构师工作中的应用
  • Spring-Cloud-Gateway Filter详细配置说明
  • 角蜥优化算法 (Horned Lizard Optimization Algorithm ,HLOA)求解无人机路径优化
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(九)-增强的小区ID定位
  • 【数据结构:树与堆】向上/下调整算法和复杂度的分析、堆排序以及topk问题
  • 泛微ecology9开发
  • Java学习笔记------拼图游戏
  • 【漏洞分析】CVE-2024-27198可RCE身份验证绕过JetBrains TeamCity
  • 什么是高级编程语言?——跟老吕学Python编程
  • 单例模式及线程安全的实践
  • 20个常用的Python脚本
  • Java开发与配置用到的各类中间件官网
  • MongoDB聚合运算符:$dateFromString
  • SQL中如何添加数据
  • 【kubernetes】关于k8s集群的pod控制器
  • DOM的那些事
  • IDEA 插件开发入门教程
  • Javascript编码规范
  • Java程序员幽默爆笑锦集
  • Meteor的表单提交:Form
  • Spring核心 Bean的高级装配
  • underscore源码剖析之整体架构
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 聊聊flink的BlobWriter
  • 使用SAX解析XML
  • 我的业余项目总结
  • 我有几个粽子,和一个故事
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 如何在招聘中考核.NET架构师
  • # 飞书APP集成平台-数字化落地
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (1)(1.11) SiK Radio v2(一)
  • (4)(4.6) Triducer
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (ZT)薛涌:谈贫说富
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (实战篇)如何缓存数据
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (数据结构)顺序表的定义
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ******之网络***——物理***
  • .libPaths()设置包加载目录
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET Project Open Day(2011.11.13)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 提取注释生成API文档 帮助文档
  • .NET 中创建支持集合初始化器的类型
  • .NET的数据绑定
  • .NET技术成长路线架构图
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET下ASPX编程的几个小问题