HTTPS协议,SSL协议及完整交互过程
文章转自 https://blog.csdn.net/dfsaggsd/article/details/50910999
SSL
1. 安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议。
2. SSL协议的三个特性
Ø 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。
Ø 鉴别:可选的客户端认证,和强制的服务器端认证。
Ø 完整性:传送的消息包括消息完整性检查(使用MAC)。
3. SSL的位置
HTTPS
1. HTTPS基于SSL的HTTP协议。
2. HTTPS使用与HTTP不同的端口(,一个加密、身份验证层(HTTP与TCP之间))。
3. 提供了身份验证与加密通信方法,被广泛用于互联网上安全敏感的通信。
交互过程
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
1) 客户端请求建立SSL连接,并将自己支持的一套加密规则发送给网站。
2) 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息
3) 获得网站证书之后浏览器要做以下工作:
Ø 验证证书的合法性
Ø 如果证书受信任,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
Ø 使用约定好的HASH计算握手消息,
Ø 使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4) 网站接收浏览器发来的数据之后要做以下的操作:
Ø 使用自己的私钥将信息解密取出密码
Ø 使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
Ø 使用密码加密一段握手消息,发送给浏览器
5) 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手结束。
6) 使用随机密码和对称加密算法对传输的数据加密,传输。
4. 密与HASH算法如下:
1) 非对称加密算法:RSA,DSA/DSS,用于在握手过程中加密生成的密码。
2) 对称加密算法:AES,RC4,3DES,用于对真正传输的数据进行加密。
3) HASH算法:MD5,SHA1,SHA256,验证数据的完整性。
5. HTTP与HTTPS的区别:
1) https协议需要申请证书。
2) http是超文本传输协议,明文传输;https使用的是具有安全性的SSL加密传输协议。
3) http端口80,;https端口443。
4) http连接简单无状态;https由SSL+HTTP协议构件的可进行加密传输、身份验证的网络协议。
HTTPS协议,SSL协议及完整交互过程的更多相关文章
- Android Camera 通过V4L2与kernel driver的完整交互过程
http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...
- SSH协议、HTTPS中SSL协议的完整交互过程
1.(SSH)公私钥认证原理 服务器建立公钥:每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host*的文件 客户端通过ssh工具进行连接,如Xshell,SecureCRT 服 ...
- 聊聊HTTPS和SSL协议
本文为转载,原文链接http://www.techug.com/https-ssl-tls,作者不详. 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(H ...
- 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究
相关学习资料 Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 第2版 http://zh.wikipedia.org/wiki/IEEE_802.11 h ...
- wamp下安装https 实现 ssl 协议,主要是编写小程序通讯
也不知道腾讯为啥要这个限制,是想卖他的服务器资源么 简单几句话 1 wamp3.0.X的版本不行,我折腾了一天半,放弃了,换成wamp2.5 一次通过 2 证书 去腾讯云申请,单独域名的可以申请免费的 ...
- Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)
web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Tra ...
- trust an HTTPS connection 安全协议 随机数 运输层安全协议 应用层安全协议 安全证书
小结: 1.HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间) HTTPS(全称:Hyper Text Transfer Protocol over Secure ...
- 谈Delphi中SSL协议的应用(好多相关文章)
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
- 老陈---谈Delphi中SSL协议的应用[转]
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
随机推荐
- linux下使用gcc编译运行C/C++程序
编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链 ...
- lucene 核心概念及入门
lucene Lucene介绍及核心概念 什么是Lucene Lucene是一套用于全文检索和搜索的开放源代码程序库,由Apache软件基金会支持和提供.Lucene提供了一个简单却强大的应用程序接口 ...
- Java集合框架——jdk 1.8 ArrayList 源码解析
前言:作为菜鸟,需要经常回头巩固一下基础知识,今天看看 jdk 1.8 的源码,这里记录 ArrayList 的实现. 一.简介 ArrayList 是有序的集合: 底层采用数组实现对数据的增删查改: ...
- 利用批处理文件删除系统托盘上的图标(适用于Windows各个版本)
对于我这种强迫症患者来说,如果我已经删除了一些软件,但是系统托盘里面还有它,我会很难受.所以,没办法,必须想办法把它清除掉,还自己一片安宁!!!不知各位是否遇到过和我一样的问题,下面贴一段批处理文件的 ...
- 封装方法公共文件common.js
/** * Created by Administrator on 2017/3/24. */ /** * 格式化日期 * @param dt 日期对象 * @returns {string} 返回值 ...
- python基础之数据的三大结构
python的三大数据结构 1.顺序 2.分支 3.循环 # if语句联系# 如果age小于18岁,则打印信息“未成年”age = 17if age <= 18: print("未成年 ...
- mysql 之库, 表的简易操作
一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8; charset uft8 可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...
- 异步陷阱之IO篇
很多教程和资料都强调流畅的用户体验需要异步来辅助,核心思想就是保证用户前端的交互永远有最高的优先级,让一切费时的逻辑通通放到后台,等到诸事完备,通知一下前端给个提示或者继续下一步.随着.NET发展,a ...
- logcat use
将已经存在的工程导入到eclipse步骤: ①:首先复制当前工程所在的路径. ②:然后在eclipse,右键->Import->General->Existing Projects ...
- SDK Manager
dx.bat :将所有的.class文件变成一个.dex文件. aapt:Android Application package tools 安卓应用的打包工具. adb:Android Debug ...