课堂上传纸条如何防范中间人攻击?

论坛 期权论坛 期权     
Joy Neop   2018-9-24 01:33   366187   8
例如人肉 RSA 啥的……

中间人攻击是一个密码学、网络和信息安全的专有名词,希望外行答主们不要理解错意思了……
分享到 :
0 人收藏

8 个回复

倒序浏览
2#
Ivony  6级职业 | 2018-9-24 01:33:33 发帖IP地址来自
这个我比较有经验啊,,,,

首先第一种方案就是排除中间人,直接建立点对点连接,例如直接将纸条从空中抛送过去,顺便还能锻炼自己的投篮水平,为以后进入国家队作准备。缺点就是如果隔太远这种方式丢包率太大了。

第二种方案就是只使用可信网关连接,在自己与目标之间只请求自己信得过的哥们儿姐们儿进行传递。


如果必须在恶劣的情况下进行安全的数据传递,那么有如下几个技巧:

1、CDMA(码分多址),将一段信息拆分成两份,再从不同渠道传递,这是非常简单的一种加密方式。例如把要说的话写成一行,再从中间横向撕开。目标收到两份信息后,再拼接起来进行解密。其具有加密解密简便易行的优点。但是有一些字即使从中间撕开通过上下文也能判断出来大致意思。所以这还需要其他辅助加密方式,后面谈到。
请注意CDMA技术完全不是这个意思,仅为搞笑

2、TD-SCDMA(时分同步码分多址),将一份信息拆分传递时,应当等目标安全收到一半信息后,再进行第二次传输。这样老师截获完整信息的可能性将大大降低。
请注意TD-SCDMA技术完全不是这个意思仅为搞笑

3、Scrambler(随机扰码),在字里行间插入一些不可解读的字符,例如原文是:
放学后到学校后面的小树林等我,加入随机扰码后:
放魅学后蒙到学赞校后翠面的小澧树林等齷我
由于随机扰码的存在,即使得到一半的纸条,也很难通过上下文推测出原文。

4、跳板技术,有时候为了避免老师发现通信链路的存在,不应建立直接的链路,例如你要传到左上角的女孩手里,则应先向右传,通过多级代理跳板,让老师无法发现通信的源头和目标。

5、Token-Ring(令牌环网),事实上由于跳板技术需要很多人参与,有时候你无法说服所有人,这时候可以组成令牌环网,把需要传递纸条的男女同学组成一个令牌环网,按照既定的环路,有序的传输,例如一个典型的令牌环网像是这样,你是A需要传递消息给G,A-B-C-D-E-F-G,也就是你先传给B,然后B给C,如此。同时F也有消息要传递给B,则采用环路的形式,F-G-H-I-A-B,也就是说F的纸条传递给G,G再传递给H,H传给I,I传给你,你再将它给B。这样整个令牌环网的每个节点都可以获益于环网的信息传递,老师完全无法得知纸条的源和目节点。
此处仅利用了令牌环网的拓扑结构

6、MultiLink(多重链路),有时候链路的节点可能会临时性瘫痪(被老师叫起来回答问题)或者变得非常不安全(老师站在旁边),所以建立网络时任何两个节点之间不能只有唯一的链路,需要有多个备选的链路方案。

7、TTL(存活时间),在长时间的传输过程中,纸条被老师发现的可能性将增大。所以可以约定纸条如果在N个节点传递之后仍然无法抵达目标,则应由该节点直接销毁。


声明:
以上出现的专有名词,仅为博君一乐,不代表此种技术真正的实现原理和方式,切记切记。

转载保留原始地址和作者即可。
3#
武杰  1级新秀 | 2018-9-24 01:33:34 发帖IP地址来自
这个需要的作为专业人士登场了,清清嗓子,嗯!

首先,反对目前排名前几名的答案,尤其是lovny同学以及Rix tox 同学的方法(注:为了提高B格)

作为一个当年专注上课传纸条并且后来大学投身信息安全方向的孩子,很有必要向大家想进行一些科(zhuang)普(bi)教(zhi)育(dao)
在搞清楚怎么办之前,有几个问题是首先要搞清楚的
1 什么是中间人攻击?
当主机A、和机B通信时,都由主机C来为其“转发”,而A、B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A、B却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。
通俗点儿说,就是你A通过你的好基友/小伙伴C向你的早恋对象B传小纸条,结果你的好基友/小伙伴C居然偷看你们的文字内容,甚至伪造你们传递的纸条,比如你给B写了一张纸条:
放学一块走,我们一起去吃麻辣烫,然后散会儿步回家,千万别给老师看见了
然后C获取了你的消息之后写了这样的一张小纸条转发给B的:
放学我去玩PS2,你自己回家吧
然后你的小女友B看了之后自然很伤心,回复:
你不是答应过我要陪我回家的吗,为什么要自己去玩游戏
结果C却自己重新写了一张小纸条给你:
不,我要和小明一起去吃饭!
于是,你的伤心欲绝,你的小女友也是,你们之间产生了深刻的误会却双方改不知情,最后你的小伙伴成功横刀夺爱,你却一无所知。
好的,看来你应该对什么是中间人攻击已经有了一个大概的了解了。
2 课堂上你具有什么样的条件?
所以什么回答封口蜡的同学可以退下了,你要是在课堂上又是点火又是玩蜡烛的,妥妥要被请家长的啊
回答直接传递的同学也可以退下了,要知道距离稍微远一点儿的情况下,直接抛投带来的风险就远大于中间人攻击带来的风险了!
不过,计算器还是可以有的!毕竟在课堂上搞搞数学运算一般还是比较安全的。

好的,下面开始正式的【小纸条防中间人攻击教程】
其实,这个问题分为两个部分
1 确认对方身份,同时交换密钥,也就是确认文字内容的确是发自发纸条的人而不是中间人
2 加密解密,也就是让纸条的内容中间人看不懂,而对方却能解密后看懂

针对1 确认身份,有几个方法
1 也就是最简单的——通过字体和签名来判断。也就是数字签名
不过这个在实际的操作上有个难点,也就是有的时候字对于非专业人士不是非常好识别,尤其是如果字比较丑,丑得又比较平庸的话...
2 特征值
找一个双方都知道且第三方不知道的问题作为识别码
当然,为了防止中间人攻击,你需要有点儿技巧。
栗子1
你知道她的生日是6(a)月20(b)日你的生日是5(c)月3(d)日,【而中间人不知道至少是不完全知道】

然后你的第一张纸条就可以这样提问了:
请回复我两个数字
第一个数
你的生日的月份数乘上我的生日日期数加上你的生日日期数乘上她的生日月月份数(ad+bc)
第二个数
回复1-4这四个数中的一个x,我们就取abcd中第x大的数作为我们的密码(对称通信密钥)
好的,如果你最后收到的第一个数字是118话那你就可以肯定身份了,同时也获得了第二个数字2,也就是加密密钥6,这样即使中间人看到了所有的内容,依然无法知道你们通讯的密钥是什么,而如果他篡改了当中的信息,则会立刻被识破
栗子2
你家的门牌号是83她家的门牌号是62,,【而中间人完全不知道】

类似的,第一个纸条你可以这样写
请回复我两个数字
第一个数
请回复我们的门牌号的乘积
第二个数
回复1或者是0中的一个数,如果是0的话则以这两个数字中的偶数为加密密钥,如果是1的话则以奇数为加密密钥。
推断也同上,一个数字用于身份判断,一个数字用户密钥交换

当然,值得注意的是,有一个原则务必在上课前确定好,那就是无论如何不能将密钥在纸面上写出来,这样防止中间人通过更改表达方式的途径来骗取密钥。

2 好的,现在你们已经拥有了一个安全密钥了,现在你所需要做的就是利用这个安全密钥来加密解密了
这里的加密解密实际上就是一个算法。
有很多很多算法可以用来借鉴,为了方便考虑,举几个安全性相对而言不是那么高的但是课堂上传纸条绝对够用的栗子:
栗子1 简单易懂间隔取字法
放学一块走,我们一起去吃麻辣烫(请原谅我偷懒缩短一下内容...)
使用的加密密钥是6
于是我们从头开始每6取一个字(包括符号),同时在原句中划掉。到头后循环回来。
大致的过程应该是
原文:放学一块走,我们一起去吃麻辣烫
密文:,
原文:放学一块走我们一起去吃麻辣烫
密文:,吃
原文:放学一块走我们一起去麻辣烫
密文:,吃一
原文:放学块走我们一起去麻辣烫
.....
于是,你最后得到的密文就成为了:
,吃一起学一块烫麻去辣走放们我
解密方法反推之就可以
栗子2 万能的二进制选字法
放学一块走,我们一起去吃麻辣烫,然后散会儿步回家,千万别给老师看见了
使用的加密密钥为你家的门牌号83
首先,将门牌号转化为二进制
1010011
然后,加密开始,汉字和二进制数字分列两行,一一对应,然后1就取,0就不取
为了方便演示,我在word里面排了一下版截了个图放上来,其实在纸上做这些运算还是蛮方便的
于是你最后得到了密文:放一,我学走起去块一辣烫们麻吃

解密的方法也就是按照加密方法逆推

如果还想增加加密强度,还可以考虑对密文再进行一轮加密,当然解密的难度也会随之有所提高。
考虑到实际的情况,以上的加密方法都没有将汉字转化为诸如二进制编码之类进行处理,基本上都是基于汉字的排序变化
无论如何加密,对于短文字的加密效果都是很糟糕的,因为很容易通过汉字本身去拼凑内容!
比如如果你的纸条内容是 好的呀 ,无论怎么改变汉字排序,别人都会轻易的知道被加密的内容。但是这样的加密方法对于长原文而言在限定的条件下还是可行的。
密码学,或者说是信息安全领域当中有个基本原则——信息的生存周期小于破译周期,对于一堂课来说一个50字左右的密文针对没有专业计算设备的用户已经完全可以达到加密效果了。

同时这样的加密价值还体现在针对有一定长度的文字上面,尤其是具有一定的判断语句上面。比如说“今天放学我们一起吃饭,然后一起写作业,不去打球也不去玩游戏了了。”通过加密之后就无法获取准确信息了!

---------------------------2月2日补充-增加校验机制---------------------------------
感谢 @朱晋玄 的提醒,在之前的方法都只是针对信息传输的安全性,也就是不会被破译,但是可能存在有中间人在不知道真实信息的情况下让传输的信息产生变化从而达到干扰信息的目的,比如将早上的早改成晚上的晚,比如把数字9改成数字8等。对于这样的问题,就需要使用到密码学中的另外一个知识了:校验码。
这里给出两个类型的可以用于这种条件的校验码方案,只做例子,当中的具体参数都是可以用于配制的
1 通过拼音声调设置校验码
我们决定将第一声对应数字1,第二声对应数字2,第三声对应数字3,第四声对应数字4,轻声对应数字0,将每3个字(标点符号不算)设为一个最小单元,计算小单元总对于数字的综合写在每第三个字后面,作为效验码【数字同理,如69理解为 六九两个汉字标注音调,为了方便区分校验码和数字之间的区别,可以考虑采用一定的特殊写法区分,本文的示例为增加下划线】
增加了效验码之后的原文就变成了
放学一7块走,我10们一起7去吃麻7辣烫
然后再对新的原文进行加密
加密之后改变任意一个字,只要音调改变了验证码就会不相符
如果想要提高检验的精度还可以增加验证码的取的频率
这个的缺点就是如果攻击者发现了验证的方法可以通过修改为相同声调的字来实现躲避验证码,因此从安全性的角度而言比较推荐下面的验证方法
2 通过笔画数置校验码
其实很简单,就是上面的验证逻辑从声调改为了字的笔画数,如果是数字的话就直接取数字本事作为笔画数。
这样的好处是很难被攻击(因为相同笔画的汉字毕竟找起来还是很麻烦的),坏处是....数笔画还是有点儿麻烦的,以至于我决定不在这里放栗子了!

以上两种方法都可以视作抛砖引玉,希望大家主要还是领会精神,尤其是这个效验码的思想
-------------------------------2月2日补充完毕----------------------------------------


总结:
课堂上传纸条防中间人攻击约等于在不安全的通信网络上确认对方身份同时进行安全的信息传输,几个重要的点是
1 确认对方的身份(使用的方法:身份认证机制,数字签名方法)
2 在不可靠的网络上传输可靠密钥(参考方法:Diffie-Hellman_百度百科
3 使用密钥进行加密解密
2月2日补充,这里的加密解密严格来说包括两个方面,一个是保障传输内容的安全性(即不被破译),另外一个是保障传输内容的有效性(即不被篡改)

关于题主在题目中补充的 RSA 之类的非对称加密方法,在这个“课堂,学生,有限条件,有限知识”的情况下几乎是不可能办到的,单单汉字转编码这一步就足够了..

我居然已经这么一本正经的回答了这么多了!!
4#
白喵黑咪  2级吧友 | 2018-9-24 01:33:35 发帖IP地址来自
高票答案根本和密码学一点关系也没有,为了防止大量知乎读者误入信息安全歧途,少说几句以正试听。(同样也是大年初一手机码字着实不易)。

第一个概念,必须理解解决目前信息安全的主要手段在于应用层,不在网络层,链路层和物理层。所以高票答案抖机灵都抖到了那几层,明显误导。

第二个概念,明确man in the middle attack中间人攻击到底有哪些攻击目标。基本可明确的有,(1)窃听,可理解内容,(2)伪造,制造原本不存在的内容,让对方信以为真(3)重放,搜集所有双方通信信息,通过在时间上和顺序上的虚假组合,让对方误认其身份,或者错误理解双方通信本意。

第三,针对这些攻击目标,可采取的防御措施。一般有几种(1)加密,保证数据传输中不可理解(2)签名,确保双方的身份(3)消息摘要,确保数据完整性(4)时间戳和随机数,防重放攻击(5)加盐,防止传输过程中通过消息格式获得额外攻击优势。

要把这五种手段(可能还没有想全)综合起来,基本可以达到基本的防中间人攻击的目标。但是如果考虑到实际应用,可能需要考虑的东西更多。这也是为啥,工程中的安全协议基本没几年都会被攻破的原因,因为刚开始的攻击方式和攻击目标没有考虑到。

上述五种安全手段,都可以找到相应的原始化技术手段加以模拟,先卖个关子,等我晚上拜年回来再更新。
============此处更新线========================

加密,纸条这个东西,
(1)用非对称密码也是可以,陷门函数一般可以比喻成一个带有锁和投递孔的盒子,所谓加密可以意味着A方先拿到B方一个带有锁和投递孔的盒子,然后把处理过的消息用投递孔塞到盒子里,把装有纸条的盒子传给B方。B方用锁打开盒子,即可实现解密。
(2)用对称密码也可以,方法肯定不能用分组密码的方法,人没有办法计算,或者说太麻烦。流密码倒是容易得多,双方约定一本图书,表示从哪一页哪一行开始作为起始点,然后把纸条内容都写成拼音,和图书内容上的字母做加法取26位余,这个也是我曾经看过的一本著名的小说《蝴蝶梦》(也是恐怖大师希区柯克赴美首部电影哦)的谍战故事。
1942年底,轴心国北非军团和反法西斯盟军在各自最高统帅隆美尔和蒙哥马利的指挥下,于埃及的阿拉曼地区展开决战,隆美尔战败,随后,德意军队被围歼于突尼斯。曾一路凯歌的德国非洲军团为何突然土崩瓦解了呢?原来,这次名将对决的胜负早在此前的一场谍战中就已经注定了。蒙哥马利在阿拉曼战役中取得胜利,很大程度上是他通过谍报机构给隆美尔不断设计圈套的结果。


  《蝴蝶梦》中的密码

  “康多尔小组”是德国的一个间谍组织,1942年5月到达开罗,负责人是约翰厄普勒,在其行李箱中有一本英文版的《蝴蝶梦》,而“康多尔小组”的密码就是根据这本小说编成的。使用破译时根据日期和对应的页码来串联文字,这种方法使用简单而安全。
  厄普勒落脚之后,马上开始寻找当地能信任的朋友。他在一家酒吧里认识了埃及的阿拉伯反英分子、舞女法赫米,她很快就透露,她的情人是在英国总司令部工作的史密斯少校,而她常常趁史密斯熟睡时,窃取他皮包里的机密文件。为方便联络,厄普勒在尼罗河岸边靠近法赫米住所的地方租了一艘游艇,并把工作地点搬到了游艇上。
  事情似乎异常顺利,此后一个月里,隆美尔收到了不少来自“康多尔小组”提供的有价值的情报,为此他赞扬了厄普勒。得意忘形的厄普勒于是试图寻找更多情报线索。
  1942年6月中旬,厄普勒经常穿着英国上尉制服,到新闻记者经常进出的俱乐部和酒吧收集最新的英军情报。但他携带的埃及货币已经用完了,由于埃及仍然属于英国实质上的殖民地,因此他认为英镑仍是合法货币,就用英镑结账(商家可以到英国军需处用英镑兑换埃及货币)。接着,厄普勒结识了一个自称为叶维特的酒吧姑娘,还用英镑给她买了大量高级的香槟酒,然后把她带回游艇。
  厄普勒犯了两个致命的错误:首先是大量使用英镑,这在平时或许并不会引人注意,可在战时的紧张时刻,这样做无疑留下了致命的线索――普通人此时弄不到这么多英镑;其次是那个叫叶维特的姑娘,她实际上是为英国情报局工作的犹太间谍,通过厄普勒的德国口音和多得惊人的钞票推断他很可能是条“大鱼”。
  几天后,趁厄普勒和助手蒙卡斯特尔呼呼大睡,叶维特在一个小房间里发现了一张书桌,上面有一本《蝴蝶梦》,旁边还有一些便条,上面是方格和6个字母组成的字组。作为间谍,她意识到这可能是某种形式的密码,于是她打开书,把“用过”的页码和便条纸上每一行的第一组密码抄下来,然后迅速离开了游艇。

  破解《蝴蝶梦》

  与此同时,隆美尔的无线电情报连遭英军袭击,幸存的两名情报兵被俘并被送到埃及开罗,在他们的帆布包里有一本《蝴蝶梦》,这立即引起了审讯者的怀疑:一个德国人读一本英文书干什么?经审查发现,这本书是在葡萄牙买的,上面还残留着铅笔痕迹的葡萄牙文,虽然已被橡皮擦去,但仍然隐约可见。
  于是,驻开罗的英国情报人员打电报给英国情报局葡萄牙里斯本分部,查询最近是否有人在那里的书店里买了两本或两本以上《蝴蝶梦》。因为葡萄牙只有几家英文书店,所以查访起来相当容易,一星期之内便查明:德国助理武官的妻子不久前在一家书店买了6本《蝴蝶梦》。显然,《蝴蝶梦》正被作为一种密码使用。但是谁在使用呢?俘虏怎么也不肯开口。
  此时,英国军需官提供了另一个线索:他在兑换货币时发现,一名“英国上尉”在埃及塔尔夫俱乐部付酒钱,用的英镑是德国精心制作的假钞,这名“英国上尉”正是厄普勒。英国情报人员经过多次跟踪,找到了厄普勒和他的助手蒙卡斯特尔所在的游艇。
  8月10日下午,英国人包围了游艇。厄普勒和助手蒙卡斯特尔都在船上,他们对意外似乎早有准备。当英国人从甲板上冲过来时,厄普勒把袜子卷为球状,扔向试图冲上甲板的士兵,英国人以为是手榴弹。于是趴下来躲避。这使蒙卡斯特尔有了充足的时间,他潜入舱底,打开暗门,把一架收发报机、一本《蝴蝶梦》和所有电报底稿都扔到尼罗河里,然后跃进尼罗河,企图水遁。
  不过蒙卡斯特尔并没能逃走,当他浮出水面时,被守候多时的英国人抓住了,而厄普勒也在游艇上束手就擒。
  而前面提到的犹太女间谍叶维特向英国情报部门提供了她抄下的页码,还有厄普勒和蒙卡斯特尔发报用的主要密码组。她的笔记尽管不完全,但足以使英国情报人员破译《蝴蝶梦》的密码。至此,英国人掌握了“康多尔小组”发报的全部材料,并“恢复”向德国情报机关发报。这样一来,隆美尔的重要秘密情报来源被英军控制了,而不知情的他却依然信任来自开罗的情报。事实证明,这场谍战的结果改变了北非战争的进程。

  美梦正酣,隆美尔中计

  此时的隆美尔正准备发动对英军的攻势,他认为英军在埃及精心构筑的阿拉曼防线南端兵力薄弱,正是一个突破口。于是,他决定在此冲破英军防线,然后迂回消灭英军主力。计划好后,隆美尔开始偷偷把军队向南部集结,并在北面留下了一些假坦克和卡车,以迷惑英军的空中侦察。
  这个计划着实巧妙,可是隆美尔并不知道,此时德军密电码系统已经被盟国掌握,隆美尔发出的电报希特勒还没收到,就已经摆在蒙哥马利的办公桌上了。而德国人之前破译的英美密电码却已被更换,源源不断得到的其实是假情报。
  蒙哥马利通过情报部门得知隆美尔的战略意图后,决定将计就计,引诱隆美尔上钩,但不是要阻止他发动攻势,而是尽量鼓励他在阿拉曼防线南端发动攻势,使其装甲部队完全陷入埃及南部沙漠中。为此,蒙哥马利让英国情报人员以“康多尔小组”的名义给隆美尔发了一封电报,说在阿拉曼防线南端的拉吉尔地区,英军防守薄弱,正在等待援军,正是突破英军整个阿拉曼防线的最佳地点。
  为了使隆美尔坚定进攻计划,蒙哥马利还命令绘图员绘制了一张假地图,上面标明拉吉尔地区是一片“硬地”,便于装甲部队行动,然后设法将假地图送到德国人手里。隆美尔获得地图后,深信不疑,终于在作战地图上注明了拉吉尔地区的“硬地”符号,将此选为主攻路线。

  梦醒时分,折戟北非

  1942年8月30日深夜,隆美尔下令进攻,试图通过突袭,一举突破英军防线。但是,在德军进攻的道路上,到处都是新布设的地雷。当德军工兵进入雷区,为装甲部队扫清道路时,英国空军又来了,一颗接一颗的照明弹将隆美尔一长串的装甲部队照得通亮,紧接着,大批轰炸机向德军坦克部队投下了雨点般的高爆炸弹。
  德军付出了巨大的代价才突破了英军的雷区。第二天,德、英两国的装甲部队展开了激烈交火。隆美尔逐渐发现,英军的装甲部队居然是原来的3倍!而地图上的“硬地”实际上是一大片沙漠,且流动性极大,变幻莫测。德军的几十辆坦克、装甲车、半履带车、卡车在流沙中东倒西歪地挣扎前进。当车上的人下来,想去推动车辆时,英国皇家空军的几个中队的战斗机飞来,毫不留情地轰炸和扫射他们。
  夜幕降临时,沙漠里到处都是被烧毁的德国车辆。乌黑的油烟像长长的柱子直上云天,玫瑰色落日笼罩下的沙漠漫无边际――德军已完全没有藏身之地。
  9月4日,损失惨重、后援被断的隆美尔被迫下达了总撤退的命令。此役德军共伤亡4800人,损失50辆坦克和78门大炮。这些损失对于隆美尔是非常严重的,因为隆美尔在消耗战中不能像英国人那样很快得到增援,这也意味着他失去了在非洲取胜的最后筹码。事后,隆美尔沮丧地说:“英国统帅部早就知道了我们的作战意图。”与此同时,蒙哥马利早已甩开隆美尔,回到了自己的司令部,准备之后的反攻去了,因为他相信自己的假情报已经让“沙漠之狐”乖乖就范了。
(3)古典密码
古典密码最常见的是凯撒密码,完全没有办法应对词频攻击,一点也不好玩。好玩的是
Scytale,我不清楚别人怎么叫,我一直都叫它棍子加密法。具体解释可参见维基百科:Scytale

这个东西需要保证通信双方的棍子粗细长度完全一致,才能够得到一致的结果。A方B方买根限量版的一对棍状物体,纸条那么一卷啊,偷看都不怕。

签名
在纸条这种介质上面,重新用陷门函数对纸条内容做签名,人真没有办法做。能够借鉴的是中国古代的虎符制度。可参考百度百科:虎符(中国古代调兵兵符)
虎符为中国古代帝王授予臣属兵权和调发军队的信物。铜制、虎形、分左右两半,有子母口可以相合。右符留存中央,左符在将领之手。王若派人前往调动军队,就需带上右符,持符验合,军将才能听命而动,军队不执行执皇帝金符节者行兵令,除皇帝亲临现场调兵。它盛行于战国、秦、汉时期。但历史上也有很多没有虎符而成功发兵的情况,尤其是西汉前期的藩国最为猖獗,刘邦灭诸异姓王后制定的藩国须有汉朝虎符才能发兵的制度对藩王们的兵权限制作用甚小。例如西汉吕太后死后齐王刘襄的起兵叛乱[1],汉文帝时济北王刘兴居的起兵叛乱[2],以及汉景帝时吴楚七国之乱[3],养兵练兵者皆为藩王,故藩王们都能轻松发兵。传世的有秦新郭虎符等。

我们只能在纸条介质上想办法,比如每次通信用的纸条,是某页作业纸的一半,另外一半保留在接收方手上,A用纸条发了消息,B除了看消息,还需要比对发来的纸条是不是能和自己手上保留的另外半页纸严丝合缝的对在一起,是的话,才能验证A的身份。

=============先更新的这儿,还要给孩子讲故事============================

时间戳或者随机数,我个人更加倾向于时间戳。很简单的应用就是,每次纸条后要附加有消息发送时的年月日小时分钟信息,这样做的好处就是防止中间人复制了昨天的纸条内容,来欺骗今天的通信双方。

加盐,因为很有可能A男和B女通信,无非就是情感上那点事情。如果中间人有背景知识,发现A男B女已经眉来眼去一大堆,突然A男神色忐忑给B女发个纸条,即使内容完全不知道,也能猜出和表白有关。那B女传回来的纸条,如果同意了,往往是“郎有情妾有意”之类一长段一长段的衷肠倾诉,如果不同意,一个字“滚”就可以结束对话。那么中间人通过纸条长度,也能明白表白是否成功。所以,必须在纸条内容上加盐,保证纸条长度一定要超过一定长度,如果长度不够,可以加上一大堆一大堆的废话,这些废话就可以看成是加盐。但是,必须保证每次说的废话完全不一样,否则加盐操作也失败了。Enigma机被破译,也和傻逼德国通信员每天有固定的废话,给了英国人密码分析的可能。WEP协议被破译,也和消息头内容固定有关系。

消息摘要,密码学中是用单向函数,这个在纸条里面没法用。有一种简单方法,类似于这种单向函数。就是一段话中,比如“白日依山尽,黄河入海流”,统计每个字声母出现的个数,做完的摘要大致为B1H3J1L1R2S1Y1。

当然,在防止中间人攻击的实际纸条设计中,还涉及到另外一种应用。就是所有上述内容的编码。必须保证所有的数据采用一种方式编码,有统一的方法和格式,使得通信双方理解数据格式的类型和内容。如果出现了控制位和数据位的混叠,可能还需要使用光传输或以太网传输中的透明传输的概念。

好了,说了这么多,如果要进行一次成功的防中间人攻击纸条传输,最简单的方式是如下:

编码格式:中文汉字无标点符号,格式为:“正文”+“盐”+“加盐数据”+“时”“时间戳”+“摘”+“消息摘要”
信息正文:白日依山尽,黄河入海流。
加盐数据:王大妈家里有条狗
时间戳:大年初二下午十四点三十七分
消息摘要:是对“白日依山尽黄河入海流盐王大妈家里有条狗时大年初二下午十四点三十七分摘”的消息摘要,结果为白一吃一大三福一贵一火三角二柳二梦一糯一曲一软三神六腾一我二小一意三正一(用相对应声母字代替所选声母)。
那么完整要发送的消息是:
白日依山尽黄河入海流盐王大妈家里有条狗时大年初二下午十四点三十七分摘白一吃一大三福一贵一火三角二柳二梦一糯一曲一软三神六腾一我二小一意三正一

接下来,把完整的消息写在事先已经撕好的纸条上——纸别忘了是一人一半,接下来好比对哦。

接着,发送方拉出预先接收方给他的,已经上了锁的带投递孔的盒子,把纸条塞进盒子里,然后把盒子让任何人送给接收方,基本上常见的中间人攻击方式都能够防御了。

但是细想起来,还有各种中间人的攻击方式在上述通信中无法防御:

拒绝服务攻击:中间人给盒子加把锁,盒子无法打开,相当于纸条传情业务中断。
暴力破解攻击:盒子和锁的强度是有限制的,把锁撬开很容易,或者暴力破坏盒子很容易。当然这种方法也可以很容易防御,换更坚固的盒子和锁。移到加密领域,就是更换算法或者提高密钥长度。
权威攻击:传个小纸条弄出个大盒子传来递去,老师和家长不参与进来才算见了鬼了。就算他们看不到纸条中的内容,但是这事情还不会上纲上线使劲批判一下,就算没事情也按有事情先清理整顿一下,这对通信双方的杀伤力都是极其巨大的。

码字不易,也让我想起三年前给学生上的网络安全课。这段文字要按课程讲清楚,大致需要20个课时以上,且写且珍惜。
5#
车小胖  4级常客 | 2018-9-24 01:33:36 发帖IP地址来自
上课期间,小明的心又蠢蠢欲动了,想和小美说点悄悄话,但是小明与小美相隔很远,只能给小美传纸条以解相思之情。

如果字条赤裸裸地写着“我爱你,就像老鼠爱大米!”之类,中间传纸条的同学会偷看到,甚至有恶作剧的同学会把小明的纸条扔掉,重新写一张“狐狸精,今日绝交,再也不理你了!”,转交给小美,小美气的发抖,转头狠狠地瞪了小明一眼,小明却一脸无辜,小美写好了纸条:哼,懒得理你!

中途又被替换掉了,到小明手中已经变成:猪头三,有多远滚多远!

小明一下子从梦中惊醒,惊出一身冷汗,第二天小明送给了小美一本密码本,上面有汉字与代码的对照表,“亲爱的,以后给你传纸条,我用代码写,你查密码本,这样就没有人知道我们在聊些什么了好吗?” ,小美捶了小明一下:坏蛋,就你鬼点子多!

密码本
我 6743
爱 12BC
你 65DA
就 A123
像 7312
老 8356
鼠 89FD
爱 12BC
大 2276
米 98EB

小明用右边的代码写纸条,小美收到纸条查密码本,会显示成左边的汉字。

恶作剧的同学不明所以,无法下手,即使重新写一张纸条,也用代码模仿写,不一定有意义,比如只篡改最后一个字:

我 6743
爱 12BC
你 65DA
就 A123
像 7312
老 8356
鼠 89FD
爱 12BC
大 2276
炮 9036

想必老鼠是不会爱大炮的,小美很容易知道这不符合逻辑,肯定假纸条。

这里的关键是密码本,一旦密码本泄露,恶作剧的同学就可以破译并篡改纸条。

中间人攻击
二战期间,英美联军为了破译德国的军事情报,一直监听德军电台,发现每天某个时刻总有固定长度的消息(加密)从德军军事基地发出,后来抓到了德军俘虏得知那是天气预报,于是情报部门根据当天的天气实际情况,然后在对照截获的天气预报消息,得到了部分密码,当德军使用同样密码本再加密其他军事情报时,可以根据已知的部分密码,解密军事情报。

如果小明写的情话里有小美、小明落款时,

小 0045
美 2233
明 6677

那么别人就会推理出这个对应关系,然后用这个对应关系来解密其他部分消息。

应对措施
密码本只使用一次!这是目前最安全的加密方式,但意味着有多少字节的数据,就要有多少字节的密码本,密码本太庞大了,目前常用的加密密钥是尽可能随机,但无法完全避免密钥重复使用的情况。
6#
多子  4级常客 | 2018-9-24 01:33:38 发帖IP地址来自
直接扔到老师脸上,一般老师都会直接把上面的话念给你想要告诉的人
7#
懒癌  4级常客 | 2018-9-24 01:33:39 发帖IP地址来自

有件事印象非常深刻

高三一堂自习课,班主任数学老师坐镇,我个高坐最后一排,写了个纸条,上面写着一个不理解的问题,是化学题目,写着不会就往前传,当时我成绩还不错,啊我记得特别清楚,我这一列上有两个不太偏科的课代表,一个语文还有一个啥课代表来着,有一个同桌是数学课代表,成绩都特别好,其他的几乎没有一个成绩差的,所以心里想着总有一个人会吧

结果就是,班主任接到了纸条,给化学老师打了个电话,化学老师过来针对这个问题上了半节课…………


我讲这个是想告诉你们,身正不怕影子斜

8#
王峰  4级常客 | 2018-9-24 01:33:40 发帖IP地址来自
把中间人变成机器,比如遥控汽车。
9#
黄中青  1级新秀 | 2018-9-24 01:33:42 发帖IP地址来自
核心人员人手准备一份密码本,涵盖所有与课程无关的核心词句(不推荐使用单字密码,编译时间过长,不适合用于四十分钟的课堂)。例如:放学、别走、你大爷等等。

现在我们要传递一个信息,在纸条上写R23、T2、H12、A10,通过节点传递或直接空投皆可。注意存在被其他核心人员截获信息的风险,可以定时小范围更新密码本加以规避信息泄漏,不同的圈子采用不一样的密码本,也便于塑造你绝对核心(老枪)的地位。

于是当妹子收到你的纸条,一核对密码本:

今晚要不要来我家写作业?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP