2020-01-14 https简单笔记

今天的疑问主要是, 既然抓包能抓到https通讯的明文,那么使用https还有什么意义呢?
https是用来验证身份的,不是为了信息保密的(ps:如果用双向https验证,那么应该能保证加密+身份)

server下发的公钥是放在证书里面的.
在浏览器侧, 系统的内置的根证书会验证server下发的公钥证书(权威机构颁发的证书)的真实和有效性, 在手机native网络框架侧,也支持对公钥证书的信任是否允许通过提供了api,默认开关是与浏览器的验证相同,只支持到权威机构认证的证书(因为系统内置);

我们之所以能抓包解密https数据,是因为抓包之前,需要在手机或者电脑上安装一个 Charles 提供的根证书,这个根证书加入到手机的 Trust Store, 之后它所签发的证书都会被系统认作可信

image.png
image.png

以上过程是得到公钥;

公钥和私钥-》生成客户端和服务端都知道的一个对称密钥(而且每次握手,对称密钥应该都会变)
真正的https过程会用到3个随机数
(1)生成对话密钥一共需要三个随机数。
(2)握手之后的对话使用"对话密钥"加密(对称加密),服务器的公钥和私钥只用于加密和解密"对话密钥"(非对称加密),无其他作用。
(3)服务器公钥放在服务器的数字证书之中。

但是我们网络开发可以这么做
1、生成一个16为随机数 key
2、用公钥加密这个16为随机数 encKey
3、用key aes算法对称加密content,encContent
4、传递encKey 和 encContent
5、server使用私钥解密encKey得到key
6、server使用key解密encContent,得到content

参考几个文章:
HTTPS连接过程以及中间人攻击劫持
从对称加密到非对称加密再到认证中心 -- https 的证书申请
HTTPS 证书认证原理分析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 互联网的通信安全,建立在SSL/TLS协议之上。 本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和...
    拉肚阅读 2,689评论 0 6
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb阅读 3,582评论 0 13
  • HTTPS介绍 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩...
    齐滇大圣阅读 9,001评论 8 96
  • 需求 “人们最初设计互联网时,很少考虑到安全。这样的结果是,核心通信协议本质上是不安全的,只能依靠所有参与方的诚信...
    thinkq阅读 1,052评论 0 3
  • 我们先从 Nginx 说起,了解为什么需要微服务。最初的服务化解决方案是给相同服务提供一个统一的域名,然后服务调用...
    java欧阳丰阅读 550评论 1 3