《互联网的世界》第五讲-信任和安全(第一趴:物理世界的非对称加密装置)

news2024/10/3 6:32:39

信任和安全的话题过于庞大,涉及很多数学知识,直接涉及 “正事” 反而不利于理解问题的本质,因此需要先讲一个前置作为 part 1。

part 1 主要描述物理世界的信任和安全,千万不要觉得数字世界是脱离物理世界的另一天堂,它只是效率高了,让物理世界被认为不可能的事变得可能,同时由于不可能的事变得可能了,它带来的问题也要一并解决。

我用棘轮装置设计了一个物理世界的非对称加密装置,实现类似 rsa 的效果:

  • 公钥加密:任何人都可以放东西进去。
  • 私钥解密:只有有钥匙的人才能把物品取出来。
  • 私钥加密,公钥解密:持有钥匙的人把物品放入,任何取出物品的人可以确定这个物品是特定持有钥匙的人放入的,这机制可做签名。

从网上找了一个可转向棘轮原理图:
在这里插入图片描述
下面是一个设计(并非唯一,但细致):
在这里插入图片描述
还可以抽象出一个更简单的实现方式:
在这里插入图片描述
箱主钥匙旋至 180°,联动装置促使箱口内凹,初始状态为 1,分发箱子给别人,别人通过弹簧片可将物品推入箱内却无法取出,只有箱主插入钥匙再旋 180° 到状态 2,箱口外凸,方可以取出物品。

当箱子位于状态 2,箱主可将物品推入箱内,之后再旋转钥匙 180° 至转态 1,将箱子分发给接收者,接收者方可取出物品并确认物品只能是箱主推入。

总结一下,箱子处在状态 1,任何人都可存入物品,只有箱主可取出,箱子处在状态 2,任何人都可取出物品,此物品一定由箱主推入。

​这样子给小孩子讲非对称操作应该可行。

我:你在一个信息几乎透明可被任何人截获的环境下和不能对方的人通信,要怎样?
孩子:要把信息加密。
我:如何加密,密码传给遥远的对方吗?如果密码被经理截获了怎么办?
孩子:…
我:使用上述装置,给对方一个瓶子,让对方把密码塞进去,只有我有钥匙能打开瓶子获得密码,就不怕被截获了。
孩子:既然都能塞进密码,如果有多个塞入,我打开瓶子后,怎么确定哪个是特定对方塞入的。
我:瓶子里只能有一个密码。
孩子:如果你希望获得 A 发来的密码,结果坏人 B 截获了瓶子,塞入了自己的密码发回来了怎么办?
我:A 从权威机构那里获得一种特殊的更小的小瓶子,并且拥有小瓶子的钥匙,A 用钥匙打开小瓶子,密码装进小瓶子里,再把小瓶子装进大瓶子里,就好了。
孩子: 坏人没有这种小瓶子吗?
我:是的,坏人没有。所以坏人就算抢了一个小瓶子,也没有钥匙打不开它,就放不进密码。

在这里插入图片描述

我们从没见过类似的装置实现安全认知需求,因为在物理世界,我们有更好更方便的。

任何人都可以放钱到存钱罐,只有存钱罐的主人可以用钥匙打开它拿出钱;只有管理员可以往自动售货机里加物品,但所有人只要投钱就能取出;带玻璃窗的公示栏每个人都可以看,但只有科长有权限打开玻璃门张贴新告示;印章和签名也能从细微之处认证每一个人或机构。

在线下物理世界,我们会配合使用锁,钥匙,玻璃窗,印章,签名,严格的法律等手段满足非对称安全需求,因为它们的操作时间处在同一个数量级,然而在线上世界,操作时延的差异被放大,使用不同的方式自然会引入木桶短板效应拖慢整个系统,固然需要一个统一的非对称算法,也就是我设计的上述装置在物理世界的描述,大概就是 rsa,ecc 这类。

此外,物理世界本就是 “零信任” 的,然而互联网最初却建立在普遍信任的基础上,这导致原则上基于 ip 地址的互联互通,包括攻击等恶意流量在内的所有流量在互联互通的原则上真的就是互联互通,恶意流量从物理层到应用无需付出太大代价就能在互联网注入恶意,这也是互联网安全的核心问题。

一个不那么技术但却典型的例子是任何人都可针对任何人攻击。谩骂,网络暴力无处不在,你甚至不知道骂你的人在哪里(显示 ip 地址本身争议很大),任何人都不需要对说过的话负责,互联网事实上是一个准匿名世界。然而实名制,防火墙等措施在另一方面又违背的网络中立原则,左右都是错。

物理世界的不与陌生人说话的零信任原则在互联网世界其实并不适用,它和互联网 ip 地址互联互通相违背,互联网架构让零信任的实施过程非常不便。

总之,信任和安全的话题非常大。从技术上讲,目前的互联网安全都属于案例,案例终究还是案例,并不会改变互联网根基,这些案例,以及其涉及到的算法,注入互联网的复杂性,我们可以从过往的 pki,ipsec,ssl/tls 等术语从可见一斑。很多人争论,互联网安全永远是最后贴上去的 patch,从来不是内置的,从这个视角看,物理世界也一样,出了事再说,规则和法律在不断完善,而不是被设计好。

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

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

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

相关文章

【C语言】字符指针

在指针的类型中我们知道有一种指针类型为字符指针char* 一般使用: int main() { char ch w; char *pc &ch; *pc w; return 0; } 还有一种使用方式,如下: int main() { const char* pstr "hello bit.";//这⾥是把⼀个字…

基于决策树实现葡萄酒分类

基于决策树实现葡萄酒分类 将葡萄酒数据集拆分成训练集和测试集,搭建tree_1和tree_2两个决策树模型,tree_1使用信息增益作为特征选择指标,B树使用基尼指数作为特征选择指标,各自对训练集进行训练,然后分别对训练集和测…

基于Java的在线课程教学系统(Vue.js+SpringBoot)

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

企业AI转型之路:策略与实践

目录 前言1 试点项目:积累AI经验1.1 选择有实际价值的项目1.2 创新氛围的激发1.3 员工对新技术的接受度提升 2 建立高效的内部AI团队2.1 团队独立性与高层直报2.2 初期资金支持与资源整合 3 提供全面的AI培训计划3.1 针对不同层次的培训3.2 多样化培训形式3.3 内部人…

【Linux】线程同步与生产消费者问题

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻CP问题👉🏻互斥…

Linux:kubernetes(k8s)prestop事件的使用(10)

他的作用是在结束pod容器之后进行的操作 apiVersion: v1 # api文档版本 kind: Pod # 资源对象类型 metadata: # pod相关的元数据,用于描述pod的数据name: nginx-po # pod名称labels: # pod的标签type: app #这个是随便写的 自定义的标签version: 1.0.0 #这个…

Day34-Linux网络管理4

Day34-Linux网络管理4 1. IP地址分类与子网划分基础1.1 什么是IP地址1.2 十进制与二进制的转换1.3 IP地址的分类1.4 私网地址和局域网地址 2. 通信类型3. 子网划分讲解3.1 为什么要划分子网?3.2 什么是子网划分?3.3 子网划分的作用?3.4 子网划…

【论文笔记】Language Models are Few-Shot Learners

Language Models are Few-Shot Learners 本部分是 GPT-3 技术报告的第一部分:论文正文、部分附录。 后续还有第二部分:GPT-3 的广泛影响、剩下的附录。 以及第三部分(自己感兴趣的):GPT-3 的数据集重叠性研究。 回顾…

算法学习09:堆

算法学习09:堆 文章目录 算法学习09:堆前言一、例题1:堆排序二、例题2:模拟堆总结 前言 提示:以下是本篇文章正文内容: 一、例题1:堆排序 堆排序:输入一个长度为n的整数数列&#x…

面了美团大模型算法工程师,这次侥幸通过了!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 今天我介…

移动端uni-app小程序搜索高亮前端处理,同时可设置相关样式,兼顾性能

在uni-app中我们会遇到搜索高亮显示的需求 如下图: 起初用的是富文本实现 使用replaceAll方法取代搜索字段为一个 标签并设置相应的样式,但是小程序的并没有把 标签渲染出来,所以放弃了,下面原代码: /* 搜索字体变色…

算法(递归)黑盒思想

递归vs搜索vs回溯 递归的时候其实就是在搜索,递归返回的时候其实就是在回溯 常见的二叉树的题目基本都用到了递归: 求二叉树节点个数(后序遍历) int BinaryTreeSize(BTNode* root) {return root NULL ? 0 : BinaryTreeSize(roo…

HttpURLConnection详解及使用

HttpURLConnection 请求响应流程 设置连接参数的方法 setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCachessetDefaultAllowUserInteractionsetDefaultUseCaches 发送URL请求 建立实际连接之后,就是发送请求,把请求参数传到…

深度学习500问——Chapter02:机器学习基础(5)

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 2.14 贝叶斯分类器 2.14.1 图解极大似然估计 极大似然估计的原理,用一张图片来说明,如下图所示: 例:有两个外形完全相同的箱子,1号箱…

使用Migration升级数据库

使用Migration升级数据库 package com.tiger.room2;import android.content.Context;import androidx.annotation.NonNull; import androidx.room.Database; import androidx.room.Room; import androidx.room.RoomDatabase; import androidx.room.migration.Migration; impo…

Linux系统下使用C++推流多路视频流

先看拉取的视频流效果: 代码如下: 一开始打算使用python写多路视频推流,但在ubuntu系统上搞了好久就是搞不定openh264导致的错误,然后改用c了,代码如下,我这里推了两路视频流,一路是网络摄像头&…

LabVIEW智能Modbus监控系统

LabVIEW智能Modbus监控系统 在自动化和信息化迅速发展下,传统的监控系统已无法满足现代工业对于数据通讯和处理的高效率和高可靠性要求。为了解决这一问题,设计了一套基于LabVIEW的智能Modbus监控系统。该系统利用LabVIEW的图形化编程环境和Modbus协议的…

QT给QLabel设置背景颜色

1.选中label 2.右键点击"改变样式表" 3.填写样式,点击apply,ok 注意 #{QLabel名称},例如名称是label就是QLabel#label

Java两周半速成之路(第十二天)

一.泛型(JDK1.5以后出现的机制) 1.泛型由来 为什么会有泛型呢? 通过案例引入 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问…

【MySQL使用】show processlist 命令详解

show processlist 命令详解 一、命令含义二、命令返回参数三、Command值解释四、State值解释五、参考资料 一、命令含义 对于一个MySQL连接,或者说一个线程,任何时刻都有一个状态,该状态表示了MySQL当前正在做什么。SHOW PROCESSLIST 命令的…