HTTPS原理和对中间件攻击的预防

一、https/tls原理


HTTPS访问的三个阶段


第一阶段 认证站点

客户端向站点发起HTTPS请求,站点返回数字证书。客户端通过数字证书验证所访问的站点是真实的目标站点。

第二阶段 协商密钥

客户端与站点服务器协商此次会话的对称加密密钥,用于下一阶段的加密传输。

第三阶段 加密传输

客户端与站点直接使用已协商的对称加密密钥传输数据。

以下用一张图描绘CA、站点服务器、客户端之间的交互关系

二、中间人攻击


中间人攻击的几种形式

 

  1. 直接抓取报文获得明文信息
  2. 非法中间加密代理,窃取明文信息
  3. 留存密文,如果对称密钥泄露,解密历史报文


中间人攻击的防范


1.防范直接获取明文

加密传输报文

2.防范非法中间加密代理

黑客对客户端伪装成服务器,对服务器伪装成客户端,通过非法代理窃取会话数据。上面图示的第一、第二阶段可以防止这种非法代理行为。虽然黑客可以获取站点的证书,伪装成站点服务器接收请求,但黑客没有站点服务器私钥,无法与实现客户端实现密钥交换,不能窃取明文的会话数据。

3.防范解密历史报文(前向安全性)

防范解密历史报文,这种安全防护叫前向安全。早期的HTTPS实现中,客户端将会话密钥通过站点公钥加密后,发送给服务器,服务器用私钥解密。此时如果服务器私钥保管不善泄露,黑客如果留存了历史报文,可以解密获取会话密钥,从而还原历史报文数据。目前通过DH算法保证前向安全。在第二阶段,客户端与服务器只交换少量信息,双方便可独立计算出临时会话密钥用于加密。即使黑客事后获取私钥,也不能计算出会话密钥,从而实现前向安全。

三、FAQ

 

1.为什么不直接使用非对称密钥加密传输报文?

首先非对称密钥加解密效率低,不如对称密钥,一般使用AES等加密算法。其次前面也提到,只使用非对称密钥加解密不能保证前向安全性。

2.浏览器怎么知道所访问的站点不是伪造的?

浏览器主要依靠数字证书来确认所访问的站点不是伪造的。当浏览器通过https访问站点,站点须返回数字证书。数字证书是CA机构“签发”的电子文件,其中包含使用者信息、站点公钥、颁发者(CA)信息和CA指纹等。假设数字证书是完全可信的,且其中的内容也是不可篡改的。浏览器首先验证数字证书中的使用者(站点)信息与所访问的站点域名是否一致,然后用数字证书中的站点公钥挑战站点服务器,只用拥有私钥的真实站点才能通过挑战。因此可以确保所访问的站点是真实的。

注意:如果验证有问题,浏览器会提示风险访问。

3.为什么数字证书是可信的?

CA机构是可信的,CA本身也包含一个非对称密钥对,私钥用于“签发”的数字证书,公钥发布出去用于验证数字证书。CA使用非对称密钥配合HASH算法保证数字证书可信且不可篡改。CA将使用者信息、站点公钥、有效期等关键信息打包做HASH运算,再将HASH运算结果用CA私钥签名生成指纹。然后将以上全部信息打包成数字证书。黑客没有私钥不可以伪造证书签名,且证书的内容如果被修改,HASH结果就会改变。因此黑客不可伪造或者篡改证书,有效的数字证书是可信的。

4.浏览器怎么知道CA是可信的?

浏览器主要依据客户端操作系统保存的根证书列表判断CA的权威性。如上图,在Windows操作系统中,这个列表放在“受信任的根证书颁发机构存储区”中,这个列表实际上是CA机构的根证书集合,根证书包含CA机构的信息和公钥。只要是这个列表中的CA签发的证书,浏览器就认为可信。微软会动态维护根证书列表,用户需要管理员权限才能向这个列表中加入CA证书。

注:Windows客户端运行在内网中时,若无法联网更新根证书列表,此时可能会出向访问https应用缓慢。

5.为什么有些软件如Fiddler可以还原https报文?

Fiddler是通过中间代理的方式抓取报文,还原https报文的前提是在客户端的根证书列表下加入Fiddler生成的CA根证书。这样Fiddler就成为CA,可以伪造数字证书,伪装成服务器。但是只能用于测试,不能实现真正意义上的窃取数据。

 

 


————————————————
版权声明:本文为CSDN博主「shrun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/oZhuZhiYuan/article/details/106650944

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】医学影像技术(中国普通高等学校本科专业)

医学影像技术专业培养适应我国社会主义现代化建设和医疗卫生事业发展需要的,德、智、体全面发展,具有基础医学、临床医学和现代医学影像必备的基本理论知识和基本技能,从事临床影像检查、诊断与治疗技术工作的高级技术应用性专门人才。 中文…

Windows CE下流驱动的动态加载

Windows CE下流驱动的动态加载 闲话少说,进入正题。查找EVC的帮助,发现函数ActivateDevice()可用来加载驱动程序。而这个函数的使用是相当简单的。我就不多说了,贴上一段帮助最能说明问题。当然,你也可以用…

HTTPS原理全面介绍【备查】

来源:https://www.cnblogs.com/haimishasha/p/11373034.html 目录 应用层协议:HTTPS 1. HTTPS定义 2. 密码学基础  3. HTTP通信问题 4. SSL/TLS协议 5. HTTP 向 HTTPS 演化的过程 5.1 对称加密 5.2 非对称加密 5.3 对称加密非对称加密 5.4 安…

【转】VTK修炼之道2_VTK体系结构1

1.OverView综述 The Visualization Toolkit consists of two basic subsystems: a compiled C class library (一个已经编译好的C类库)and an “interpreted” wrapper layer(一个用于解释的语言层) that lets you manipulate the…

WINCE6.0 DM.EXE 激活驱动失败的原因之一

前些天把WINCE6.0的开发环境建好了,今天定制了一个系统,练习了一下驱动的编写和调试。把DLL文件通过VS2005部署到开发板上,用一位大侠写的DM.EXE工具进行激活,但是发现点击激活按钮式无反应,驱动还是停在“停用”状态&…

Linux:tomcat安装/版本升级

本文适用于安装或更新tomcat版本。 1.进入tomcat目录,查看当前tomcat版本 cd /usr/local/tomcat/bin ./version.sh 2.备份原tomcat 可以拷贝原tomcat,或者直接修改原tomcat的文件夹名称作为备份。 cd /usr/local/ #方法1:创建目录&…

【转】VTK与Qt整合的示例

VTK与Qt整合的示例 VTK附带的程序示例中大多是基于控制台的,作为可视化开发工具包,VTK也可以与很多流行的GUI开发工具整合,比如MFC、Qt(题外话:Qt已经被Digia从诺基亚手中收购了,Qt现在的链接是:http://qt…

WinCE驱动调试助手V2.5

http://www.cnblogs.com/we-hjb/archive/2008/12/15/1280822.html http://blog.chinaunix.net/u1/49088/showart.php?id1279989 工欲善其事,必先利其器。做WinCE驱动的开发已有一段时间了,WinCE驱动调试助手也跟着更新了很多功能。现在只要做驱动&#…

Web应用系统中数据传递的方式汇总

本文转载自sina_blog(siangzhang) 目录 1 Socket方式 2 ftp/文件共享服务器方式 3 数据库共享数据方式 4 message方式 5 案例 随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。 系统由原来单一…

【转】CT (电子计算机断层扫描)

CT(Computed Tomography),即电子计算机断层扫描,它是利用精确准直的X线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描,具有扫描速度快,图像清晰等特点,可用于多…

WinCE驱动的动态加载

// //TITLE: // WinCE驱动的动态加载 //AUTHOR: // norains //DATE: // Monday 22- February-2010 //Environment: // WINDOWS CE 5.0 // WinCE驱动的调试,很多人的第一感觉就是:编写好DLL文件,接着在PB中添加相关注册表信息&am…

Linux:chmod命令-修改文件或目录的权限

给新安装的tomcat/bin目录下的所有文件增加执行权限(所有用户、组) chmod -R ax /usr/local/tomcat/bin ------------------------------------------------------------------------------------------------------------------- 关于具体的chmod命令…

获取WinCE已加载驱动的信息

// //TITLE: // WinCE驱动的动态加载 //AUTHOR: // norains //DATE: // Monday 22- February-2010 //Environment: // WINDOWS CE 5.0 // WinCE驱动的调试,很多人的第一感觉就是:编写好DLL文件,接着在PB中添加相关注册表信息&am…

【转】详解冠状面_水平面_矢状面_窗宽_窗位

在接触人工智能医疗方面时,单是学习算法和代码原理还不够,需要一定的医学影像知识储备。 B超、CT、MR等都算是医疗影像,在现实生活中,从医院检查身体后拿到的胶片是处理过后的二维图像。这些医疗影像其实是三维的。 最常见的图片格…

js+ asp.Net ajax开发163邮箱效果(列表底色、多选拖动等)--checkBox多选

163邮件一个比较爽的功能就是可以通过多选邮件,拖动到左侧的文件夹列表,实现邮件归类的功能关于我对拖动分配的实现将在后文写出这里说说在CheckBox的选择中做得尝试和实现的效果、方法1。点击表格Title实现全选每行这个早有人做了,我这里借鉴一下 一块贴…

【转】医学图像中的窗宽、窗位!!

在CT等医学影像显示领域,我们经常会听到窗宽(Window Width,简写WW)、窗位(Window Level,简写WL)的概念,那么到底什么是窗宽、窗位,它们跟医学图像之间的关系又是什么? 先说一下CT值…

【Excel】使用VLOOKUP+IF实现多列条件匹配查询

excel中vlookup函数为精准匹配查找,但此函数局限于单列的精准匹配,如果需求是多列条件进行匹配,怎么通过vlookup函数实现呢? 思路:通过if函数将多列拼成一列再通过vlookup函数进行精准匹配 具体公式为VLOOKUP($F2&…

自己动手写TCC7901的GPIO驱动

// //TITLE: // 自己动手写TCC7901的GPIO驱动 //AUTHOR: // norains //DATE: // Monday 12-July-2010 //Environment: // Windows CE 5.0 TCC7901 // 如果你使用的是WinCE,然后又涉及到GPIO的操作,你会很尴尬地发现,WinCE根本就…

如何处理db2中文不显示

最近安装了db2 7.2一路装下来没有报错,但当打开db2时,不显示中文。郁闷!请教了,单位资深专家,解决方法如下:SQLLIB\java\java12\jdk\jre\lib目录下font.properties.zh文件修改filename.\u5b8b\u4f53simsun.…

【转】DELPHI 对DICOM中的窗宽、窗位调整

在写这篇文章前72小时,我的多窗显示组件对于个别大W/C值的16位影像显示还是个问题,也发了帖子到PACS站询问过,更是在Google上猫刨了很久,终归一无所获,今天静下心来,用了2小时反复查看程序处理过程&#xf…