两个人交流最安全的方式是什么?
在查看具体的技术解决方案之前,您需要对您的威胁模型进行一些思考。谁是“敌人”?他们想要什么,他们有什么资源?
例如,对通信内容保密是一回事,隐藏你正在通信的事实是另一回事,验证对方的身份又是第三回事。
对妈妈隐瞒是一回事,对中共中央政治局常委隐瞒是另一回事。
您还需要了解您的资源。你能建立一个到对方的短期安全通道(这样你就可以交换密钥)吗?你能用剪纸吗?您可以安排每次交流时使用不同的计算机吗?
好吧,从技术上讲,您问题的答案是使用一次性键盘和 Tor 等匿名网络。一次性密码本提供了最高的安全性,因为只要它们的密钥是真正随机的并且没有被泄露,就可以保证它们是牢不可破的。然后 Tor 提供匿名性。也就是说,一次性焊盘通常不实用,因为它需要一种安全的方式来共享焊盘出通道。
加密通信的第二种最佳方法是一个更难回答的问题,但我可能会在匿名网络上使用基于 AES 的密码,并使用公钥/私钥对进行签名。请注意,算法选择必须在带外交换,因为您想保持匿名。或者,如果您只希望能够识别出消息来自对 AES 密钥有保密权的一方,而不是具体知道发件人是谁,那么您可以删除签名部分。
如果匿名是一个大问题,另一种可能的方法是使用隐写术,这是一种完全隐藏消息存在的方法。然后,您可以(理论上)公开发布看似无害的帖子,并且只有预期的收件人会知道要查找该消息。
我计划与地球上对加密知之甚少的家人交流。否则我会要求他们简单地使用 GPG。
在这种情况下,我喜欢让沟通变得简单。
我事先准备了一个大约 100 个不同密码的小列表,随机生成,每个有 40 多个字符长,由字母和数字组成。
这么小的字符集的原因是为了避免人为错误或混淆。密码的长度使其有效地达到 256 位级别的安全性。
然后我打印了这个列表的两份,它们只存在于打印出来的纸上。
我把一份给我的兄弟,另一份留给我自己。没有其他人有这个清单。他们很容易确保这一点。
然后我可以从另一个国家通过电子邮件向他们发送电子邮件,当我们需要安全地传输信息时,我会使用其中一个密码加密邮件或附加加密存档,并仅识别列表中的哪一个(我将它们编号为 1 到 100已经,例如。)
为什么要列出清单?好吧,每个密码只使用一次,然后从列表中划掉。
为什么只有一百?这比我们需要的要多,每隔几年我就可以飞回他们那里,再给他们一套。
否则,我们只会使用 OTR 进行实时聊天,使用 GPG 进行电子邮件。密码列表是一个不错的选择,因为它对他们来说很容易理解,而且我认为他们可以保证那张纸的安全。
这是一个非常有趣的问题。我认为,密码学笼罩在不确定性之中。历史上充斥着世界“知道”他们的加密方法是完全安全的实例,但多年后才发现事实并非如此。通常一旦他们入狱,或者战争已经结束。
你看.. Eve(我们给试图窃听密码学的人的昵称http://en.wikipedia.org/wiki/Alice_and_Bob),如果她知道如何在 Alice 和 Bob 不这样做的情况下解密消息,则将具有优势不知道她可以。因为他们会在她前夜下降时继续交流。
虽然有点超出我的深度,但人们已经进入了量子密码学的领域。正如 Simon Singh 在他的《密码书》一书中所解释的那样,这将真正将目前已知的大多数加密方法彻底淘汰。即使我们要简化这一点,黑客现在也在使用云架构来大量增加计算能力来解密信息。
你只需要看看每年像 Defcon 这样的大会上举行的比赛,竞争对手的机器和资源似乎是去年的 10 倍 :)
您可能会争辩说,随着时间的流逝,密码破解已经变得与计算能力和解密方法本身一样重要。也就是说,破解 Casesar 密码 (http://en.wikipedia.org/wiki/Caesar_cipher) 不需要计算机,但您最好希望您有一些计算机能力来破解 MD5 或 DES。
从这个意义上说,很难回答现在最安全的通信方法是什么。我们不可能 100% 安全,因为我们知道众所周知的加密方法不会被破解。
那么我们如何才能在现实世界中安全地进行通信呢?嗯.. 我认为我们需要考虑第一次通信。
假设确实,只要有足够的计算能力,AES256 就可以被破解。通常被认为是“军事级”加密,我认为我们需要关注其他安全手段。我认为这是在最初的沟通中。如果您假设我们正在使用基于公钥的意识形态,那么一旦每个人都拥有密钥,他们只需发送没有密钥的加密消息。我认为,有些沟通很适合这一点。
我认为 PGP 加密很好。因为你可以在一张纸上物理传递密钥,所以记住它,你可以稍后烧掉它。
我很喜欢 OCR (http://www.cypherpunks.ca/otr/),它很相似,但也集成了一些即时通讯程序。
tl;博士如果历史趋势占上风,最终没有什么是安全的。但是,您可以共享密钥并且永远不会大声重复它的东西可能与您现在可以得到的一样好。
ps 我不是专家。只是分享我所知道的:)