1

fiddler原理+fiddler为什么抓chrome而不能抓curl和httpclient?fiddler为什么能篡改报文?

中的ssl pinning 本质即是双向ssl

https://zhuanlan.zhihu.com/p/60392573/有一个破解的案例

2

单向ssl破解 https://www.zhihu.com/tardis/bd/ans/1470144979

一、根证书是伪造的。如果攻击者通过黑客手段,在客户端电脑上安装了自己的根证书,那它就可以验证通过自己伪造的服务器公钥。问题在于怎么把根证书安全的交到客户端手里,目前浏览器基本都在内部预置了权威CA机构的根证书,以减少权威CA机构的根证书被篡改的可能,不过这并不能100%的解决问题, 像某些网站会使用自己的根证书,这些根证书并没有预置在浏览器中。

二、CA向服务器颁发的公钥证书是伪造的。这样黑客也可以伪装自己的服务器公钥了,也会被客户端验证通过。一般来讲,权威CA颁发的公钥证书都是可靠的,但也不是没有被黑的例子,比如曾经荷兰的DigiNotar,就因为安全漏洞被黑了,颁布了数百个伪造的公钥证书,最终导致整个公司失信,破产了。

3

有私钥可以生成公钥

有公钥不能生成私钥(https://blog.csdn.net/sn5diphone6/article/details/122881394)

https://blog.csdn.net/lxfHaHaHa/article/details/86619714里有用私钥生成公钥的实践

4 wireshark

https://www.cnblogs.com/blankicefire/p/7865096.html

https://zhuanlan.zhihu.com/p/75461564

5

浏览器的truststore,就是操作系统内置的一群CA公钥(证书)

tomcat的truststore与浏览器内置CA证书有啥区别?浏览器里面只有CA证书没有服务端公钥,CA公钥对客户端证书的数字签名解密核对

6 为什么不用bank?

因为要传递客户端证书,用bank时,客户端拿到的是bank公钥(非服务端公钥),服务端拿到的也是bank公钥(非客户端公钥),可以是另一对也可以是同一对,也可以走http,所以失去了双向的意义,连真正的客户端证书都拿不到

那为啥单向时候可以用bank,因为单向客户端本来就是验证bank公钥

由于MyFiddler和后端实验时用的相同ca,(PorxyNoHttpDecode无需),无法在浏览器上体现透明代理与明文代理,需要查看两边sha1,可以证明浏览器获得的服务端证书是不同的,此前已证明同一个CN前后两次签发的证书是不同的(根据https原理(四)双向实践(java客户端+tcp代理) 9 的结论)

总结:

1)双向中,客户端与服务端用同一个密钥对不妨碍安全性;当然也可以用不同CA的

2)服务端truststore原则上不能有客户端私钥,tomcat不允许

3)truststore可以不给,会指向jre cacerts

4)truststore应该会需要客户端CA证书

5)want+filter的形式我不能突破

6)允许透明代理

7)有客户端私钥可以明文代理

8)truststore里有CA证书就行了?还是证书链支持?

9)mkcert install会导入jre cacerts

10)同一个公钥,两次jks,sha1 一样

11)p12 jks会有多个密钥对?tomcat可以通过别名指定

12)为什么不用bank?

13)这一套东西足够安全,除非获取客户端私钥


来自https原理

来自fiddler原理+fiddler为什么抓chrome而不能抓curl和httpclient?fiddler为什么能篡改报文?

来自https原理(二)服务端公钥有没有被CA私钥加密

来自https原理(三)双向实践(curl)

来自https原理(五)双向实践(https代理)

https原理(七)其他的更多相关文章

  1. HTTPS 原理浅析及其在 Android 中的使用

    作者:曹丰斌   本文首先分析HTTP协议在安全性上的不足,进而阐述HTTPS实现安全通信的关键技术点和原理.然后通过抓包分析HTTPS协议的握手以及通信过程.最后总结一下自己在开发过程中遇到的HTT ...

  2. 网络知识杂谈 - https - 原理简述

    概述 简单描述 https 尽量介绍它的原理 实际的机制, 可能会更加复杂一些... 背景 这玩意, 困扰我好多年了 今天开始, 想做个了断 之前工作也接触过, 但从我的角度来说, 认识很浅 会配置 ...

  3. HTTPS 原理解析

    一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证 ...

  4. HTTPS的七个误解

    转自:http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html 开发网页的时候,往往需要观察HTTP通信. 我使用的工具主 ...

  5. [转]HTTPS那些事(一)HTTPS原理

    [转]HTTPS那些事(一)HTTPS原理 http://www.guokr.com/post/114121/ 楔子谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>, ...

  6. https原理及其中所包含的对称加密、非对称加密、数字证书、数字签名

    声明:本文章已授权公众号Hollis转载,如需转载请标明转载自https://www.cnblogs.com/wutianqi/p/10654245.html(安静的boy) 一.为什么要使用http ...

  7. Tengine HTTPS原理解析、实践与调试【转】

    本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验.内容主要有四个方面:HTTPS趋势.HTTPS基础.HTTPS实践.HTTPS调试. 一.HTTPS趋势 这一 ...

  8. [转帖]HTTPS系列干货(一):HTTPS 原理详解

    HTTPS系列干货(一):HTTPS 原理详解 https://tech.upyun.com/article/192/HTTPS%E7%B3%BB%E5%88%97%E5%B9%B2%E8%B4%A7 ...

  9. HTTPS原理解析-转

    这篇文章关于Https的讲解真的是太透彻了,转过来备忘. 来源:腾讯bugly 另附两个SSL/TLS的交互详解:一.二 基于此文章的学习总结:下一篇文章 1.HTTPS 基础 HTTPS(Secur ...

  10. OpenSSL和https原理

    https原理: 浏览器请求服务端的公钥证书,server将注冊的证书发送给client. client向办法机构验证证书的合法性,证书 包含公钥,server网址及一些信息. 验证完成,client ...

随机推荐

  1. 【9】java之static关键字

    一. static 定义属性 static 定义的属性和非 static 定义的属性有一个最大区别:所有的非 static 属性必须产生实例化对象之后才可以访问,static 定义的属性不受此限制.也 ...

  2. 用js实现元素两个元素位置对齐

    一.问题描述 使得填表单位那一行字与下面的表格左对齐,对表格使用css中的margin:auto实现了居中,但是对那一行字(用div包裹的)使用margin:auto不生效:并且2021年下面对应的月 ...

  3. Traefik官方文档以及翻译文档

    https://www.qikqiak.com/traefik-book/ https://doc.traefik.io/traefik/

  4. Monstache的安装和使用

    一.什么是Monstache Monstache 是Golang语言实现的基于MongoDB的oplog实现实时数据同步及订阅的插件,支持MongoDB与ES之间的数据同步.其中MongoDB需要搭建 ...

  5. Kubernetes 设置master相关

    设置master调度命令 1.设置master一般情况下不接受pod调度 sudo kubectl taint nodes master node-role.kubernetes.io/master= ...

  6. Vue3.0 实现数据双向绑定的方法

    ue3.0 是通过Proxy实现的数据双向绑定,Proxy是ES6中新增的一个特性,实现的过程是在目标对象之前设置了一层"拦截",外界对该对象的访问,都必须先通过这层拦截,因此提供 ...

  7. TensorFlow学习报告

    TensorFlow简介 是一个基于计算图的深度学习库,具有更广泛的应用领域.良好的多语言支持.部署性能等优点,时现今最广泛使用的深度学习框架. 计算图Session Tensor 1 import ...

  8. el-scrollbar滚动加载

    mounted() { 监听滚动条       this.$refs.scrollbar.wrap.addEventListener("scroll", this.scrollCo ...

  9. Tooltip 文字提示,居中显示

    Tooltip 文字提示有时候在table中无法居中显示,这个可以设置一下 <a-tooltip placement="top" overlayClassName=" ...

  10. SingleFlight

    Go 语言扩展包中提供了另一种同步原语,它能够在一个服务中抑制对下游的多次重复请求.一个比较常见的使用场景是:我们在使用 Redis 对数据库中的数据进行缓存,发生缓存击穿时,大量的流量都会打到数据库 ...