【HTTPS】Https和SSL学习笔记(一)
1. 什么是HTTPS
在说HTTPS之前必须要先说一下HTTP。我们平常浏览网页用的就是HTTP协议,HTTP协议之间传输的数据都是明文,这样对于一些敏感信息传输其实是不安全的,很容易被恶意窃取。应于这样的需求,网景公司设计了SSL协议,用于对HTTP协议传输的数据进行加密,于是HTTPS就此诞生了。SSL的最后一个版本是3.0,之后IETF对SSL3.0进行了升级,于是有了TLS。实际上当前的HTTPS都是用的TLS协议,但SSL依旧被浏览器所支持。
2. HTTPS的工作原理
HTTPS在传输数据之前要求客户端与服务端之间完成一次握手过程,在这个过程中,确定以后数据传输所需要的密码信息。在整个握手过程中,主要用到了非对称加密算法、对称加密算法以及HASH算法。
以下介绍握手过程:
(1) 客户端(浏览器)将自己支持的一套加密算法发送给服务器;
(2) 服务器从中选出一组加密算法和HASH算法,并将自己的身份信息以证书的形式发送给浏览器,证书中包含了域名信息、证书颁发机构、加密公钥等等。
(3) 浏览器取得证书后,需要做下面几件事情
(a)验证证书的合法性,比如证书颁发机构是否可信任,证书中的域名与正在访问的域名是否一致等。如果证书是信任的,则在网址旁边出现一把锁(如图1),否则会给出证书不受信任的提示。
(b) 如果浏览器认为证书是受信任的或者用户接受了不信任的证书,浏览器会随机生成一个随机数,并用步骤(2)中返回的公钥进行加密;
(c) 使用约定好的HASH计算握手消息,并用上面生成的随机数进行加密,最后将生成的所有信息一起发给服务器。
(4) 服务器接收到这些信息后需要做下面几件事情
(a) 使用自己的私钥将信息解密取出密码,然后再拿密码解密握手信息,查看HASH是否一致。
(b) 使用密码加密一段握手信息,发送给浏览器
(5) 浏览器解密并计算握手消息的HASH,如果与服务器发来的HASH一致,则握手结束。以后浏览器和客户端之间通信则通过之前浏览器生成的随机密码进行加密。
为什么要进行上面这一系列的操作呢?
主要是为了确认双方都获得了相同的密码,并且可以成功地加密解密,为后续的数据传输做了一次测试。
3. 非对称加密算法、对称加密算法和HASH算法
非对称加密算法用于加密浏览器端生成的随机密码,因为这个密码是HTTPS数据传输的关键,所以使用了这种加密算法。非对称加密算法会生成公钥和私钥,公钥用于加密数据,因此可以随意传输。私钥用于解密数据,由服务端保管,不可泄露。
对称加密算法用于对真正传输的数据进行加密。
HASH加密算法用于验证数据的完整性。
本文内容参考http://www.guokr.com/post/114121/
【HTTPS】Https和SSL学习笔记(一)的更多相关文章
- 【HTTPS】Https和SSL学习笔记(二)
此文讲述证书的相关信息,参考文章链接http://www.guokr.com/post/116169/ 一. 证书的类型 常用的几种证书如下: (1) SSL证书,用于加密HTTP (2) 代码签名证 ...
- SSL学习笔记
/************************************数据类型***************************************//* Number(数值型),Bool ...
- 【HTTP】HTPP学习笔记
1.了解web及网络基础 HTTP的诞生 TCP/IP协议族 应用层 FTP文件传输协议 HTTP超文本传输协议 DNS域名系统:IP地址<--->域名 传输层 TCP传输控制协议 三次握 ...
- https学习笔记三----OpenSSL生成root CA及签发证书
在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...
- 大前端学习笔记整理【七】HTTP协议以及http与https的区别
前言 还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了... 这段时间公司的项目正好要求做https的转换和迁移,然后自己 ...
- https 学习笔记
参考 : http://www.cnblogs.com/JimmyZhang/archive/2008/10/02/Cryptograph.html https://blog.csdn.net/Jog ...
- nginx 学习笔记(9) 配置HTTPS服务器--转载
HTTPS服务器优化SSL证书链合并HTTP/HTTPS主机基于名字的HTTPS主机带有多个主机名的SSL证书主机名指示兼容性 配置HTTPS主机,必须在server配置块中打开SSL协议,还需要指定 ...
- HTTP/HTTPS 学习笔记
超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层,HTTP是建立在TCP协议之上的. HTT ...
- 《图解http协议》之HTTPs学习笔记
对于IP协议,并不陌生.TP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体.所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠的,无连接的数据传送服务.I ...
随机推荐
- Delphi XE5 常用功具与下载
1.Delphi XE5 正式版 http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso http: ...
- hdoj 2084 数塔
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- java中几个特殊的类
1 内部类-----是在其他类中的类 1.1 内部类的定义 将类定义为 class xxxx{... ...}置于某个类的内部即可‘ 内部类编译时生成 xxxx$xxxx的class文件 内部类不能够 ...
- Oracle- 表的管理
一.表名和列的命名规则 1.必须以字母开头. 2.长度不能超过30字符. 3.不能使用Oracle的保留字. 4.只能使用如下字符 A-Z,a-z,0-9,$,#等. 二.Oracle支持的数据类型 ...
- 剑指OFFER之包含min函数的栈(九度OJ1522)
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n&l ...
- Redis 配置文件 Redis.conf 参数说明
Redis 配置文件 Redis.conf 参数说明 参数名 参数说明 参数实例 daemonize 是否以后台守护进程运行,默认为 no, 取值 yes, no daemonize no ...
- IDF实验室-简单的ELF逆向 writeup
题目:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=39 下载得到ElfCrackMe1文件,直接用IDA打开 ...
- mysql事物
一. 什么是事务 事务就是一段sql 语句的批处理,但是这个批处理是一个atom(原子) ,不可分割,要么都执行,要么回滚(rollback)都不执行. 二.为什么出现这种技术 为什么要使用事务这个技 ...
- git 几款好用的客户端工具
虽然git命令非常好用,但客户端UI工具掌握起来.使用起来更加容易.如果你不想用git命令的话,那就用UI工具代替吧. 下面介绍下几款好用的git工具 1.tortoiseGit for Mac (这 ...
- Linux内核之内存管理(4)--缺页处理程序
本文主要解说缺页处理程序,凝视足够具体,不再解释. //以下函数将一页内存页面映射到指定线性地址处,它返回页面的物理地址 //把一物理内存页面映射到线性地址空间指定处或者说把线性地址空间指定地址add ...