放在李云龙身上,SSL/TLS协议原理可以这么解释
nanshan 2024-11-18 15:15 14 浏览 0 评论
在电视剧《亮剑》片尾,有这么一个剧情,李云龙长期与田雨分居,张白鹿趁虚而入,试图抢走李云龙。
突然发现,这一段可以用来解释SSL/TLS原理,再完美不过了。
假如老李长命百岁,张白鹿贼心不死,田雨成了一名计算机天才,事情会怎么发展呢?
由于工作的关系,李云龙和田雨长期分居,不过现在好了,有了计算机,彼此虽然不能见面,但可以通过网络,进行聊天,传输一些数据。
张白鹿发现了李云龙和田雨在网络上聊天,她想,毕竟两人没有面对面聊天,能不能篡改他们之间的聊天内容呢?
果不其然,张白鹿意外发现,可以把田雨传输给李云龙的数据拦下来,篡改后再发给李云龙。
“太好了,李云龙和田雨离定了!”
这时张白鹿就发动的,便是中间人攻击(Man-in-the-MiddleAttack)
后来李云龙和田雨发现不对劲,传输的数据内容,会被张白鹿篡改,但田雨和张白鹿已经撕破脸皮,也找不到她,怎么办?为了应对张白鹿的攻击,李云龙和田雨开始对数据进行加密。
田雨做了两把一模一样的钥匙,趁着休息日,到李云龙的指挥部,把其中一把钥匙交给了他。由于钥匙只有他们两人知道,所以钥匙也被称为“密钥。”
当田雨要给李云龙发送数据前,先用密钥对数据进行加密,待李云龙收到后,再使用密钥对数据进行解密。
密钥没有通过网络传递,所以张白鹿无法获取,即便传输的数据被拦截,数据内容也无法被篡改。万一哪天张白鹿真的获得了密钥,也没关系,依样画葫芦,再送给李云龙一个新的密钥就好了。
李云龙和田雨使用相同的密钥,所以这种加密算法被称之为对称加密算法。
这样一来,张白鹿的诡计落了空,无法窃取他们俩的数据了。
过了很长时间,技术不断发展,计算机计算速度越来越来快。张白鹿寻思,能不能暴力破解密钥?
还真的成功了!田雨设计的密钥长度只有56bit,在以前不可能被暴力破解,现在计算速度快,几天时间便轻轻松松搞定了!
于是,张白鹿又开始监听和篡改李云龙和田雨之间传输的数据。
怎么办?田雨能想到的第一个办法,是增加密钥长度,直接把密钥长度增加至256bit,这样一来,张白鹿不可能通过暴力破解的方法,破解密钥了。
好景不长,李云龙早就认识到读书的重要性,现在要出国留学,不可能再和田雨面对面交换密钥,而且有时候田雨还需要和其他人沟通交流,不可能跟那么多人私下见面,商量一个密钥。
有什么办法,可以既不见面,又能保证数据不被张白鹿窃取和篡改呢?
聪明的田雨又想到了一个办法。通过特定的算法,生成一个密钥对(含一个公钥和一个私钥),同时也告诉李云龙生成一个密钥对,公钥均对外公开,私钥自己留着。
当田雨要向李云龙发送数据时,先用私钥加密hash值,,再用李云龙的公钥加密数据,数据到达李云龙后,李云龙用自己的私钥解密数据,最后用田雨的公钥解密hash值,对比两个hash值,即可验证数据的完整性。
由于李云龙和田雨用不同密钥解密,因此这种算法被称为非对称加密算法。
有了非对称加密,张白鹿窃取和篡改数据难度提高了不少,但她贼心不死,钻研了几天后,又找到了新的窃密方法。
既然李云龙和田雨要交换公钥,那拦截公钥,换成自己的不就行了?
田雨要给李云龙发送消息时,用自己的私钥加密了数据的hash值,之后用张白鹿的公钥加密数据。张白鹿拦截后,便能使用自己的私钥解密数据,这时数据的内容就能看到了!
这样一来,张白鹿只要篡改完数据,再用自己的私钥加密hash值、用李云龙的公钥加密数据发给李云龙。李云龙还以为真是田雨发的数据,其实这些数据已经被张白鹿篡改过了。
一切又回到了原点。
这时候,田雨找到了师长,想让师长做保。
师长知道田雨的困难后,对田雨说:“没关系,我来做证人,保证公钥的真实性。”
于是,李云龙和田雨在传输数据前,会把自己的公钥和一些其他信息交给师长,师长用自己的私钥加密数据,加密完的数据成为数字证书,证书包含了师长的公钥。
当李云龙收到田雨传递过来的师长加密之后的数字证书后,李云龙再通过师长发布的证书,来解密田雨的数字证书,最终获得田雨的公钥。
问题又来了,怎么保证师长的证书不被劫持呢?张白鹿完全可以将一个假的证书发给田雨。
小瞧师长了!师长会把自己的证书,集成在浏览器或操作系统里,李云龙拿到浏览器或者操作系统的时候,已经有证书了,没必要从网络获取,张白鹿也就无法劫持了。
没错,师长就是颁发数字证书的机构,它会对公钥的合法性进行检验。
至此,张白鹿再也没有办法窃取和篡改李云龙和田雨之间的通信,小三上位的梦想,彻底破裂了。
相关推荐
- Centos7虚拟机安装及网络配置(二)
-
#二、centos7的网络配置-Nat模式NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚...
- 网络分析shell脚本(实时流量+连接统计)
-
介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下。脚本运行效果截图:此脚本包含的功能有:1、实时监控任意网卡的流量2、统计10秒内平均流量3、统计每个端口...
- Centos之Could not retrieve mirrorlist解决方案
-
Centos之Couldnotretrievemirrorlist解决方案:vi/etc/sysconfig/network-scripts/ifcfg-你的网卡名字修改:ONBOOT=ye...
- 一文掌握!VirtualBox 中 Rock9.x(Linux)网络配置全攻略
-
一、前言记得我有一篇文章《必看!VirtualBox中Centos7(Linux)网络配置全攻略》讲的非常明细,但是因为CentOS已经停止维护了,可能很多人都不想继续学CentOS,我也是一样,...
- CentOS 6.0 设置IP地址、网关、DNS
-
在做任何操作之前先备份原文件,我们约定备份文件的名称为:源文件名称+bak,例如原文件名称为:centos.txt那么备份文件名称为:centos.txtbak引言:linux的网卡IP地址是存放在文...
- Linux CentOS 基础操作(centos怎么操作)
-
简介:养成学习Linux的好习惯,第一是多查看manpage(manual)等帮助文档和利用好Tab键;第二是掌握好一些快捷键,比如ctrl+c(停止当前进程),ctrl+r(查看命令历史)...
- Linux抓包王者技能!这条命令直接封神,教你精准定位网络问题
-
在网络故障排查和性能调优中,抓包是一项必不可少的技能。对于Linux环境下的网络工程师和运维人员来说,掌握高效抓包方法至关重要。而要说“抓包界的王炸”,那非tcpdump莫属!今天,我们不仅要介绍...
- 「干货」如何在 Linux 上划分VLAN?
-
在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...
- CentOS 8 网络配置实战教程:静态IP、路由与DNS设置
-
一、配置前准备1.查看当前网络信息#查看所有网络接口nmclidevicestatus#查看指定网卡信息(假设网卡名为ens192)ipaddrshowens192#查看路由...
- Debian10.7修改网络配置(debian怎么配置网络)
-
简介:关于Debian获取IP地址的方法主要有两种,动态获取和静态设置。在配置网络之前先要知道Debian的网卡名称是什么,Debian可通过命令#ipa查看网卡名称。本文主要通过介绍Debian...
- 巧用SSH转发功能深入穿透内网(ssh转发udp)
-
ssh能够提供客户端到服务端的加密传输,当http、ftp等协议被防火墙所拦截时,可以考虑使用SSH的端口转发功能,将其它TCP端口的网络数据通过SSH连接来转发。转发方式一共有三种,分别是:动态转发...
- CentOS Linux 7 的IP地址配置(centos7.4配置ip地址)
-
前段时间有位朋友,在一台PC机上安装了CentOSLinux7系统,因为要接入局域网,需要配置IP地址和默认网关信息。于是参照一本Linux教程上编辑网卡配置信息的方法,输入:vim/etc/s...
- 教你如何在 Linux 上划分VLAN(linux怎么分区详解)
-
在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...
- 打通数据高速公路:如何在 CentOS 上使用 Thunderbolt 3 和 4
-
Thunderbolt3与4是现代高速外设连接的代表,带来了40Gbps的惊人带宽,支持数据、视频、音频与供电的“四合一”功能,尤其在专业视频编辑、科研计算、虚拟化扩展等领域具有巨大价值...
- VMware 虚拟机 CentOS7 桥接模式静态 IP 配置全攻略
-
虚拟机桥接模式原理配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)