https协议分析
一:什么是HTTPS
https全称是超文本传输安全协议,https利用SSL/TLS加密数据包来进行http通信。https开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
通常,HTTP直接和TCP通信,当使用SSL时,则变成了HTTP先和SSL通信,再由SSL和TCP通信 ,如下图所示。

一个安全的网络环境包含以下3个方面:
- 通信内容的保密
- 通信双方身份的真实
- 通信内容的完整
而https的诞生就是为了解决这3个问题。所以可以理解为:HTTP + 加密 + 认证 + 完整性保护 = HTTPS
二:密码学基本概念
https中就是应用了各种密码学技术,保证
1、数字证书
一种文件的名称,好比一个人或者机构的名称,能够证明这个人或者机构的真实性。其中包含的信息,用于实现上述功能。其作用类似于生活中的身份证。最简单的证书包含一个公开秘钥、公钥的数字签名,公钥拥有者的信息。
2、数字签名
对文件加密只是确保了文件的完整性,通过数字签名的技术可以确定发件人的身份。而如何实现发件人的身份不是伪造的呢,简单来说,数字签名(digital signature)是公钥密码的逆应用:用私钥加密消息,用公钥解密消息。
生成签名过程:
一般来说,不直接对消息进行签名,而是对消息的哈希值进行签名,步骤如下。
- 对消息进行哈希计算,得到哈希值
- 利用私钥对哈希值进行加密,生成签名
- 将签名附加在消息后面,一起发送过去
验证签名过程:
- 收到消息后,提取消息中的签名
- 用公钥对签名进行解密,得到哈希值1。
- 对消息中的正文进行哈希计算,得到哈希值2。
- 比较哈希值1和哈希值2,如果相同,则验证成功。
3、对称加密
对称加密又叫做共享秘钥加密,加密和解密使用的是同一秘钥。当传输时也必须把密钥传给对方,这就造成密钥传输的安全问题,如果密钥被窃取,那么加密就变得毫无意义。常见的对称加密算法有DES,AES等。
4、非对称加密
非对称加密又叫做公开秘钥加密,顾名思义,加密的秘钥是公开的。之所以叫非对称加密,是因为秘钥是一对的,分为公钥和私钥。公钥公开给大家,私钥自己保存,任何人都可以通过公钥加密明文,但只有私钥拥有者才可以通过私钥解读公钥加密后的密文。常见的非对称加密又RSA,DH等
安全算法
不使用自己开发的加密算法,而使用没有专利的、安全的、公开的标准加密算法。
说明:
- 当前的专利算法包括但不限于:IDEA。已过专利保护期的加密算法已不再受专利保护;
- 不推荐的加密算法包括:DES、MD5、SHA1、HMAC-MD5、HMAC-SHA1;
- 对称加密算法建议使用:AES;
- 密钥交换算法建议使用:DH;
- 数字签名算法建议使用:SHA1withDSA;
- 非对称算法建议使用:ECC、RSA;
- HASH(哈希)算法建议使用:SHA;
- HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA;
- 建议的各算法建议采用如下的加密强度:

三:HTTPS工作流程
https工作流程可以分为3个阶段:
1、认证服务器:客户端确认服务器证书的认证机构是否在受信任的CA机构列表中,从证书中获取服务器的公钥。
2、协商会话秘钥:客户端通过服务器公钥进行通信,协商出会话密码。这个会话秘钥是对称加密的类型,因为非对称加密算法开销计算量大,不适合对大数据加密。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。
3、此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。
四:使用HTTPS的流程
1、使用openssl等工具生成web服务器的私钥key
2、使用openssl等工具,结合key以及服务器的其他信息,生成证书请求csr文件
3、发送csr文件给CA的其中一个机构,支付相应费用,获得服务器证书
4、通过webServer(Nginx等)中配置Http服务
总结:
https就是在http上面加入了ssl/tls协议,保证数据传输的安全性。但由于https比http耗费资源,所以一般比较重要的站点才会用https。
https协议分析的更多相关文章
- TLS握手协议分析与理解——某HTTPS请求流量包分析
https://xz.aliyun.com/t/1039 HTTPS简介 HTTPS,是一种网络安全传输协议,在HTTP的基础上利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护 ...
- Google的Protobuf协议分析
protobuf和thrift类似,也是一个序列化的协议实现,简称PB(下文出现的PB代表protobuf). Github:https://github.com/google/protobuf 上图 ...
- 协议分析TMP
最近闲来有事, 分析了一个非常低端(非常低端的意思是说你不应该对她是否能取代你现有的QQ客户端作任何可能的奢望,她只是一个实验性的东西)的手机QQ的协议, 是手机QQ3.0, 所用到的TCP ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- HTTPS 协议和原理
1 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身 ...
- 大型网站的 HTTPS 实践(1):HTTPS 协议和原理
转自:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重 ...
- 使用https协议解决掉顽固不化的已解密的登录请求
1.1 已解密的登录请求概述 在应用程序测试过程中,检测到将未加密的登录请求发送到服务器.由于登录过程所用的部分输入字段(例如:用户名.密码.电子邮件地址.社会保险号码,等等)是个人敏感信息,建议通过 ...
- [转载] TLS协议分析 与 现代加密通信协议设计
https://blog.helong.info/blog/2015/09/06/tls-protocol-analysis-and-crypto-protocol-design/?from=time ...
- HTTP 和 HTTPS 协议
HTTP协议是什么? 简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议. HTTP协议能做什么? 很多人首先一定会想到:浏览网页.没错,浏览网页是 ...
随机推荐
- zookeeper与kafka集群部署实现
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作.最终, ...
- PLC与上位机的socket通讯——上位机C#程序(二)
C#的网口通信 一.命令行 客户端程序:using System;using System.Collections.Generic;using System.Linq;using System.Tex ...
- yolo进化史之yolov3
yolov3的论文写的比较简略,不看yolov1,yolov2很难直接看懂. 建议先看v1,v2论文. yolov3主要做了几点改进 改进了特征提取部分的网络结构 多尺度预测 分类由softmax改为 ...
- ZooKeeper 介绍及集群环境搭建
本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...
- CentOS升级内核方法
查询现在系统的kernel安装包:rpm -qa |grep kernel 删除不用的内核安装包:rpm -e xxx centos 6升级:https://blog.csdn.net/wh21121 ...
- Android MediaPlayer 播放音频
本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPla ...
- 神奇的 SQL 之谓词 → 难理解的 EXISTS
前言 开心一刻 我要飞的更高,飞的更高,啊! 谓词 SQL 中的谓词指的是:返回值是逻辑值的函数.我们知道函数的返回值有可能是数字.字符串或者日期等等,但谓词的返回值全部是逻辑值(TRUE/FALSE ...
- hadoop生态系列
1.hadoop高可用安装和原理详解 2.hadoop2.7+spark2.2+zookeeper3.4.简单安装 3.windows下通过idea连接hadoop和spark集群 4.hadoop2 ...
- [C++] 访问控制与继承详解
1.访问控制中有三种角色:基类及其友元,派生类,类用户(对象):访问说明符分为public/protected/private,类的成员也相应的分为了3种. 2.访问说明符又分为两种:一个是基 ...
- rocketmq学习(二) rocketmq集群部署与图形化控制台安装
1.rocketmq图形化控制台安装 虽然rocketmq为用户提供了使用命令行管理主题.消费组以及broker配置的功能,但对于不够熟练的非运维人员来说,命令行的管理界面还是较难使用的.为此,我们可 ...