中间人攻击

Tue 23 September 2025

如果你想要达到100%规避中间人攻击,这是不可能的,因为互联网本身就是一个庞大的中间人。

如果你把中间人想象成无所不能的,那么这个问题必然无解。但是他们并非无所不能,中间人可以分为三种:自动化的脚本、人工智能、和人类。

对于自动化的脚本,只需要灵活的变动一下,它们就会失效。 对于人工智能,当前人工智能还远不及人类,它们过不了比较复杂的图灵测试,所以你需要把密钥的交换过程设计成人工智能无法处理的形式。 对于人类,而且是有限数量的人,你可以对自己进行一下评估,他们愿意在你身上花费多少成本?他们愿意雇佣一个人24小时监视你吗?他们会雇佣几个人监视你?对于大多数人来说,他们不会在你身上花费十分钟以上的工时,他们无法雇佣70多亿人去监视另外70亿人。

时间是最难以压缩的成本,他们的金钱可以超过你们,他们的算力可以超过你们,他们的寿命加起来不能比你们的寿命加起来更多,他们的一天不能超过24个小时

你的信息通道可以分为三种状态:无人监管、监视、篡改。 无人监管是最理想的状态,人们在无窃听器的密室里和朋友们谈话就是这种状态。 监视状态意味着你们的谈话将被记录。 篡改状态是最糟糕的,你发出的信息可能被完全篡改,或者部分的篡改,他们也有可能冒充你的朋友说话,冒充你讲话。

发挥你的创造力和想象力,如果你不知道怎么做,可以尝试从隐写术和反审查技术中汲取灵感。不要遵从你的第一想法,因为你的第一想法别人也很容易想到,你可能会和很多人在用同样的方式,这样你们就更容易被自动化的脚本 “解决”。把还原密钥的步骤写下来,做好把它告诉你的朋友,以便他们可以更好地准备。 4.预估一下还原密钥所需要的时间,最好自己还原一遍,这样你可以精确的计算时间。 你和你的朋友对于密钥的交换过程都应该有清晰的认知,能够发现交换过程中的异常状况。将打乱分割后的密钥和还原方法交给你的朋友,还原密钥应该立刻进行,在最短时间内完成整个握手过程。 从你发出密钥和还原方式后计算时间,如果时间超出正常范围,则视为交换失败。 你的目的是让瞄准你的中间人必须时刻紧紧盯着你,如果你允许远超正常时间范围的交换过程,你的中间人就可以暂时截留你的密钥,等到他们的人员空出时间时处理,不要给他们这种喘息空间。你可以和你的朋友约定在接下来的一个月内的任意一个时间段实施密钥交换,时间的选定是即兴的,在开始前你也不知道什么时候会开始,你的中间人就必须在接下来的一个月内紧盯着你。 5.你完成了密钥交换,但这还没有结束。评估一下他们愿意为你花费的成本,你甩开他们了吗?你感到更安全了吗?不,因为你得不到反馈,当潜在的中间人被甩开时,他们不会说:"我走了,好好照顾自己"。如果他们不愿意在你身上花时间,你得到的密钥是纯净的概率可能是95%,如果他们派了一个人实时监视你,你得到的密钥纯净的概率可能是1%。 这个概率我们只能去猜,它达不到我们的要求,我们要的是99.9999%纯净的密钥。不管你所得到的密钥是否纯净,我们可以继续在它建立的新信道中交换新的密钥,我将这个过程称为 “增殖”。这是个生物学名词,因为我们接下来要做的和生物学家类似。 你将用一个密钥增殖多个密钥,如果新信道遭受了阻断,这意味着你的中间人替换了密钥,并且阻断了信息,你的通信状态从被监视状态转换为篡改状态,中间人已经露馅了,你应该抛弃这个信息通道。 只要你仍处于监视状态/无人监管状态,你就能不断地在前一代密钥所建立的信道中交换新密钥,也就是不断地让密钥 “增殖”。 中间人终归会犯错,是人就会犯错,他们要么会暴露自己的存在,要么会漏过纯净的密钥,一旦他们漏过一次,你就能甩开中间人。难点在如何将纯净的未遭到攻击的密钥从被替换过的密钥中筛选出来。 纯净的密钥相互之间能够彼此验证,被替换的密钥之间也能彼此验证,但是纯净的密钥和被替换过的密钥之间无法彼此验证。如果你发现了两批密钥,两批之间无法相互验证,也不要窃喜,因为中间人可能进行认知欺骗,伪造两批密钥无法彼此验证,让你以为其中一定有一批是纯净密钥。 你只需记住一点,如果一个密钥是纯净的,那么它的增殖一定是世世代代纯净的。你迫使中间人出错的可能越大,你得到纯净密钥的可能越大。然后你要像生物学家筛选果蝇一样,从多代增殖中筛选出带有纯净基因的密钥。 子代密钥如果是不纯净的,那么他们的父代也一定不纯净。如果一批密钥世世代代能够彼此验证,他们的数量越多,他们是纯净的概率越大。 6.动态地评估当前的状况,保持警觉。

Category: 待整理