https学习总结
1、https简介
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,RFC2818文档中https也称作TLS之上的HTTP。因此加密的详细内容请看SSL。 https所用的端口号是443。见下图:
从上面两张图中可知,https协议是基于SSL协议的。
2、https的实现原理
有两种基本的加解密算法类型:
1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
下面看一下https的通信过程:
https通信的优点:
1)客户端产生的密钥只有客户端和服务器端能得到;
2)加密的数据只有客户端和服务器端才能得到明文;
3)客户端到服务端的通信是安全的。
3、服务器验证客户端
如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:
①客户的证书使用日期是否有效
②为客户提供证书的CA 是否可靠
③发行CA 的公钥能否正确解开客户证书的发行CA 的数字签名
④检查客户的证书是否在证书废止列表(CRL)中
4、加密
在https的通信过程中,组合使用了公用密钥方式加密和共享密钥方式加密这两种技术。
公用密钥方式要比共享密钥方式慢得多,因此使用公用密钥来完成共享密钥的交换。公用密钥是从证书中获得的。
拿到共享密钥之后,所有的内容之间的通信都会使用共享密钥来进行加密和解密。
公用密钥的作用就是为了安全的交换共享密钥,共享密钥是用来通信内容的加密和解密。这样既确保了通信之间的安全,也确保了加密和解密的效率。
5、SSL的连接
连接分为两个阶段,即握手和数据传输阶段。
握手阶段对服务器进行认证并确立用于保护数据传输的加密密钥。必须在传输任何应用数据之前完成握手。一旦握手完成,数据就被分成一系列经过保护的记录进行传输。
第二篇:关于查看httpsheader解密的一些方法
By-mr.Accuracy 关于Fiddle软件的大致介绍以及使用配置方
法-by Mr.Accuracy
第一章: 介绍 推荐俩方法:
第一个是对QQ程序广告域名收集方法
第二个是Fiddler软件的介绍(相当给力);可以设置对PC设置代理,手机通过代理访问互联网,且其所有http,https包都将被解码!辅助判断移动应用PC应用加密流量
1:今日测试QQ6.8想开发广点通广告之余,搜了下qq广告类域名。这个列表通过fiddle收集的 ,下面介绍fiddle。
By-mr.Accuracy 2:此列表收集方式通过一款叫FiddlerCap WEB以及另一个工具
Fiddler4 请求记录器的工具,此工具如下截图:
By-mr.Accuracy 可捕捉本机所有http应用;最重要的:可以实时解密https请求以辅助我们分析应用! 如下图:实验1:对
~设备的ssl登陆测试:
By-mr.Accuracy
By-mr.Accuracy
By-mr.Accuracy 实验
2: 通过对手机下载证书,手机设置代理,则起上网所有流量,包括https都会被 fiddle 捕获并解密;可供我们队移动应用加密数据时候有个辅助判断作用!
以下是我今天遇到一个 叫部落冲突的 手游,数据包上看,不确定是否是该游戏,基本无法判断。而通过fiddle来捕获我们发现如下:其请求全部被解密
By-mr.Accuracy
By-mr.Accuracy 比较遗憾的是:我发现fiddle输出的是解密后的数据,我们无法判断解密后的数据与我们抓到的包之间的对应关系,因此对写特征好像只有一点点儿好处。。。。
By-mr.Accuracy
第二章:Fiddle4以及手机流量通过PC上网且http/https流量被fiddler完全解析的配置
-by Mr.Accuracy
大致介绍:
Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。 同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。 本文介绍Fiddler截获IPhone发出的HTTP/HTTPS包
前提条件是:安装Fiddler的机器,跟Iphone 在同一个网络里, 否则IPhone不能把HTTP发送到Fiddler的机器上来。
截获智能手机发出的HTTP包有什么用? 用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序 用处二: 软件测试人员用于测试智能手机上的软件。
用处三: 截获了HTTP/HTTPS后,你想干什么就干什么,比如修改Request,或者Response.
配置Fiddler, 允许"远程连接"
打开Fiddler, Tools-> Fiddler Options 。 . (配置完后记得要重启Fiddler)这个是重点,配置完务必要重启 fiddler;否则你配置的不会生效,手机即使设置正确也会提示你验证失败!)
By-mr.Accuracy 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
获取Fiddler所在机器的IP地址
这个简单吧。 我Fidder所在的机器地址是: 192.168.1.104
IPhone上安装Fiddler证书(Android同理啦)
这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步
1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104
2. 打开IPhone 的Safari, 访问 http://192.168.1.104:8888, 点"FiddlerRoot certificate" 然后安装证书
附录:
安卓手机通过360wifi配置fiddler, 1:pc端360无须设置,pc上只要按之前的
Fiddler, Tools-> Fiddler Options
. 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来;
By-mr.Accuracy
再提示一下:(配置完
PC端fiidler后记得要重启Fiddler)这个是重点,配置完务必要重启 fiddler;否则你配置的不会生效,手机即使设置正确也会提示你验证失败!)
2:手机端长按360wifi的那个wifi信号,选中修改网络;高级选项;设置手动代理;代理主机名:写ip,指向你的pc的 ip;端口为8888即可;见图:
By-mr.Accuracy
Iphone/Android
上配置Fiddler为代理
打开Iphone/Android, 找到你的网络连接,也就是浏览器, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888
保存即可
如果你想解密https的一些请求header那么务必要给手机安装证书:务必!! 保证上面设置好后;手机登陆 你pcip:8888;
会有如下界面:
By-mr.Accuracy
图上 you can download certificate ;点下 下载证书 ;命名安装即可;重启 pcfiddler即可解密 https包header
大功告成,开始抓包
现在IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。
实例: 打开Safari,
1. 输入/tankxiao. 看看Fiddler能否捕获。
2. 输入https:///otsweb/ 看看Fiddler能否捕获。
是不是HTTP和HTTPS都截获到了????, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.
By-mr.Accuracy 用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。
只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->"描述文件")
2. 安装上面的方法,重新安装Fiddler证书
Fiddler捕获其他手机或者平板
方法类似