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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本文是一篇科普文,力求平实易懂。本文以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握手完成。用户端和服务器双方开始使用对称加密进行高速信息交互。

 

 

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


相关文章
|
6月前
|
安全 jenkins 持续交付
使用Jenkins自动化上网时间监测软件的发布流程
在当前互联网时代,人们对上网时间的监测变得愈发重要。为了满足这一需求,我们可以利用Jenkins来自动化发布上网时间监测软件,以确保高效、可靠地监测用户的在线活动。本文将介绍如何使用Jenkins搭建自动发布流程,并通过代码示例展示关键步骤。
239 0
|
6月前
|
JSON 监控 测试技术
Groovy脚本编写员工上网行为监控自动化测试
本文介绍了如何使用Groovy脚本创建一个自动化工具来监控员工的网络活动。通过编写简单脚本记录员工访问的网站并打印信息,可进一步扩展为将数据保存至数据库。此外,通过设定定时任务,实现了每30分钟自动监控一次的功能。最后,展示了如何将监控数据转换为JSON格式并使用HTTP POST请求提交到网站,以实现数据的自动化上报,有助于企业保障网络安全、保护数据并提升工作效率。
169 5
|
3月前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
49 8
|
3月前
|
SQL 数据采集 关系型数据库
|
3月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
51 0
|
4月前
|
监控 网络安全 数据库
员工上网行为监控中的VBA自动化任务
使用VBA进行员工上网行为监控,包括记录网页访问(如`监控网页访问`子程序,抓取`A1`单元格的链接),截取屏幕(`截取屏幕并保存`子程序,保存为JPEG),以及自动将数据提交到网站(`数据提交到网站`子程序,构建HTTP请求)。这些自动化任务有助于提升网络安全和工作效率。
73 3
|
5月前
|
敏捷开发 缓存 Java
阿里云云效产品使用问题之自动化规则执行超时可以如何排查问题
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
再见手动编码,标准自动化编码规则来帮忙!
标准管理员小S面临数据标准编码管理的挑战:编码格式不统一、编码值不可读活相关性差,手动管理耗时易出错。Dataphin新推出“标准编码规则”功能,可以实现一次配置批量生成编码,并通过自增序列、固定字符串和所属标准集编码的组合,保证编码相关性和灵活性,同时提供了编码规则变更后的批量订正功能,大大简化管理工作。小S对此表示高度满意。
140 0
|
6月前
|
监控 持续交付 网络安全
自动化部署:利用Ansible优化上网监视软件
随着科技的不断进步,上网监视软件的需求日益增加。为了提高效率和降低人工成本,许多组织开始利用自动化工具,其中Ansible是一种强大的选择。本文将介绍如何利用Ansible优化上网监视软件的部署过程,并提供一些实际代码示例。
254 4
|
监控 数据管理 Shell
Shell脚本编写:自动化监控上网行为软件的数据备份与恢复
在今天的数字时代,监控上网行为软件变得越来越重要。无论您是个人用户还是企业,了解和管理上网行为数据对于网络安全和资源优化至关重要。本文将介绍如何使用Shell脚本编写一个自动化数据备份与恢复系统,用于监控上网行为软件的数据,以及如何自动将这些数据提交到网站。
187 1