【科普】你上网的隐私,由自动化规则守护

简介: 本文是一篇科普文,力求平实易懂。本文以TLS握手为中心,简单介绍了对称加密、非对称加密等内容

网站发给你电脑的网页、你发给网站的数据(图片、文字、密码等)都在完全公开的互联网上传输,在技术上是可被截取的。

然而你却不用担心,在某大型404网站搜索不存在的什么东西时,或搜索某信息被别人发现,之后被查水表——即使这个人 组织截取到了你和网站的通信,他们仍然无法破解这些信息。而且,这样的安全保护丝毫不影响你和网站之前的高速信息往来,你的浏览体验会丝般顺滑,就像……什么保护都没有一样。

又快又安全,惊不惊喜?神不神奇?这样的神奇就由自动化的规则来实现——TLS握手Transport Layer Security Handshake,不要纠结他的名字,记不住它也丝毫不影响阅读)——可以将它理解为“你的电脑和服务器商讨怎样针对当前通信进行信息加密”的过程。它为你的电脑和网站的每一次通信,个性化地准备唯一且一次性的高效加密。而加密本身的安全性,则通过现代密码学由数学提供保障——这样的保障往往在一个时期内非常安全。
 

在开始讲解这个规则前,我们需要明确几个概念:

(1)  加解密系统:由进行明文、密文转换的算法(即加解密算法,一般是公开的),和用于加密、解密的密钥组成。加密是使用加密密钥和明文生成密文,解密是使用解密密钥和密文生成明文。若没有正确的密钥则无法进行正确的加解密。

(2)  对称加密:加解密算法的一种。其用于加密和解密的密钥相同,被称为公共密钥。它的加解密速度很快,但有天生的缺点——通信双方必须先共享公共密钥才能通信,而这往往是不安全的——线上传递的信息任何人都可以截取;线下传递成本高且未必安全——毕竟人是可以被逮到的。

(3)  非对称加密:另一种加解密算法。参加通信的每个人都有两个密钥——公钥(和公共密钥不同)和私钥——公钥是公开的,任何人都可以获取;私钥是私有的,自己保护。公钥用于加密,私钥用于解密。但它的运行要比对称加密慢百倍到数千倍。

(4)  混合加密机制:就是组合使用对称加密与非对称加密。这综合了两者的优点——既有非对称加密奇妙的安全保障,又有非对称加密的丝般顺滑、畅快淋漓。

 

讲解开始了!先放一张图,看一遍有个印象,再配合下面的详细解释即可愉快食用

0a2198b0a01b06f0a1dc1684cf2b99aade1841ac

这就是TLS握手的全过程,更详细描述如下:

一、用户端(就是你的电脑)和服务器(就是运营你在看的网站的那台远方的机器)确认要进行通信后,用户端生成随机数 R1(R1是RandomNumber_1的简写,没有其他含义。后面的R2、R3同理。),这个R1将成为未来生成对称加密密钥的“材料”。然后,用户端根据自己的情况,向服务器以明文发送对于加密方法的建议,和刚刚生成的R1。“加密方法的建议”包括用户端支持的协议版本、建议的加密类型和建议的加密算法等。

二、服务器生成随机数R2,R2和R1一样,将成为未来生成对称密钥的“材料”。然后,服务器根据用户端发来的信息和建议选定加密技术,并把选定的技术和随机数R2以明文发给用户端。

三、用户端为了避免一些危险(如正在通信的服务器是个假冒的坏蛋服务器等),需要通过权威第三方(通常是业界大佬/巨佬/超佬级别的企业/组织)检查服务器用来证明身份的证书,确保安全(若不安全将立即终止通信)。若通过安全检查,则用户端会生成一个随机数R3,用服务器的公钥(由服务器公开,任何人都可以下载)进行加密。注意,由于加密后的密文只有服务器能用自己的私钥解密,所以这段密文可以安全地在谜一样的互联网上公开传递。

 

当这一步完成时,双方都有了相同的R1、R2、R3了。现在,双方通过相同的算法,根据R1、R2、R3的值,即可算得相同的新值,这个新的数值就是双方确定好的接下来要用的公共密钥。由于公共密钥是基于临时生成的R1、R2和同样临时生成并保密传输、不可破解的R3即时算出来的,所以在网页浏览时间内,安全强度非常高。

 

四、五步,用户端和服务器通过刚刚计算好的公共密钥,和之前选定的对称算法发送加密信息,进行商定完成的确认通信,告知对方已经准备好使用新的加密方法进行通信了。

 

至此,TLS握手完成。用户端和服务器双方开始使用对称加密进行高速信息交互。

 

 

注:本文为力求语言平实易懂,尽可能地减少了术语、缩写、英文名称等,且模糊化处理(或避开)了一些不影响理解主干的内容,如:中间人、加解密算法、证书、签名(签章)、完整性验证、身份验证等。未来会考虑再介绍一下这些内容。笔者水平有限,若文中出现谬误,欢迎各路高人指出。也欢迎各位提出意见和建议。


相关文章
|
1月前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
利用Python实现基于图像识别的自动化数据采集系统
本文介绍了如何利用Python编程语言结合图像识别技术,构建一个自动化的数据采集系统。通过分析图像内容,实现对特定信息的提取和识别,并将其转化为结构化数据,从而实现高效、准确地采集需要的信息。本文将详细讨论系统的设计思路、技术实现以及应用场景。
|
2月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
18 2
|
2月前
|
存储 BI 数据处理
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!
|
2月前
|
JavaScript 前端开发 Python
【python自动化】Playwright基础教程(三)定位操作
【python自动化】Playwright基础教程(三)定位操作
55 0
|
2月前
|
Python
【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲
【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲
55 0
|
1天前
|
JSON 监控 调度
局域网管理软件的自动化任务调度:Python 中的 APScheduler 库的应用
使用 Python 的 APScheduler 库可简化局域网管理中的自动化任务调度。APScheduler 是一个轻量级定时任务调度库,支持多种触发方式如间隔、时间、日期和 Cron 表达式。示例代码展示了如何创建每 10 秒执行一次的定时任务。在局域网管理场景中,可以利用 APScheduler 定期监控设备状态,当设备离线时自动提交数据到网站,提升管理效率。
12 0
|
6天前
|
存储 安全 数据库
自动化密码填充:使用Python提高日常工作效率
自动化密码填充:使用Python提高日常工作效率
11 0
|
6天前
|
SQL 数据库 数据库管理
python自动生成SQL语句自动化
python自动生成SQL语句自动化
23 1
|
6天前
|
持续交付 Python
使用Python实现自动化Web内容巡检
使用Python实现自动化Web内容巡检
17 1

热门文章

最新文章