《互联网的世界》第六讲-去中心化和安全

互联网构建于开放互联的中立原则之上,公平接入,数据互联互通,流量被无差别对待,这意味着互联网本质上是匿名,去中心的,这与我们的现实世界完全不同。

但互联网上的主流业务却是 c/s 产销模式,试图在互联网世界复刻现实世界。我们对比开放互联的中立原则和现实世界的本质差异,便能发现互联网安全相关问题的原因和解法。

人们在现实世界的行为分两类,私人行为和公共行为,私人行为需要明确的身份认证,而公共行为则需要为该行为支付成本,无论私密行为还是公共行为,都是曝光的,区别在于仅曝光身份还是曝光在光天化日之下。

朋友聚餐,大家都相互熟识,购买商品,需要为商品付费,进入场馆,需要核验证件或票据,在街上殴打他人,会暴露在众目睽睽之下。在互联网的上层,绝大多数应用模仿了现实世界,比如限制未登录用户的操作,要求对服务付费等,简单将线下服务搬到了线上,就好像用计算器代替算盘。

但在互联网本身,ping 某个域名,telnet 某个 ip:port,可以随时随地零成本发生,这是互联网 ddos 发生的本质原因。

简单设想一个类似互联网的现实世界,每个人都蒙面潜行,被允许进入任何地方,世界会成为什么样子。只要行为不曝光,坏事自然而然就会发生。

看看 ip 报头里有什么,sip,dip 可以随意改变,snat,dnat 还竟然利用此灵活性成立 tcp/ip 基础操作,基于 dip 逐跳转发将状态从传输行为中剥离,这些开放互联的中立原则所要求的结果重在让扩展变得容易,但也是大多数网络安全问题的温床。

安全问题显而易见的方案是模仿现实世界。稍微扩展一下 ip 报头的 checksum 字段,让它不仅对自然误码 robust,也对恶意修改 robust。

当终端接入,注册 ip 被激活,运营商以该 ip 为内容签一个签名返还给终端,终端发送数据时将该签名作为 checksum 置入 ip 报头。只有运营商设备允许对报文做 snat,而运营商拥有私钥可以在修改 sip 后重新签名,而不仅仅是单机计算 checksum。

内容提供商入口设备配置运营商证书链以做辅助验证,只要运营商本身不作恶,此举将消除包括 ddos 在内的大多数恶意访问。

正常时段,任何转发设备无需对运营商签名做任何操作,当流量发生异常,设备启用验证,丢弃并审计所有验签不通过的报文。此举并非将攻击目标转移到转发设备,有人说验签是个耗时操作,这是一种自找的 ddos。但事实上在实际攻击奏效前,抑制甚至溯源工作就已完成,此举将大大减轻流量清洗的压力。

sip 所在的运营商接入网出口设备的验签是可选的,此举进一步加大了 ip 报文伪造的难度,除非从骨干网直接注入伪造报文。运营商有责任对自己客户的行为负责,攻击者首先要过自家的关,这是背后的原理。2022 年,出城要验一次,进入对方地界还要再验一次,出城核验不通过不让出而已,入城核验不通过再抓人。

这意味着,每个 ip 报文都携带了自己的家门信息,曝光于天下,如果恶意攻击者伪造了签名,在攻击端倪出现时,这些报文将成为第一批审计对象。当然,在无事发生时,没人在乎这个签名。

在现实世界,这是常规操作。在机场,车站和码头等枢纽地,随机的抽查身份证会对恶意行为造成威慑,当有事件发生时,几乎在场的每个人都会被查身份证,如果无事发生,人们会忽略查身份证这件事。

堵门,医闹,发诽谤传单,属于现实世界的 ddos,之所以很容易成功,原因就在于身份不曝光,行为零成本,都是一些无所事事的人,还能赚些钱。而丰巢快递柜超时收费策略则是针对另一种 ddos 的反制措施,为了防止驿站恶意将空纸箱长期占据快递柜而无法存在正常物品,丰巢实施超时收费,让攻击者付出成本,攻击也就缓解了。

在这意思上扩展,可把那些使用激进发包算法的 tcp 魔改也列入恶意行为,所有此类算法导致的网络拥塞都可列为 ddos 范畴,而它们在曝光机制下非常容易被审计,比如把操作系统和传输算法和 ip 一起置入 “身份证” 被运营商签名。光天化日之下,信息公开,恶事很难得逞。

然而进一步思考互联网安全的本质,为什么会有这些攻击,无论是 ddos 还是恶意篡改数据,难道不是因为它们能得逞才有这些攻击的么?回到 ip 协议的最初,它本就构建于开放互联的中立原则上,而此原则和我们的现实世界大相径庭,我们非要在 ip 上模拟一个现实世界,难道这不才是很多恶意攻击的根源吗?而我上面提到的 身份曝光 方案,本质上也是在支撑这种开放互联的世界对现实世界的模拟,显然事情搞复杂了。

互联网的世界本就去中心化,它有它自己不同于现实世界的玩法。维基百科,以 linux kernel 为代表的开源社区,区块链技术均透露了去中心玩法的本质。

数据分布式备份在各处,没有任何一个单独主体拥有超过 50% 的控制力,信息全部公开透明,这意味着所有针对单点的攻击都不会起到效果,而又没人可以实施压倒性的控制力,这让任何有效攻击都难以实施。

如何攻击 linux kernel,代码分布在所有社区成员自己的电脑上,通过 git 合作开发,提交几行恶意代码,需要通过所有妹忒呢儿的 review,所有代码的修改都在众目睽睽之下。同样的道理,攻击区块链也很难得逞。去中心化应用本身自带抗攻击属性。

大胆点说,互联网一开始就没考虑安全并不是缺陷,而是构建互联网应用的方式不对。我们现在的互联网应用无异于将一个珠宝店搬到了一个遍地黑衣潜行无身份村民的村落。

一种有趣的社工学拥塞控制的方法,将每个站点的月流量,峰值流量,平峰流量,均差,占比,用户数等信息公示出来并排名,如果出现一个巨无霸流量大户被曝光,它自行优化整改的概率会很大。因为在许诺公平的公开环境,风头过于突出往往会带来内心的焦虑甚至恐惧。去中心化的根基就是曝光,公开。

现实世界的典型去中心化案例,比如宗教社会,恐怖组织。

再次强调,目前构建的大多数互联网应用,几乎在模拟现实世界,这注定它们易于被攻击。即便摘掉曝光性,成本的差别,互联网攻击也比现实世界的攻击要容易很多。因为准光速运作的互联网是一个四两拨千斤的放大器。

这很容易理解。

假设分别来自全国 290 个地级市的 290 个人同时步行出发去往位于深圳的一位经理的家门口堵门,每人在经理家门口堵 1 天,你觉得经理家门口最多会堵多少人,假设是 a,如果步行换成开车,同样的数字是 b,可以想象,a < b,如果每人坐飞机前去,这个数字几乎就是 290。毫无疑问,速度会削弱距离差异。

在互联网世界,排队时间,事务处理时间均在 100ms~1000ms 级别,这个时间大于绝大多数传播时延,有理由认为在世界任何地方同时触发的报文几乎在同一时间到达任何目标,这就是潜在的 ddos 温床。

互联网的各类操作时延之间的占比并没有恰好平滑掉突发,它们并不是同质的。信号以准光速传播,而排队和处理时延则取决于带宽和 cpu 以及事务逻辑的复杂程度。反过来看现实世界,各类操作时延即使不是同质,差异也不大。

某个操作时延变快,而其它操作没有等比例变快,突发造成的拥塞就会严重一些,严重到一定程度,就可算为攻击,我们发现,汽车提高了出行速度,但办事速度没有提升,所以服务大厅排队就会更严重,而互联网定制的导航,旅游,购物等行为,会造成更大程度的拥堵,背后也是这个原理。这是中心化 c/s 模式的内在属性。

下图是一个同样的波动在不同基数下的实际效果,基数足够大,波动效果就足够小:
在这里插入图片描述

皮鞋店一个店员,经理们从步行来买皮鞋,距离差异会给店员足够的时间错开突发,当经理们开车来买皮鞋时,排队就不可避免了,服务质量就会下降。如果是分布式去中心化皮鞋店,经理们自然无需集中到同一个皮鞋店,经理速度的提升可用增加分布站点来平滑。

如果有更多的人为 linux kernel 提派池,可以自动涌现出更多的妹忒呢儿,奉献时间是一个天然的妹忒呢儿度量指标,妹忒呢儿数量永远正比例于贡献者数量,这一切是自然而然发生的。去中心化模式天然避免了时延差异对突发的放大效应。

浙江温州皮鞋湿,下雨进水不会胖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA实战开源项目:校园失物招领管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系统公告模块2.4 感谢留言模块 三、界面展示3.1 登录注册3.2 招领模块3.3 寻物模块3.4 公告模块3.5 感谢留言模块3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 校园失物招领…

STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置

STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置前言第1章 设置字体颜色第2章 设置字体大小第3章 设置代码区背景颜色总结 前言 编程软件环境最好就设置一个自己喜欢的界面进行显示&#xff0c;这样看起来会比较舒服些…

026—pandas 根据文本数据提取特征

前言 在数据处理中&#xff0c;源数据可能具有一定便于记录但又复杂的结构&#xff0c;我们在后续使用数据时还需要进一步进行处理。在本例中&#xff0c;要根据一列数据提取出数据中的相关特征&#xff0c;我们来看看 pandas 是如何完成的。 需求&#xff1a; 以上数据的 a …

CKB转型为BTC Layer2后月涨超 300%,还有哪些转型热门赛道的老项目?

虽然说牛市下&#xff0c;炒新不炒旧。但一些渡过漫长熊市的老牌项目方&#xff0c;重新回到牌桌前开始新叙事后&#xff0c;市场依然有人买单。 部分项目方已经初步尝到了甜头&#xff0c;Arweave&#xff08;AR&#xff09;宣布从去中心化数据存储转换到「以太坊杀手」后&am…

网络攻防中nginx安全配置,让木马上传后不能执行、让木马执行后看不到非网站目录文件、命令执行后权限不能过高

网络攻防中nginx安全配置,让木马上传后不能执行、让木马执行后看不到非网站目录文件、命令执行后权限不能过高。 0x01 Nginx介绍 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发…

腾讯qlv格式转换mp4,亲测可解决,免费领取

问题描述 最近想兼职做自媒体,最初想法是想把腾讯视频上的资源下载到本地,本地做一些剪辑和图文配音发布到自媒体app上,但是我还是幼稚了,下载到腾讯的视频居然是qlv加密的,用自带的腾讯视频才能看,网上找了一大堆转换方法,全是广告,什么cmd进去用命令行转的,什么找到…

大数据 - Spark系列《十三》- spark集群部署模式

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

五、OpenAI实战之Assistants API

在8线小城的革委会办公室里&#xff0c;黑8和革委会主任的对话再次展开。 黑8&#xff1a;主任&#xff0c;您知道吗&#xff1f;除了OpenAI API&#xff0c;现在还有一项新的技术叫做Assistants API&#xff0c;它可以帮助我们更好地进行对话和沟通。 主任&#xff1a;Assis…

Java网络编程详解

目录 网络编程 1、概述 2、网络通信的要素 3、IP 4、端口 5、通信协议 6、TCP 文件上传 Tomcat 7、UDP 单方发送单方接受 双方发送接收 8、URL URL测试 URL下载网络资源 网络编程 1、概述 信件&#xff1a; 计算机网络&#xff1a; 计算机网络是指将地理位置不…

WPF —— TextBlock、LineBreak RadioButton控件详解

一:TextBlock 1&#xff1a;TextBlock 简介 <LineBreak/> 换行 显示文本 标签内容和content属性共存 2、TextBlock 常用的属性 Foreground&#xff1a;TextBlock的文本内容的颜色。 Background&#xff1a;背景&#xff0c;获取或设置要用于填充内容区域背景的 Brush…

冒泡排序的理解与实现【C语言、C++、java】

冒泡排序介绍 冒泡排序(Bubble Sort)&#xff0c;又被称为气泡排序或泡沫排序。 它是一种较简单的排序算法。它会遍历若干次要排序的数列&#xff0c;每次遍历时&#xff0c;它都会从前往后依次的比较相邻两个数的大小&#xff1b;如果前者比后者大&#xff0c;则交换它们的位…

一体机电脑辐射超标整改

电脑一体机是目前台式机和笔记本电脑之间的一个新型的市场产物&#xff0c;它将主机部分、显示器部分整合到一起的新形态电脑&#xff0c;该产品的创新在于内部元件的高度集成。随着无线技术的发展&#xff0c;电脑一体机的键盘、鼠标与显示器可实现无线链接&#xff0c;机器只…

美国站群服务器使用技巧与注意事项

美国站群服务器使用技巧与注意事项有哪些?RAKsmart小编为您整理发布美国站群服务器使用技巧与注意事项&#xff0c;希望对您有帮助。 美国站群服务器的使用技巧主要包括远程管理、灵活配置和备份还原&#xff0c;具体如下&#xff1a; 1. **远程管理**&#xff1a;用户可以通过…

计算机网络-第5章 运输层(2)

5.6 TCP可靠传输实现 以字节为单位的滑动窗口。 发送窗口已满&#xff0c;停止发送。 发送和接收的数据都来自缓存。 超时重传时间RTO选择&#xff1a;自适应算法&#xff0c; 选择确认SACK&#xff1a;只传送缺少的数据。大多数实现还是重传所有未被确认的数据块。 5.7 TCP的…

LLM 推理优化

LLM 推理服务重点关注两个指标&#xff1a;吞吐量和时延&#xff1a; 吞吐量&#xff1a;主要从系统的角度来看&#xff0c;即系统在单位时间内能处理的 tokens 数量。计算方法为系统处理完成的 tokens个数除以对应耗时&#xff0c;其中 tokens 个数一般指输入序列和输出序列长…

掌握Mongodb,看完这篇文章就够了

目录 1.概念 2.操作 2.1数据库操作 2.2集合操作 2.3数据操作 3.查询 4.常用技术 5.python与MongoDB 1.概念 MongoDB是一种非关系型数据库&#xff08;NoSQL&#xff09;&#xff0c;它以灵活的文档存储格式&#xff08;BSON&#xff09;和强大的查询能…

MinGW-w64的下载与安装

文章目录 1 下载2 安装3 配置环境变量4 验证 1 下载 官网地址&#xff1a;https://www.mingw-w64.org/github地址&#xff1a;https://github.com/niXman/mingw-builds-binaries/releases windows下载 跳转github下载 版本号选择&#xff1a;13.2.0是GCC的版本号&#xff1b…

如何避免MYSQL主从延迟带来的读写问题?

在MYSQL 部署架构选型上&#xff0c;许多公司都会用到主从读写分离的架构&#xff0c;如下是一个一主一从的架构&#xff0c;主库master负责写入&#xff0c;从库slave进行读取。 但是既然是读写分离&#xff0c;必然会面临这样一个问题&#xff0c;当在主库上进行更新后&#…

QML | 在QML中导入JavaScript资源、导入JavaScript资源、包含一个JavaScript 资源

01 在QML中导入JavaScript资源 JavaScript资源可以被QML文档和其他JavaScript通过相对或者绝对路径进行导入。如果使用相对路径,位置解析需要相对于包含import语句的QML文档或JavaScript资源的位置。如果JavaScript需要从网络资源中进行获取,组件的status属性会被设置为Loadi…

PyCM:Python中的混淆矩阵库

PyCM&#xff1a;Python中的混淆矩阵库 在机器学习和数据科学领域&#xff0c;评估模型的性能是至关重要的。混淆矩阵是一种常用的评估工具&#xff0c;用于可视化和量化分类模型的预测结果。PyCM是一个开源的Python库&#xff0c;提供了丰富的功能来计算和分析混淆矩阵。本文将…