这里写目录标题

  • HTTPS连接过程
  • 中间人劫持攻击

HTTPS连接过程

https协议就是http+ssl/tls协议,如下图所示为其连接过程:

HTTPS连接的整个工程如下:

  1. https请求:客户端向服务端发送https请求;
  2. 生成公钥和私钥:服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;
  3. 返回公钥:服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;
  4. 客户端验证公钥:客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;
  5. 发送客户端密钥:客户端用服务端的公钥加密密钥,然后发送给服务端。
  6. 服务端收取密钥,对称加密内容:服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。
  7. 加密传输:服务端将经过加密的内容传输给客户端。
  8. 获取加密内容并解密:客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。

中间人劫持攻击

https也不是绝对安全的,中间人可以获取到客户端与服务器之间所有的通信内容,如下图所示为中间人劫持攻击:

中间人攻击流程如下:

  1. A向B请求公钥,但是却被C截获。
  2. C向B发送公钥请求。
  3. B将公钥发给C。
  4. C截获了B的公钥,然后替换成自己的公钥发给A。
  5. A将C的公钥当成了B的公钥,并用其加密信息,发给B。
  6. C截获了加密信息,用自己的私钥解密,获得明文。同时伪造新的信息,再用B的公钥加密,发给B。
  7. B获得加密信息,用自己的私钥解密。

只靠公钥本身是无法防御中间人攻击的。这时候,我们就需要一个第三方的可信任的机构来解决这个公钥传递的问题,那就是证书

HTTPS连接过程中的中间人攻击相关推荐

  1. 密码学中的中间人攻击

    之前我们讲了Diffie和Hellman在1976年提出的密钥交换协议,即公玥密码体制的开端,对于该协议来说,通过一般的攻击方式比如窃听是很难得到通信双方协商的公钥的,但中间人攻击是最容易攻破该协议的 ...

  2. 域渗透 | kerberos认证及过程中产生的攻击

    前言 Windows认证一般包括本地认证(NTLM HASH)和域认证(kerberos). 认证的原理网上有很多文章.如果喜欢听视频课程的话,这里推荐倾旋师傅的分享课 https://www.bil ...

  3. HTTP 和HTTPS 连接过程详解(SSL TLS)

    简介 HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听.被篡改.被伪装) 对称加密和 ...

  4. oracle表连接——处理连接过程中另外一张表没有相关数据不显示问题

    一个数据表基本上很难满足我们的查询要求,同时,将所有的数据都保存在一个表格中显然也不是一种好的数据库设计,为了避免数据的冗余,删除.更新异常,我们通常需要建立一张外键表,通过表连接,来获取我们自己想要 ...

  5. oracle不显示表和过程,oracle表连接——处理连接过程中另外一张表没有相关数据不显示问题...

    一个数据表基本上很难满足我们的查询要求,同时,将所有的数据都保存在一个表格中显然也不是一种好的数据库设计,为了避免数据的冗余,删除.更新异常,我们通常需要建立一张外键表,通过表连接,来获取我们自己想要 ...

  6. java证书验证失败_Java 跳过 HTTPS 请求过程中证书验证问题

    受益于谷歌和苹果对 HTTPS 的强制升级要求,服务已经全面升级了,安全性提高的同时也引起了新的问题. 由于 HTTPS 证书还是很贵的,所以各种测试环境上各种非法证书,通过浏览器访问的时候可以直接选 ...

  7. Python实现SQL Server 2008的增删查改+连接过程中出现的问题以及解决方法

    Python操作SQL Server 2008需要一个名为pymssql的库,如果没有这个库可以通过在cmd中输入如下命令来安装: pip install pymssql 闲话少说,直接贴代码: # ...

  8. 在AWS S3的连接过程中发生java.lang.BootstrapMethodError: call site initialization exception

    打印日志如下 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting ...

  9. HTTPS中间人攻击实践(原理·实践)

    前言 很早以前看过HTTPS的介绍,并了解过TLS的相关细节,也相信使用HTTPS是相对安全可靠的.直到前段时间在验证https代理通道连接时,搭建了MITM环境,才发现事实并不是我想的那样.由于部分 ...

最新文章

  1. error: unbound prefix. Message{kind=ERROR, text=error: unbound prefix., sources=[E:\work\me\fragment
  2. FreeBSD基金会添加新成员,梁莉成为第一位来自微软和中国的基金会董事
  3. 【数学与算法】奇异矩阵、奇异值、奇异值分解、奇异性
  4. 环绕通知(Around Advice)
  5. jsp论坛网站模版_网站关键词优化怎么做
  6. 调用 usb_control_msg 返回错误值 -32, Broken pipe, 对 hidraw write时 返回错误值 -32, Broken pipe
  7. java时间日期工具类_java工具类--日期相关;
  8. php ajax 长轮询 表单,Thinkphp结合AJAX长轮询实现PC与APP推送详解
  9. java observable 使用_如何使用rxjava2取消Observable.timer?
  10. Must Know Tips/tricks in DNN
  11. 有关存储器容量的计算
  12. 转:Patch打补丁学习笔记
  13. 皮尔森残差_用SPSS进行列联表分析(Crosstabs)实例
  14. IMS:InputChannel通过socket发送Input给App
  15. 使用vue做图片的闪光效果
  16. webgl天空盒边界缝隙_基于webGL技术的3D库ThingJS支持天空盒技术实现
  17. 浏览器默认主页被360篡改解决办法
  18. 我是如何学习的,分享本人的学习方法
  19. 百度音乐API抓取-Fiddler
  20. 什么?CC协议中的“保持一致”是“不许修改”?

热门文章

  1. 若依框架---权限控制角色设计
  2. c++11中的lock_guard和unique_lock使用浅析
  3. 90后步入中年危机,互联网行业过了30岁就被嫌弃?
  4. 张驰咨询:某齿轮有限公司首期六西格玛项目成功关闭
  5. 世界上谁在乎您一个打工人的想法呢
  6. 赠书福利丨Kubernetes权威指南第4版
  7. 落谷----P4994 终于结束的起点
  8. IMAP和POP3有什么区别
  9. 每一份“热”都有价值
  10. 人工智能成日照 87 所学校“必修课