最新的 iOS 17.2 更新于本周发布,向公众带来了联系人密钥验证功能。此功能已公布
在这篇文章中,我将讨论为什么增加的安全性很重要,这两个新功能的实际用途,以及您现在如何在手机上的 iMessage 中选择更高级别的安全性。
保护 iMessage(使用端到端加密)等应用程序中的消息涉及“公钥加密技术”——基本上,假设您正在向朋友 Alice 发送消息。 Alice 有两把钥匙:一把公钥和一把私钥。
但是您可以将公钥视为更多的密码箱,您可以在其中放入消息,而打开该密码箱并读取消息的唯一方法是使用私钥“打开”或解密它。
通常的工作原理是:Alice 向您提供她的公钥,您在将消息发送回她之前使用它以一种方式加密消息。
然后,她可以使用设备上的单独私钥来解密并阅读该消息,并且她将是唯一可以阅读该消息的人。
这一切都很好,直到您考虑……您首先如何获得爱丽丝的公钥?
某些应用程序采用“点对点”方法,您要求 Alice 的设备直接向您发送她的公钥。如果 Alice 和您发送消息的其他人都有一台始终在线的设备,那么这种方法就很有效。
但是,如果对方的设备已关闭、处于飞行模式或以其他方式与互联网断开连接,则此方法效果不佳!
这就是为什么许多通讯工具(包括 Signal、Google RCS、WhatsApp,还有 iMessage)采用不同的方法来交换这些密钥。他们使用中央密钥服务器代表每个人分发密钥。
现在,您的手机不再直接向您的朋友 Alice 询问她的公钥,而是询问 Apple Alice 的公钥是什么,然后 Apple 用 Alice 的公钥进行响应。
从表面上看,这并不是对您的加密的直接威胁。 Apple 是否知道 Alice 的公钥并不重要,因为公钥根本不能用于解密发送给 Alice 的消息:它是公开的。
然而,这仍然是苹果公司所占据的权力地位。最显着的威胁是苹果公司可能在其响应中包含额外的公钥,可能是在苹果公司或其他人的控制之下,而不仅仅是你的朋友爱丽丝的控制之下。
然后,当您在收到恶意响应后向 Alice 发送消息时,您的朋友 Alice 不再是唯一可以解密该消息的人,也许 Apple 或其他人也可以!
这种威胁正是 iMessage 中的关键验证旨在解决的问题。
苹果试图解决这个问题的第一个方法是通过一项名为
其工作方式类似于
密钥透明度的简短解释是,苹果创建了一个可验证的公钥账本,新数据只能附加到该账本上,但账本中的现有数据永远无法修改。
这意味着苹果无法偷偷地将某人的假公钥添加到该分类账中,然后在任何人注意到之前将其删除。
当您在设备上的 Apple ID 设置中启用联系人密钥验证,然后向您的朋友 Alice 发送消息时,您的手机将在本地将从 Apple 密钥交换服务器接收到的 Alice 的公钥与公钥透明度分类帐中的内容进行比较Alice 的公钥应该是。
这种比较可以确保 Apple 的密钥交换服务器发送给您的密钥与他们发送给其他人的密钥没有什么不同。
此外,您的手机将定期监控或审核通用密钥透明度分类账中有关您自己密钥的信息,以确保分类账中仅包含您的设备期望其拥有的公钥。
这种通过密钥透明度进行的自动密钥验证是一个巨大的安全改进,但苹果还发布了第二种机制,提供比这更高的保证。
手动联系密钥验证是第二种机制,它的用户
在这个系统中,你现在可以手动将验证码与你正在通信的人进行比较,从而将苹果的服务器(包括关键的透明度账本)完全排除在验证过程之外。
为此,您可以在 iMessage 中打开联系人的个人资料,它将在“高级消息安全”部分下显示 8 位身份验证码,您可以亲自、通过电话或任何其他带外通信进行比较你想要的方法。
此代码充当该人的公钥的唯一标识符,当您将其标记为已验证时,该人的公钥的哈希值将链接到您设备上朋友的联系人卡。
如果 Apple 的密钥交换服务器将来向您发送不同的公钥,或者密钥因任何其他原因与您朋友的联系人名片中存储的密钥发生变化,iMessage 会直接在对话记录中显示错误,以便您进一步调查。
要在联系人中利用这些安全功能,双方都必须在“设置”应用中打开您的 Apple ID 设置,并在“联系人密钥验证”部分下的iMessage 中启用“验证” 。
我绝对建议您立即这样做,并传播有关此更改的信息。它为您的对话增加了一层安全性,并且基本上没有任何缺点,因此对于使用此服务的任何人来说都是理所当然的。