Http协议是常用的传输层协议,但有些时候我们需要更加安全的http协议,即Https协议。Https协议与Http协议的区别在于:Https协议在Http与传输层之间添加了一个用于加密的SSL(安全套接层)。
首先来分析下,一个信息想在网络中安全的传输,需要能够做到一下几点:
1. 防偷听(你在购物网站上填写你的银行卡密码,肯定不希望这个密码北其他人知道)
2. 防篡改(你在付款时,想某东转账100RMB,该信息在传输过程中被改为转账10000RMB,你会疯的)
3. 防冒充(你得知道,和你通信的服务器到底是不是某东的服务器,万一是个钓鱼网站呢)
SSL就是一个能够保证上面几点的密码框架,这个框架使用了一些常用的安全算法来保证防偷听,防篡改以及防冒充。我们来具体看下:
1. 防偷听:使用对称加密算法对需要发送的信息进行加密
(当然也可以使用非对称加密,但非对称加密的性能没有对称加密的性能好),一旦使用对称加密,就涉及到密钥的共享问题
(可以通过使用公钥对共享密钥加密来解决)。
2. 仿篡改:在发送消息的时候,生成一个MAC,和消息接收端进行认证即可。
3. 防冒充:在通信的时候要求服务器发送一个加了自己签名的公钥。
上面的三点分别对应对称加密,消息认证码,数字签名。
有了上面的基础,我们来看https的通信过程。
1. Client端发送请求,表示想要和Server端建立SSL连接。
2. Server端返回给客户端一个证书信息(其中包含Server端的公钥A)。
3. Client端生成一个对称加密用的密钥B,并用公钥A对密钥B进行加密
4. Server端利用与A对应的私钥解密出密钥B
5. Client端将信息用密钥B加密后发送给Server
如下图:
- 大小: 12.1 KB
分享到:
相关推荐
基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发...
基于Java的中的SSL及HTTPS协议实例源码.zip
基于java的中的SSL及HTTPS协议实例源码.zip
基于Java的实例源码-SSL及HTTPS协议实例源码.zip
基于Java的实例开发源码-SSL及HTTPS协议实例源码.zip
Tomcat 开启基于https的SSL配置
Windows Server 合规漏洞修复,修复Windows Server CVE-2016-2183 SSL/TLS协议信息泄露漏洞修复脚本,基于Windows PowerShell, 兼容Windows Server 2016/2019,防止Sweet32 生日攻击
信任X.509证书 ,可以使用demo,根据需要请自行下载!
HTTPS协议位于TCP/IP协议与应用层各协议之间,是基于HTTP协议的一种对传输数据加密的协议。可以将其简要分解为:HTTP+SSL.它建立在可靠的传输协议之上(如TCP协议等。)当数据经过TCP协议封装之后,SSL会对数据包...
基于netty的websocket服务,配置阿里云ssl证书,实现正式服务器的wss访问;适用于JAVA服务器部署访问;对应生成博客地址https://mp.csdn.net/mp_blog/creation/editor/130410613
基于openssl 自行签发https 协议证书 openssl+nginx实现https自签有效加密实战记录
vs2015编译的64位curl库,版本是7.88.1,支持https协议。libcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, ...
关键词:SSL,PKI,MAC 摘 要:SSL利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。本文介绍了SSL的产生背景、安全机制、工作过程及典型组网应用。 缩略语: 缩略语 ...
在使用https协议不管是服务器端还是客户端都需要使用到ca证书来进行访问。 一般来说,性能测试为所常见的为客户端使用https打开页面的方式。 在这个情况下,首先是处理https访问过程中的证书 1. 证书的准备 常见的...
一种是基于 https 协议,如:https://www.baidu.com 现在很多网站出于安全的考虑,会把网站的域名访问从 http 已经升级为 https,如果你不知道 http 和 https 的概念,不妨先看看下面这篇文章:HTTP和HTTPS有什么...
Nginx使用SSL模块可以支持WebApi的https访问,增加了访问的...WebApi基于SSL协议数据传输的加密, 保证了通信的安全性。SSL的功能包含了建立服务器与客户之间安全的数据通道、服务器对客户的身份认证(如公钥、私钥)等
基于ijkplayer 0.8.8版本(github 2021年11月版本)编译的全平台全协议JNI libijkffmpeg.so。 支持open ssl, h265, rm, rmvb, rtsp rtmp。直播与本地播放全部支持。 编译的平台有:arm64-v8a armeabi armeabi-v7a x86 ...
SwiftNIO SSL SwiftNIO SSL 是一个 Swift 包,其中包含基于 BoringSSL 的 TLS 实现。 这个包允许用户编写协议客户端和服务器,使用 TLS 来保护飞行中的数据。 该名称主要受此包使用的库名称 (BoringSSL) 的启发,而...
什么是HTTPS网络协议? 这将是一个完整的基于SpringBoot SSL的REST项目。 您只需要重构该框架/代码库,并用您的类替换现有的Java类,以使该框架满足您的业务需求。 您可以将此项目用作后端或中间层应用程序。
mbedTLS(前身 PolarSSL)是一个由 ARM 公司...完整的 SSL v3、TLS v1.0、TLS v1.1 和 TLS v1.2 协议实现 X.509 证书处理 基于 TCP 的 TLS 传输加密 基于 UDP 的 DTLS(Datagram TLS)传输加密 其它加解密库实现