对http和https原理总结与区别,做到抱起根底

HTTPS和HTTP的区别:

  • 1. HTTP 的URL 以http://开头,而HTTPS 的URL 以https:// 开头
  • 2. HTTP 是不安全的明文传输,而 HTTPS 是安全的加密传输。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  • 3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
  • 4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 工作在传输层
  • 5. HTTP 无法验证身份,而依赖于SSL证书的HTTPS 可验证服务器身份。https协议需要到ca申请证书,一般免费证书很少,需要交费。
  • 6. HTTP无需证书,而HTTPS 需要正规CA wosign颁发的SSL证书
  • 7, http的连接很简单,是无状态的。
  • 8, HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
  • 9,HTTPS对比HTTP可以在很大程度上提供安全的DNS基础设施

2.1  验证流程

  • 1 客户端发起一个https的请求,把自身支持的一系列Cipher Suite(密钥算法套件,简称Cipher)发送给服务端
  • 2  服务端,接收到客户端所有的Cipher后与自身支持的对比,如果不支持则连接断开,反之则会从中选出一种加密算法和HASH算法 以证书的形式返回给客户端 证书中还包含了 公钥 颁证机构 网址 失效日期等等。
  • 3 客户端收到服务端响应后会做以下几件事
  •     3.1 验证证书的合法性 
  •         颁发证书的机构是否合法与是否过期,证书中包含的网站地址是否与正在访问的地址一致等
  •         证书验证通过后,在浏览器的地址栏会加上一把小锁(每家浏览器验证通过后的提示不一样 不做讨论)
  •     3.2 生成随机密码
  •         如果证书验证通过,或者用户接受了不授信的证书,此时浏览器会生成一串随机数,然后用证书中的公钥加密。          3.3 HASH握手信息
  •        用最开始约定好的HASH方式,把握手消息取HASH值,  然后用 随机数加密 “握手消息+握手消息HASH值(签名)”  并一起发送给服务端
  •        在这里之所以要取握手消息的HASH值,主要是把握手消息做一个签名,用于验证握手消息在传输过程中没有被篡改过。
  • 4  服务端拿到客户端传来的密文,用自己的私钥来解密握手消息取出随机数密码,再用随机数密码 解密 握手消息与HASH值,并与传过来的HASH值做对比确认是否一致。
  •     然后用随机密码加密一段握手消息(握手消息+握手消息的HASH值 )给客户端
  • 5  客户端用随机数解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密   因为这串密钥只有客户端和服务端知道,所以即使中间请求被拦截也是没法解密数据的,以此保证了通信的安全
  •  非对称加密算法:RSA,DSA/DSS     在客户端与服务端相互验证的过程中用的是对称加密 
  • 对称加密算法:AES,RC4,3DES     客户端与服务端相互验证通过后,以随机数作为密钥时,就是对称加密
  • HASH算法:MD5,SHA1,SHA256  在确认握手消息没有被篡改时 

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

  

Fiddler4入门——手机抓包http的报文:https://blog.csdn.net/shimengran107/article/details/78644862

Fiddler4——手机抓包https的报:https://www.cnblogs.com/zery/p/5164795.html

参考:https://www.cnblogs.com/codingblock/p/5004694.html

猜你喜欢

转载自blog.csdn.net/qq_38014385/article/details/86560811