zoukankan      html  css  js  c++  java
  • HTTPS为什么会出现?一文帮你搞清楚什么是HTTPS

      让我们一起了解HTTPS。首先,让我们问你一个问题。为什么你需要HTTPS?我突然有了一个想法,为什么我们需要在面试中回答标准答案?为什么我们不说我们自己的想法和意见,但记住一些所谓的标准答案?技术仍然正确吗?
      HTTPS为什么会出现
      新技术的出现肯定是为了解决一些问题,那么HTTPS用HTTP解决了什么问题呢?
      HTTPS解决了什么问题
      一个简单的答案可能是不安全的HTTP。由于HTTP固有的明文传输特性,任何人都可以在传输过程中拦截、修改或伪造来自HTTP的请求,因此HTTP可能被认为是不安全的。在HTTP传输过程中,通信方的身份不会被验证,因此HTTP信息交换的双方都可能被伪装,即没有用户认证。在HTTP传输过程中,接收方和发送方不会验证消息的完整性。综上所述,为了结束上述问题,HTTPS的申请诞生了。
      什么是HTTPS
      你还记得HTTP是如何定义的吗?HTTP是一种超文本传输协议(HTTPS)。它是在计算机世界的两个点之间传输文本、图片、音频、视频和其他超文本数据的惯例和规范。让我们看看HTTPS是如何定义的。
      HTTPS的全称是超文本传输协议安全,用于在计算机网络的两个终端系统之间安全地交换信息。这相当于在HTTP的基础上增加了一个安全的单词眼。然后我们可以给HTTPS下一个定义:HTTPS是一个合同和规范,用于在计算机世界的两点之间安全传输超文本数据,如文本、图片、音频和视频。HTTPS是HTTP协议的扩展。它不能保证传输的安全性。那么谁来保证安全呢?在HTTPS,通信协议使用传输层安全性或安全套接字层加密。也就是说,HTTPS。
      HTTPS是做什么的
      《HTTPS议定书》提供了三个关键指标
      加密。HTTPS对数据进行加密以防止被窃听。计算机人工智能这意味着当用户浏览网站时,没有人能够监控他和网站之间的信息交换,或者跟踪用户的活动、访问记录等。从而窃取用户的信息。数据完整性:数据在传输过程中不会被窃听者修改。用户发送的数据将完全传输到服务器,以确保用户发送的是服务器接收的。
      认证是指确认对方的真实身份,也就是证明你就是你(这可以比作面部识别)。它可以防止中间人攻击并建立用户信任。
      在上述三个关键指标的保证下,用户可以安全地与服务器交换信息。既然你提到了HTTPS的优势,我怎么知道这个网站是使用HTTPS还是HTTP?两张图片应该能解释它。
      HTTPS协议其实很简单。RFC文件非常小,只有7页。它指定了新的协议名称和默认端口号443。至于其他响应模式、消息结构、请求方法、URI、报头字段、连接管理等。完全使用了HTTP,没有发现任何新内容。
      也就是说,除了协议名和默认端口号(HTTP默认端口80)之外,HTTPS协议在语法和语义上与HTTP相同。HTTP拥有它,HTTPS也按照顺序接受一切。那么,HTTPS如何实现HTTP无法实现的安全性呢?关键是这个系统是安全的。
      什么是SSL/TLS
      理解SSL/TLS
      传输层安全性是安全套接层的后续版本,它是一种用于在互联网上两台计算机之间进行身份验证和加密的协议。
      注意:在互联网上,许多名字可以交换。
      我们都知道,在一些在线服务(如在线支付)中,最重要的一步是创造一个值得信赖的交易环境,让客户能够轻松地进行交易。SSL/TLS确保了这一点。SSL/TLS的工作原理是通过一个称为X.509证书的数字文档将网站和公司的实体信息绑定到一个加密密钥。每个密钥对都有一个私钥和一个公钥。私钥是唯一的,通常位于服务器上,用于解密由公钥加密的信息。公钥是公开的。与服务器交互的每个人都可以持有公钥。用公钥加密的信息只能用私钥解密。
      什么是x . 509:x . 509是公钥证书的标准格式。本文档安全地将加密密钥与(个人或组织)相关联。509的主要应用如下
      SSL/TLS和HTTPS用于经过身份验证和加密的网页浏览
      通过S/MIME协议签名和加密的电子邮件
      代码签名:指使用数字证书来签署软件应用程序以实现安全分发和安装的过程。
      通过使用由著名的公共证书颁发机构(如SSL.com)颁发的证书对软件进行数字签名,开发人员可以向最终用户保证,他们希望安装的软件是由已知的可信开发人员发布的。签名后未被篡改或损坏。
      它也可以用来签署文件。
      它也可以用于客户端身份验证
      政府签发的电子身份证明(见www . SSL.com/article/PKI-and-digital-certificates-for-government/)
      我们稍后再讨论。
      HTTPS的核心是超文本传输协议
      HTTPS协议并不是一个新的应用层协议,但是它的部分通信接口被SSL和TLS所取代。通常情况下,HTTP首先与TCP直接通信。在使用了SSL的HTTPS协议之后,它将首先发展到与SSL通信,然后再与SSL和TCP通信。换句话说,HTTPS被一层SSL覆盖着。(我喜欢在最后留下臊粉。)
      SSL是一种独立的协议,不仅可以使用HTTP,还可以使用其他应用层协议,如SMTP(电子邮件协议)和Telnet(远程登录协议)。
      探索HTTPS
      我说,你为什么给自己起这么个牛逼的名字,还想吹牛?难道你不支持HTTPS吗?为什么这么吵?你也想探索HTTPS,让自己出丑。请尽快将TLS改为我的主,并赞美我的主。
      SSL是安全套接字层,它位于OSI 七层网络模型的第五层。1999年,因特网工程组将安全层更名为传输安全层。到目前为止,TLS已经出现了三个版本,1.1、1.2和1.3。目前,最广泛使用的版本是1.2,因此下面的讨论基于TLS 1.2。
      TLS用于在两个通信应用程序之间提供机密性和数据完整性。TLS由若干子协议组成,如记录协议、握手协议、警告协议、更改密码规范协议、扩展协议等。它综合运用了对称加密、非对称加密、身份认证等多种密码学前沿技术。(如果你认为一项技术非常简单,那么你只是一点也没有学到。任何技术都是美学上令人愉悦的,令人敬畏的人只是欣赏它,而不是贬低它。经过这么多的讨论,我们还没有看到顶级域名的命名惯例。让我们用一个顶级域名系统的例子来看看顶级域名系统的结构(请参考https://www.iana.org/assignments/TLS-parameters/TLS-parameters.XHTML)
      ECDHE-ECDSA-AES256-GCM-SHA384
      1
      这是什么意思?起初我有点困惑,但实际上有一些例程,因为TLS的密码套件相对标准,基本格式是由密钥交换算法-签名算法-对称加密算法-摘要算法组成的密码字符串,有时还有分组模式。让我们先来看看这意味着什么。
      密钥交换采用ECDHE,签名和认证采用ECDSA,对称加密算法采用AES,密钥长度为256位,分组方式采用GCM,摘要算法采用SHA384。
      TLS基本上使用对称加密和非对称加密。
      对称加密
      在我们了解对称加密之前,让我们先了解一下密码学。在密码学中,有几个概念:明文,密文,加密和解密
      明文(明文)通常被认为是一个有意义的字符或比特集,或者是一个可以通过一些公共编码获得的消息。明文通常表示为m或p。
      密文(密文),加密明文后,变成密文。
      加密,将原始信息(明文)转换为密文
      解密,将加密信息恢复到明文的过程。
      顾名思义,对称加密意味着加密和解密中使用的密钥是相同的。只要密钥的安全性得到保证,整个通信过程就是保密的。
      在顶级域名系统中有许多加密算法,如DES、3DES、AES、ChaCha20 20、TDEA、河豚、RC2、RC4、RC5、IDEA、鲣鱼等。目前,最常用的是AES-128、AES-192、AES-256和ChaCha20。
      DES的全称是数据加密标准,是一种用于数字数据加密的对称密钥算法。虽然它的56位短密钥长度对于现代应用来说太不安全,但它对加密技术的发展有很大的影响。3DES是从原始数据加密标准(DES)衍生而来的加密算法。自20世纪90年代以来,它变得非常重要,但后来,由于出现了更先进的算法,3DES不再重要。
      AES-128、AES-192和AES-256都属于AES。高级加密标准(Advanced Encryption Standard,高级加密标准)是高级加密标准的全称,它是DES算法的替代品,安全性高,性能好。它是使用最广泛的对称加密算法。
      ChaCha20是谷歌设计的另一种加密算法。密钥固定为256位,其纯软件性能优于AES。它在移动客户端上很流行,但是ARMv8也增加了AES硬件优化,所以它现在不再有明显的优势,但是它仍然是一个很好的算法。
      (其他人可以自己搜索)
      加密包
      对称加密算法也有分组模式的概念。对于GCM分组模式,它只能与AES、山茶和ARIA结合使用。AES显然是最受欢迎、部署最广泛的选择。它可以使算法加密任意长度的明文和固定长度的密钥。
      有几种分组方式,如欧洲央行、中央银行、CFB、OFB等。最早,但是他们已经被发现有一个又一个的安全漏洞,所以他们现在基本上不被使用。最新的分组模式称为aead(带关联数据的认证加密),它在加密的同时增加了认证功能。常用的有GCM、CCM和Poly1305。
      例如,ECDHE_ECDSA_AES128_GCM_SHA256表示128位密钥,而AES256表示256位密钥。GCM代表一种现代的认证关联数据加密(AEAD)操作模式,采用128位分组密码。
      我们在上面讨论过对称加密。对称加密的加密器和解密器使用相同的密钥,即加密器必须加密原始数据,然后在解密数据之前将密钥交给解密器进行解密。这会导致什么问题?这就像《小兵张嘎》发送一封信(信已经被加密),但是嘎子仍然保存解密的密码。如果嘎子在路上被魔鬼发现,那封信就会被完全暴露。因此,对称加密有风险。
      不对称加密
      非对称加密也称为公钥加密。与对称加密相比,非对称加密是一种新的改进的加密方法。密钥通过网络传输和交换,可以保证密钥在不暴露数据信息的情况下被及时截获。不对称加密有两个密钥,一个是公钥,另一个是私钥。公钥加密,私钥解密。任何人都可以使用public 密钥,并且只有您可以知道私钥。用公钥加密的文本只能用私钥解密,而用私钥加密的文本也可以用公钥解密。公钥不需要是安全的,因为公钥需要在网络之间传输。非对称加密可以解决密钥交换问题。网站保留私钥,并在网络上免费分发公钥。你只需要加密公钥就可以登录网站,而密文只能由私钥持有者解密。黑客无法破解密文,因为他没有私钥。
      非对称加密算法的设计比对称算法要困难得多(我们将不讨论具体的加密方法)。普通比如DH、每日生活津贴、RSA、ECC等。
      RSA加密算法是最重要也是最著名的一种。例如,DHE _ RSA _ camelia 128 _ GCM _ sha 256。它的安全性是基于整数分解的,用两个超级素数的乘积作为密钥生成材料很难从公钥计算出私钥。
      椭圆曲线密码也是一种非对称加密算法。它是基于椭圆曲线离散对数的数学问题。它使用特定的曲线方程和基点来生成公钥和私钥。ECDHE用于密钥交换,ECDSA用于数字签名。
      TLS使用对称加密和非对称加密的混合加密方法来实现机密性。
      混合加密
      RSA的运算速度非常慢,而AES的加密速度相对较快,TLS使用这种混合加密方法。在通信开始时使用非对称算法比如RSA,ECDHE来解决密钥交换问题。然后,随机数用于生成对称算法使用的会话密钥,公钥用于加密。收到密文后,另一方用私钥解密,并取出会话密钥。这样,双方实现了对称密钥的安全交换。
    如果您有互联网问题,也可以咨询我,谢谢!如果你也想一起学习人工智能,欢迎留言交流。

  • 相关阅读:
    自定义注解!绝对是程序员装逼的利器!!
    我女儿说要看雪,但是我家在南方,于是我默默的拿起了键盘,下雪咯。
    零基础转行前端,如何拿下了字节跳动、美团等大厂offer
    “TensorFlow 开发者出道计划”全攻略,玩转社区看这里!
    web面试必问的题
    Flutter开发指南之理论篇:Dart语法05(单线程模型,事件循环模型,Isolate)
    520了,用32做个简单的小程序
    虚拟机找不到本机vmnet0,vmnet8,无法连接xshell,解决方案
    Linux用户登出之后保持后台进程(nohup)
    Debian取消从光盘安装软件的方式(please insert the disc labeled)
  • 原文地址:https://www.cnblogs.com/phploser/p/12578734.html
Copyright © 2011-2022 走看看