`
wangjian_tempus
  • 浏览: 3034 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Https通讯原理

阅读更多
1.       Https是什么?

Https是基于安全目的的Http通道,其安全基础由SSL层来保证。最初由netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法。现在广泛应用于互联网上安全敏感通讯。

2.       Https与Http主要区别

协议基础不同:Https在Http下加入了SSL层,

通讯方式不同:Https在数据通信之前需要客户端、服务器进行握手(身份认证),建立连接后,传输数据经过加密,通信端口443。

Http传输数据不加密,明文,通信端口80。

3.       SSL协议基础

SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层:

SSL记录协议(SSL Record Protocol):建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。

SSL握手协议(SSL Handshake Procotol):在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

4.       SSL协议通信过程

(1)    浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey)、对称加密算法种类及其他相关信息返回客户端;

(2)    客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发。若是,执行4步;否则,给客户一个警告信息:询问是否继续访问。

(3)    客户端浏览器比较证书里的信息,如证书有效期、服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证。

(4)    服务器要求客户端发送客户端证书(包含客户端公钥C_PuKey)、支持的对称加密方案及其他相关信息。收到后,服务器进行相同的身份认证,若没有通过验证,则拒绝连接;

(5)    服务器根据客户端浏览器发送到密码种类,选择一种加密程度最高的方案,用客户端公钥C_PuKey加密后通知到浏览器;

(6)    客户端通过私钥C_PrKey解密后,得知服务器选择的加密方案,并选择一个通话密钥key,接着用服务器公钥S_PuKey加密后发送给服务器;

(7)    服务器接收到的浏览器传送到消息,用私钥S_PrKey解密,获得通话密钥key。

(8)    接下来的数据传输都使用该对称密钥key进行加密。

上面所述的是双向认证 SSL 协议的具体通讯过程,服务器和用户双方必须都有证书。由此可见,SSL协议是通过非对称密钥机制保证双方身份认证,并完成建立连接,在实际数据通信时通过对称密钥机制保障数据安全性
分享到:
评论

相关推荐

    dyf0333#nginx#https通讯原理1

    (1) 浏览器发送一个连接请求给服务器 (2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发 (3) 客户端浏览器比较证书里的信息, (4)

    HTTPS 通信原理及详细介绍

    HTTPS 通信原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证。最初由netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法。现在广泛应用于互联网上安全敏感通讯。 我们都知道HTTPS能够加密...

    客户端与服务器通讯使用HTTPS原理分析与实操1

    【客户端与服务器通讯使用HTTPS原理分析与实操】 一、概述 HTTPS,全称为HyperText Transfer Protocol Secure,是HTTP协议的安全版本,它结合了HTTP协议的便利性和SSL/TLS协议的安全性,为互联网上的通信提供了加密...

    QQ通讯原理

    QQ通讯原理是网络通信技术的一种应用,主要基于客户端-服务器(Client-Server)架构和点对点(Peer-to-Peer)通信模式。在C#环境下,我们可以构建类似的简单通讯系统来理解这一过程。 首先,我们要知道QQ通讯的核心...

    Java远程通讯可选技术及原理

    首先,远程通讯的基本原理依赖于计算机网络通信,主要包括传输协议(如HTTP、TCP、UDP)和网络IO(如BIO、NIO、AIO)。传输协议是在Socket基础上针对特定应用场景设计的,而网络IO则提供了不同类型的I/O模型以优化...

    即时通讯系统源码 飞机即时通讯源码 适配iOS安卓系统源码.zip

    下面将详细讨论即时通讯系统的基本概念、设计原理、以及iOS和Android平台上的实现技术。 即时通讯(Instant Messaging,简称IM)系统是一种允许用户实时发送和接收文本、语音、图像、视频等多种类型信息的应用。它...

    MT7628AN+MT7612E 双频路由器原理图

    一份完整的路由器原理图通常包括电源电路、无线通讯模块、处理器核心、存储单元、网络接口、指示灯、按钮、天线等多个部分。 在这份原理图中,我们可以看到涉及的元件例如电阻(Resistor,标记为R)、电容...

    LABVIEW 网络通讯例程

    2. **网络通讯原理**: 网络通信涉及TCP/IP协议栈,包括应用层、传输层、网络层和数据链路层。LabVIEW提供了丰富的网络通信VI(虚拟仪器),可以方便地实现基于TCP、UDP等协议的通信。 3. **TCP通信**: TCP...

    HTTPS原理与证书实践1

    【HTTPS原理与证书实践1】 网络安全是现代网络通信的核心议题,尤其在互联网广泛普及的今天,数据的安全传输显得尤为重要。本文主要探讨了网络安全的基础知识,包括网络安全问题的出现背景、涉及的问题以及解决策略...

    即时通讯:即时通讯与即时通讯

    在本文中,我们将深入探讨即时通讯的基本概念、工作原理以及如何实现一个即时通讯应用。 一、即时通讯概述 即时通讯的核心特性在于“即时”,它提供了一种快速、便捷的在线交流方式。与传统的电子邮件相比,IM能够...

    qq微信即时通讯

    QQ和微信作为中国最流行的两款即时通讯应用,其背后的技术架构和实现原理值得深入探讨。 1. **即时通讯系统架构** 即时通讯系统的架构通常包括客户端(Client)、服务端(Server)和消息中间件(Message Broker)...

    Qt实现WebServer通讯

    在Qt中,QNetworkAccessManager是主要的网络通信类,它可以用来发起HTTP、HTTPS等网络请求。我们可以使用它的get()或post()方法来发送GET或POST请求,对应于Web服务中的两种基本请求类型。 接着,我们将qtsoap的...

    进程间的实时通讯方案: local socket(解决扩展和容器应用的实时通讯问题)

    1、原理文章:https://blog.csdn.net/z929118967/article/details/109616038 采用Local Socket方案(TCP)创建服务端和客户端从而达到通讯效果。 2、应用场景:解决扩展和容器应用的实时通讯问题

    基于C#的即时通讯客户端源码.zip

    【标题】"基于C#的即时通讯客户端源码"提供了深入了解C#...通过深入研究这个基于C#的即时通讯客户端源码,开发者不仅可以提升C#编程技能,还能了解即时通讯系统的架构和工作原理,为今后的网络应用开发打下坚实基础。

    即时通讯IM(1.成品)(备用)

    1. **网络协议**:即时通讯通常基于TCP/IP协议栈,利用HTTP/HTTPS或者自定义协议来实现数据传输。TCP保证了数据的可靠传输,而HTTP/HTTPS则提供了一种通用且安全的通信方式。 2. **消息模型**:IM系统的核心是消息...

    基于Qt串口通讯程序--已测试

    本项目是基于Qt框架实现的串口通讯程序,适用于学习Qt编程以及理解串口通讯的基本原理和操作。 **Qt框架** Qt是一个跨平台的应用程序开发框架,支持Windows、Linux、MacOS等多种操作系统。它提供了丰富的API,用于...

    android网络开发原理

    Android网络开发原理主要涵盖了网络通信的各种方式,包括HTTP、HTTPS、Socket等,以及相关的API使用和优化策略。本教程旨在为Android开发者提供深入理解网络开发背后的工作原理,以便更好地实现网络功能。 首先,...

    Android即时通讯代码

    10. **安全问题**:考虑到即时通讯涉及到敏感信息的传输,开发者需要了解HTTPS加密通信、防止XSS和CSRF攻击,以及如何处理用户隐私数据的安全。 通过这个项目,开发者不仅可以学习到Android开发的基本技能,还能...

    CDMA通讯原理

    NULL 博文链接:https://han329446082.iteye.com/blog/1535709

    基于以太网的TCP_IP通讯用户手册.pdf

    综上所述,《基于以太网的TCP/IP通讯用户手册》详细介绍了以太网通讯的基本原理、配置方法、通讯协议以及具体的通讯指令等内容,为用户提供了一个全面的技术指南,有助于更好地理解和应用以太网通讯技术。

Global site tag (gtag.js) - Google Analytics