首页 > 其他分享 >计算机网络协议之https协议(五)

计算机网络协议之https协议(五)

时间:2023-06-14 12:01:50浏览次数:145  
标签:协议 加密 证书 认证 计算机网络 SSL https 客户端

一、HTTPS协议

  HTTP协议是在HTTP协议的基础上通过加密传输和身份认证来保证传输过程安全的协议。HTTP传输存在如下安全隐患:

  1. 明文数据传输,攻击者最常用的攻击手法就是网络嗅探, 试图从传输过程当中分析出敏感的数据。进行网络嗅探攻击非常简单, 对攻击者的要求很低。使用网络发布的任意一款抓包工具, 一个新手就有可能获取到大型网站的用户信息。
  2. 不对传输内容是否被篡改做校验,攻击者可以轻易的发动中间人攻击, 修改客户端和服务端传输的数据, 甚至在传输数据中插入恶意代码, 导致客户端被引导至恶意网站被植入木马。

 因此,在涉及到移动支付等高安全的业务系统中,不能使用HTPP协议,由此HTTPS协议诞生了,HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。HTTPS设计目标主要有三个:

  1. 数据保密性(窃听):保证数据内容在传输的过程中不会被第三方查看。
  2. 数据完整性(篡改):及时发现被第三方篡改的传输内容。
  3. 身份校验安全性(冒充):保证数据到达用户期望的目的地。

二、TLS/SSL协议

  SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,SSL广泛支持各种类型的网络,需要SSL数字证书的配合使用。

  TLS(Transport Layer Security)是传输层安全性协议的缩写,它的前身是SSL,可以把TLS看做是SSL3.0的升级版,由于它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。

  SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(HTTP、FTP、Telnet等等)都能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

  SSL/TLS 是建立在传输层之上、应用层之下的安全通信协议,二者的出现都是为互联网通信提供安全及数据完整性保障。SSL中两个重要的概念是SSL会话和SSL连接:

  1. SSL连接:连接是提供恰当类型服务的传输,对于SSL这样的连接是点对点的关系。连接是短暂的,每个连接与一个会话相联系。
  2. SSL会话:SSL的会话是客户和服务器之间的关联,会话通过握手协议来创建。会话定义了加密安全参数的一个集合,该集合可以被多个连接所共享。会话可用来避免为每个连接进行昂贵的新安全参数的协商。  

  SSL握手协议在客户端和服务器之间协商会话参数,并建立会话。会话包含的主要参数有会话ID、双方的证书、加密套件(密钥协商算法、对称加密算法和摘要算法等)以及主密钥(master-key)。通过SSL会话传输的数据,都将采用该会话的预主密钥生成的主密钥和加密套件进行加密、计算MAC等处理。

  SSL握手认证有单向认证和双向认证两种方式,双向认证 SSL 协议要求服务器和用户双方都有证书,单向认证 SSL 协议不需要客户拥有证书。一般Web应用都是采用SSL单向认证的,如果是企业应用对接等就需要使用双向认证。SSL握手双向认证的过程如下:

  1. 客户端发出client hello 消息(支持的SSL/TLS 版本列表、支持的加密算法、支持的数据压缩方法、随机数A)。
  2. 服务端响应 server hello 消息(协商采用的SSL/TLS 版本号、会话ID、服务端数字证书、随机数B)。
  3. 服务端发送 client certificate request 消息请求客户端的证书。(单向认证时不需要该步骤)
  4. 客户端校验服务端的数字证书,校验通过后生成随机数C,使用数字证书中的公钥加密C后发回服务器。
  5. 客户端发送自己的证书到服务端。(单向认证时不需要该步骤)
  6. 服务端校验客户端的证书。(单向认证时不需要该步骤)
  7. 服务端解密客户端加密的随机数C,根据随机数A、B、C产生动态密钥master-key,加密一个server finish 消息发至客户端。
  8. 客户端根据随机数A、B、C产生动态密钥master-key,加密一个client finish 消息发送至服务端。
  9. 服务端和客户端分别解密对方的master-key,若解密成功则双向认证通过,握手完成,以后的数据包均采用master-key进行加密传输。

三、服务器证书

  SSL证书,又称为服务器证书,基于 SSL 证书,我们能够在客户端和服务器之间建立 HTTPS 加密连接,该连接能够对传输的所有数据进行加密,从而确保数据安全,防止被窃听、篡改或劫持。获取证书的方式有自签证书(不受信任)和向相互信任的第三方机构申请(受信任),证书包含了如下内容:

  1. 证书信息:SSL证书中包含了有关受保护的网站的有效的、可信的信息,其中包括受保护的网站的域名,以及SSL证书的发行者和过期日期。SSL证书提供了安全传输所需的详细信息,并尽可能避免任何欺诈行为、数据泄露和其他安全漏洞。
  2. 公钥:SSL证书要求一个网站为它设置一个唯一的公钥,用于使用客户使用安全信息与服务器进行加密通信。这个公钥被用来确保任何传递到服务器的信息,都在它们之间传递时,内容不被查看。
  3. 根证书:对于SSL证书的受信任性,主要是由根证书来提供的;此根证书是可信的授权机构所签发。客户端必须拥有根证书,才能验证SSL证书身份。如果证书不是受信任的授权机构所签发,浏览器将不会打开或验证它。
  4. 数字签名:SSL证书最重要的特征之一是它的数字签名。它可以确保它正确的创建和发布,而且不存在被篡改的可能性。数字签名的功能是为了确保在HTTPS请求中,数据传输过程始终是安全的。

 

四、HTTP协议网站转HTTPS协议的步骤

  1. 评估网站的安全风险:根据网站的性质和安全性要求,确定认证方式是使用双向认证还是单向认证。
  2. 绑定网站域名:网站如果为IP访问方式,则需要给IP绑定域名,因为证书是需要和域名绑定的。
  3. 获取证书:证书的获取方式有2类,一类是自签证书,一类是向证书颁发机构申请(腾讯云、华为云、阿里云等机构都可以申请,有免费的也有收费的)。
  4. 安装证书:证书是安装到网站服务器上的,常用的服务器有IIS、Nginx、Apache、Tomcat等等,双向认证需要浏览器端导入证书,且不常用此处略过,下面以单向认证为例说明证书的配置过程。
  • IIS安装证书:导入证书(Internet信息服务(IIS)管理器--->选择服务器--->服务器证书--->导入证书--->选择证书文件--->确定)、绑定证书(选择服务器下的站点--->绑定--->添加网站绑定(选择类型为https、输入端口、域名、选择SSL证书))。

  • Nginx安装SSL证书:导入证书(上传证书文件到Nginx的配置文件目录)、绑定证书(编辑conf配置文件,在需要配置的网站的server节点下增加ssl_certificate、ssl_certificate_key属性,分别指向证书的pem文件和key文件;在listen port的后面追加ssl字符串;设置server_name为域名)。

  •  Apache安装证书:导入证书(上传证书文件到Apache的配置文件目录)、绑定证书(编辑ssl.conf配置文件,配置SSLProtocol、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile、SSLHonorCipherOrder)。

  • Tomcat安装证书:Tomcat支持PFX格式和JKS两种格式的证书,您可根据您Tomcat的版本择其中一种格式的证书安装到Tomcat上。以安装pfx证书为例,首先也是导入证书到配置目录,然后编辑server.xml,添加如下配置。

标签:协议,加密,证书,认证,计算机网络,SSL,https,客户端
From: https://www.cnblogs.com/zqhIndex/p/17477054.html

相关文章

  • java构建TCP/IP协议:DNS,域名解析协议的基本原理介绍
    从本节开始,我们研究和实现一个体系较为复杂的协议,也就是域名解析协议,简写为DNS。该协议几乎也是我们”日用而不知“的幕后英雄,没有它肯定就没有现在的互联网繁荣。当我们在浏览器上输入网址,例如www.baidu.com时,浏览器先通过DNS协议找到与该网址对应的IP地址,然后再使用IP去向服务器......
  • java构建TCP/IP协议:DNS,域名解析协议系统的运行流程
    DNS协议的运转需要客户端和服务器进行交互。由于服务器端需要存储大量的域名信息,同时每天需要应答海量的解析请求,因此它的设计必须遵循分布式系统。客户端向一台服务器请求解析服务时,对方可能没有相应的域名信息,于是它会向上一层查询,获得拥有给定域名信息的服务器,然后把对应服务器......
  • http与https的区别
    HTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。并且https协议需要到ca申请证书。HTTPS......
  • 国标GB28181协议客户端开发(一)整体流程和技术选型
    国标GB28181协议客户端开发(一)整体流程和技术选型本系列文章将介绍国标GB28181协议设备端的开发过程。本文旨在探讨整体设计和技术选型方面的考虑,为开发人员提供指导和参考。文章将从设备端开发的整体架构、信令交互流程以及关键技术选型等方面展开讨论,帮助有需要的读者了解和把......
  • 各种音视频协议技术及特点
    IP协议网络层协议,主要负责将数据包发送给最终的目标计算机,无状态、不可靠无连接协议无状态:无状态是指IP通信双方是不同步传输数据的状态信息。所有IP数据报的发送、传输和接收都是相互独立。无连接:无连接是指IP通信双方都不长久的维持对方的任何信息。上层协议每次发送数据的......
  • JPEG编码协议--DCT变换
       从之前的几篇文章介绍可以看出,JPEG编码最重要的一步就是DCT变换,将空域的图像信号转换到频域,达到良好的去空间相关性的性能,DCT变换本身是无损的。因此DCT变换在图像编码领域被广泛应用。一、一维DCT变换   在JPEG编码中使用了二维DCT变换,一维DCT是二维的基础,我们......
  • 计算机网络(七)应用层
    计算机网络(七)应用层应用层:解决通过应用进程交互实现特定网络应用的问题运输层:解决进程之间基于网络的通信问题网络层:解决分组在多个网络上的传输(路由)问题数据链路层:解决分组在一个网络(或一个链路)上的传输问题物理层:解决用何种信息来传输比特的问题1应用层概述应用层......
  • 使用nginx搭建https服务器
    最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。首先确保机器上安装了op......
  • 路由协议EIGRP知识小结
    EIGRP(EnhancedInteriorGatewayRoutingProtocol)增强内部网关路由协议,EIGRP结合了链路状态和距离矢量型路由选择协议的Cisco专用协议,采用弥散修正算法(DUAL)来实现快速收敛,可以不发送定期的路由更新信息以减少带宽的占用,支持Appletalk、IP、IPX、Novell和NetWare等多种网络层协......
  • 聊聊QUIC协议的发展
    作者|王盛策划|包研、Alex编辑|AlexQUIC年终盘点#001#QUIC(QuickUDPInternetConnections,快速UDP互联网连接)是一种新的“更快”的通用网络传输协议。相比于TCP和TLS,QUIC提供了许多改进来提升网络传输的性能。随着QUIC协议的标准化,QUIC之上的HTTP/3协议已经被众多浏览器所......