能不能用一句话总结 HTTPS?
摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。
在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。
我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:
如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现
A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容
如何做到真正的安全?
这个问题,很多人马上就想到了各种加密算法,什么对称加密、非对称加密、DES、RSA、XX、噼里啪啦~
而我想说,加密算法只是解决方案,我们首先要做的是理解我们的问题域——什么是安全?
我个人的理解是:
A与B通信的内容,有且只有A和B有能力看到通信的真正内容
好,问题域已经定义好了(现实中当然不止这一种定义)。对于解决方案,很容易就想到了对消息进行加密。
题外话,但是只有这一种方法吗?我看未必,说不定在将来会出现一种物质打破当前世界的通信假设,实现真正意义上的保密。
对于A与B这样的简单通信模型,我们很容易做出选择:
这就是对称加密算法,其中图中的密钥S同时扮演加密和解密的角色。具体细节不是本文范畴。
只要这个密钥S不公开给第三者,同时密钥S足够安全,我们就解决了我们一开始所定问题域了。因为世界上有且只有A与B知道如何加密和解密他们之间的消息。
但是,在WWW环境下,我们的Web服务器的通信模型没有这么简单:
如果服务器端对所有的客户端通信都使用同样的对称加密算法,无异于没有加密。那怎么办呢?即能使用对称加密算法,又不公开密钥?请读者思考21秒钟。
能不能用一句话总结 HTTPS?相关推荐
- 轻松理解https,So easy!
作者:翟志军 https://showme.codes/2017-02-20/understand-https/ 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这 ...
- 也许,这样理解 HTTPS 更容易
本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于"还原 ...
- 百度全面开放HTTPS之我见
最近,我读到一篇文章<百度全面开放HTTPS的几个重要问题>(http://www.admin10000.com/document/6233.html),作者就百度实现全站HTTPS的十个 ...
- 也许,这样理解HTTPS更容易
https://juejin.im/post/5b8367b1e51d453884361fc3 摘要: 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表H ...
- fiddler如何设置过滤https_手把手教你如何给网站设置https
我也是小白一枚,最近开了一个博客站点,个人博客除了微信分享功能不能开通外,其他的功能我都要试着做一下,磨练磨练自己.跟一些大佬分享有所不同,我这篇文章是以一个小白的角度来写,这样有一个优势,因为有些大 ...
- 【转载】这是我看过最好的对HTTPS的理解
[转载]这是我看过最好的对HTTPS的理解 首先申明,这篇文章并非原创.而是最近想去研究一下https的原理,所以上网查阅了一大堆资料和文档,其实看来看去都是差不多的,直到发现了这一篇.为作者打个电话 ...
- 架构师必读!以图文的方式解锁 HTTPS原理,10分钟还原HTTPS真像!
我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B: 如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现: A发给B的hello消息包,即使被中间 ...
- 【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 通过前面内容的学习,相信大家 ...
- 网盾极风云:五分钟搞懂HTTP和HTTPS
很多小伙伴每天都要用到http和https协议,但是却对他们一知半解,这篇文章将解开你的所有疑惑. HTTP 一般人们都能说出"HTTP是一种超文本传输协议(Hypertext Transf ...
最新文章
- java-buildpack源码分析之Compile
- SuperSocket 服务管理器 (ServerManager)
- signature=89b7a6bcfac55abae5ac369dafee29f4,Capecitabine
- git 创建 本地 裸 仓库
- SAP Word template出了错误后的调试办法
- bat 存储过程返回值_为什么不推荐使用存储过程?
- Python为视频设置遮罩实现异形窗口播放
- c语言在中职的作用,C语言程序下的中职教学论文
- Nginx+Tomcat无法正确获取的域名和ip地址
- ajax修改属性后如何遍历,Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)...
- 光伏机器人最前线_高工机器人走进光伏:数字化车间未来可期
- 2017php类库,AMQB官方PHP库
- JAVA要不要看源码_java需要看源码吗
- 如何用计算机抽奖,怎么用PPT制作随机点名抽奖
- 09 自动发表博客评论
- Git 拉取远程仓库失败
- 工作中遇到的一个问题:
- 内德-米德方法——《数值计算方法》
- 新1期_012课_内存控制器与SDRAM
- Ventoy-一种更便捷的OS启动盘制作方法
热门文章
- python制作软件封面_用python给MP3加封面图片,修改作者,专辑等信息
- 论云计算机下的中小企业会计信息化建设,中小企业云会计信息化的建议论文
- 210322阶段三QT事件循环及opencv图像处理
- return和break的区别
- µVISION: Error: Encountered an improper argument
- iOS开发 AVAudioPlayer
- 对CAML查询语句的几点小记
- 窄带物联网有望结束技术应用“碎片化”
- 《“笨办法”学Python(第3版)》——习题3 数字和数学计算
- 基于HTML5的WebGL呈现A星算法的3D可视化