HTTP和HTTPS的区别 传输层的TLS本质

先了解加密的几种方式

加密无处不在 ,加密方式主要是分为两种 :对称加密非对称加密

对称加密算法和非对称加密算法只不过是密码学中的两种加密算法罢了,所谓的算法就是一种可以将信息从一种形式转变为另一种形式的规则。

 对称加密

对称密钥加密,又称为对称加密、私钥加密、共享秘钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。

对称加密也可以理解为一方通过密钥将信息加密之后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。简单的可以理解为一把钥匙既能加锁,还能用同一把钥匙进行            解锁。

常见的对称加密算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6;

对称加密的算法非常之多,一般使用中用AES就基本够用了。

非对称加密

  • 概念:公开秘钥加密,也称为非对称加密,一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关,是某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥,不公开的密钥为私钥。
  • 非对称加密的使用方式就是,比如A想将数据传输给B,那么首先A会向B索取一份公钥,A拿到公钥之后,通过该公钥对数据进行非对称加密,然后将密文传输给B,B收到密文之后通过私钥将其进行解密,从而得到数据内容。也就是说一把锁可以使用两把钥匙进行解密。
  • 常见的非对称加密算法:RSA、Elgamal、背包算法、Rabin。
  • RSA这种加密算法应用非常广泛,如SSH、HTTPS、TLS、电子证书、电子签名、电子身份证等。

加密方式总结

  • 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高;
  • 非对称加密使用了一对密钥,公钥和私钥,所以安全性高,但加密与解密速度慢;
  • 解决的方法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

深度研究TLS

TLS的前身是SSL,HTTP + TLS = HTTPS

TLS协议允许C/S模型的应用程序跨网络通讯,旨在防止窃听和篡改的方式进行沟通。

TLS协议的优势在于它是与应用层协议独立无关的。高层的应用层协议(例如:HTTP、FTP、Telnet等等)能透明的建立于TLS协议之上。

TLS协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
TLS协议是可选的,所以如果需要使用就必须配置客户端和服务器,有两种主要方式实现这一目标:一个是使用统一的TLS协议端口号(例如:用于HTTPS的端口443);

另一个是客户端请求服务器连接到TLS时使用特定的协议机制 (例如:邮件、新闻协议和STARTTLS)。一旦客户端和服务器都同意使用TLS协议,

他们通过使用一个握手过程协商出一个有状态的连接以传输数据[1]。通过握手,客户端和服务器协商各种参数用于建立安全连接:
1. 当客户端连接到支持TLS协议的服务器要求建立安全连接并列出了受支持的密码组合(加密密码算法和加密哈希函数),握手开始。
2. 服务器从该列表中决定加密和散列函数,并通知客户端。
3. 服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥。
4. 客户端确认其颁发的证书的有效性。
5. 为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用自己的私钥解密。
6. 利用随机数,双方生成用于加密和解密的对称密钥。
7. 这就是 TLS 协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS 握手过程就会失败,并且断开所有的连接。

http与https的概念

http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少;

https:是以安全为目标的http通道,简单讲是http的安全版,即http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL;

https协议的主要作用可以分为两种:一种是简历一个信息安全通道,来保证数据传输的安全;另一种是确认网站的真实性。

SSL/TLS:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别和保密。这里TLS是SSL的一种实现。

 SSL证书的说明:

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书;

SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能;

一个有效、可信的SSL数字证书包括一个公共密钥和一个私用密钥。公共密钥用于加密信息,私用密钥用于解译加密的信息;

如果你的网站使用SSL证书,客户就知道他们的交易安全可靠,并且充分信赖你的网站。

 

SSL证书优势

对比传统的加密方式,SSL证书有以下几点优势:

简单快捷:只需要申请一张证书,部署在服务器上,就可以在有效期内不用做其他操作;

显示直观:部署SSL证书后,通过https访问网站,能在地址栏或地址栏右侧直接看到加密锁标志,直观地表明网站是加密的。使用EV证书,还能直接在地址栏看到公司名称;

身份认证:这是别的加密方式都不具备的,能在证书里面看到网站所有者公司信息,进而确认网站的有效性和真实性,不会被钓鱼网站欺骗。

 

http与https的区别

对比传统的加密方式SSL证书有以下几点优势:

https协议需要到CA申请证书,一般免费证书很少,需要交费;

http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;

http和https使用的是安全不同的连接方式,用的端口也不一样,前者是80,后者是443;

http的连接很简单,是无状态的;

https是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

 

块(Block)加密 & 流(Stream)加密

世界上的数据分为两种:Block and Stream —— auxten

Block

块很容易理解,数据就在那里,无论你读或者不读。块的一个显著特征就是支持“随机读写”,你可以对数据Block正向读、倒着读、跳着读、躺着读。磁盘和内存都是这类数据。大多数加密算法对Block的支持是原生的,也就是说Block是大多数加密算法的加密、解密最小单元。

Stream

流就像水管一样,打开水龙头,来什么你就收什么。流的一个显著特征就是不支持“随机读写”。由于解密的过程会对之前的数据有依赖,对流进行加密难度系数要比块加密要高。流的一个典型场景就是网络数据传输,如:HTTPS、SSH等协议。

 

生成数字签名:

一般来说,不直接对消息进行签名,而是对消息的哈希值进行签名,步骤如下。

 (1)对消息进行哈希计算,得到哈希值
(2)利用私钥对哈希值进行加密,生成签名
(3)将签名附加在消息后面,一起发送过去
(4)验证签名
(5)收到消息后,提取消息中的签名
(6)用公钥对签名进行解密,得到哈希值1。
(7)对消息中的正文进行哈希计算,得到哈希值2。
(8)比较哈希值1和哈希值2,如果相同,则验证成功。

 

 从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网间网层、传输层、应用层。

 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层

 

 

 每层协议之间对应的协议

 

 

 

 图片来源于网络

 

 

 

 ps:愿所求皆所愿,所盼皆所期。

 

posted @ 2021-05-21 15:06  Fleeting__Time  阅读(545)  评论(0编辑  收藏  举报