| | | | 巴西的WhatsApp再次拒绝执法部门交出用户通信信息的要求,该国政府扣押了其母公司Facebook的3800万雷亚尔(约合人民币7688万元)资金。
根据WhatsApp的技术,其应用使用了端对端加密,它只记录通信元数据而没有储存用户通信内容,因此无法按照法庭命令向执法部门提供犯罪嫌疑人的通信内容。然而该国法院则强制要求WhatsApp履行自己的义务,扣押了Facebook的资产。巴西亚马孙北部州的检察官表示,法院将从这3800万雷亚尔中每天扣除100万雷亚尔,时间从Facebook拒绝遵守法院命令开始,但这笔钱扣完之后是否还会有其他措施,目前还不清楚。 WhatsApp在巴西的运营并不算顺利,就在本月早些时候,该国的一位法官曾下令关闭WhatsApp服务,但这一命令被最高法院推翻。如今Facebook被WhatsApp“牵连”面临巨额处罚,究竟该如何解决这一问题还得看脸书的应变力。
不好意思,各位,虽然专家都在谈论WhatsApp上检查出来的加密技术,但是最新版本的WhatsApp应用程序测试结果表明它看起来好像会对你所有的聊天记录进行取证跟踪,即使你删除了,清空了,或者存档了,甚至你“清除了所有聊天记录”。事实上,摆脱它们的唯一途径似乎是完全删除应用程序。
为了测试,我安装了该应用程序,并打开了几个不同的线程。然后我存档了一些,清除了一些,并且删除了一些线程。在运行了WhatsApp中的“清除所有聊天”功能后我做了第二个备份。这些删除或存档选项并没有任何作用,删除记录仍然保存了下来。在所有情况下,删除的SQLite记录仍然完好无缺的保存在数据库中。
一个共同的问题
取证跟踪在使用SQLite的任何应用程序中都是很常见的,因为SQLite在默认情况下不会完全清空iOS上的数据库(可能是为了防止损耗)。当删除一个记录时,它仅仅是将其添加到一个“释放列表”中,但是释放的记录不会被覆盖,直到后来数据库需要额外的存储时才会覆盖(通常是在更多的记录被创建后)。如果你删除大量的消息,这将导致大量的记录最终在这个“释放列表”中,并且需要更长的时间数据才会被新的数据覆盖。而且并不确保这些数据会被下一组消息覆盖掉。在其它应用程序中,我经常看到数据库中的记录可以保持数月。
这里的核心问题是,短暂的通信在磁盘上并不短暂。这是一个苹果也一直在纠结的问题,我在这篇博客上会进行解释,并作出一些设计建议。
苹果的iMessage也存在这个问题,不说更糟糕,但至少也是一样糟糕的。你的SMS.db存储在一个云备份上,但它的副本也存在于你的iPad,你的桌面系统和其它任何你接收iMessage的地方。删除的内容也会遭受同样的命运。
在这种情况下衡量“更好”的方法是通过应用程序许可的取证跟踪的级别。单一的许可实质上没有任何作用,所以没什么可担心的,不会造成混乱的清理。Wickr利用苹果的CoreData,并且使用存储在密钥链(更安全)中的密钥加密他们的数据库。其他应用程序应该好好正视他们允许的取证足迹的大小。
复制到备份
简单地将删除的数据保留在一个安全设备上通常并不是一个重要问题,但是当数据像WhatsApp数据库一样可以从设备中自由流出时,它就会造成相当严重的隐私风险。不幸的是,这正是发生在WhatsApp上的事情,这也是为什么用户应该知道这件事的原因。
WhatsApp的聊天数据库在iPhone的备份期间会被复制,这意味着它将会出现在你的iCloud备份和桌面备份中。幸运的是,桌面备份可以通过启用iTunes的“加密备份”选项进行加密。不幸的是,iCloud备份不遵从这种加密,这使得WhatsApp数据库会成为执法的证据。
关闭iCloud和为桌面备份启用加密措施并不一定意味着你可以走出困境。如果你使用一个弱密码,并且可以通过流行的取证工具破解,比如Elcomsoft套件工具,那么你的备份就可以解密。还有一些其他工具可以用来攻击你的桌面密钥链,这是许多用户存储他们备份密码的地方。
这是什么意思呢?
1.执法部门可能会向苹果出示一个授权来获得你删除的WhatsApp聊天记录,其中可能包括你删除的消息。你的iCloud备份内容并不会使用你的备份密码进行加密 (这是苹果,不是WhatsApp)。
注意:这里我指的是“iCloud备份”,这是独立的,并且和你是否使用WhatsApp内置的iCloud同步无关。
2.任何人对你的手机进行物理访问都可以创建一个备份,如果访问是强制的(如指纹、密码、或者只是抓住它解锁)。这些内容会使用你的备份密码(如果你已经设置了一个的话)进行加密。
3.任何对你的计算机进行物理访问的人都可以从现有的、未加密的备份中复制这些数据 ,或者使用密码破解工具进行解密,或从你的钥匙链中恢复密码。如果在你的国家密码也是受制的话,执法机关可能会强制你进行协助。
那么,所有人都应该恐慌吗?
哈哈,没有。但是你应该知道WhatsApp中存在的这个问题。
终端用户应该如何减轻这种影响?
1.使用iTunes为你的手机设置一个长的,复杂的备份密码。不要将你的密码存储在密钥链中,否则的话,可能会通过Mac取证工具进行恢复。这样的话,手机会加密所有的桌面备份,即便是取证工具也无可奈何。
注意:如果在你的国家密码是受制的,那么你可能仍然会被迫为执法部门提供备份密码。
2.考虑使用配置程序对你的设备进行双锁。我为此写过一个操作方法,它可以防止别人偷了你的密码,或迫使你进行指纹验证,或对你的手机使用取证工具。不过这种方法是不可逆的,不能进行恢复,所以你需要考虑这样做的风险。
3.禁用iCloud备份,因为它不会使用你的备份密码进行加密,而且执法部门可以通过一个授权就能获得这个明文数据库。
4.定期从你的设备中删除这个应用程序,并重新安装它来清除掉数据库。这似乎是唯一的方式来消除删除记录并重新开始。
注意:这不会删除云端的现有iCloud备份中的数据库。
WhatsApp如何解决这个问题
软件的作者应该在他们的代码中对取证跟踪十分敏感。当开发一个安全的消息传递应用程序时,他们的设计选择对于记者、政治反对者、那些不尊重言论自由的国家的人们和许多其他人来说具有至关重要的意义。一个考虑不周的设计选择在现实生活中很可能会导致无辜的人被囚禁,它有时会是人们自由的关键。
有多种方式可以减轻这个影响,WhatsApp可以在他们未来版本的应用程序中采用:
1. SQLite数据库根本不需要出现在备份中。文件本身可以以这样一种方式进行标记,但它不需要备份。制造商可能会设置这种行为,以便恢复到一个新的设备时不会导致你丢失消息记录。不幸的是,这个功能的折中方案使得更容易获得这个数据库的副本。
2.在《iOS应用安全攻防》一书中,我概括了一种技术,它可以覆盖之前删除的记录所处“位置”上的SQLite记录内容。尽管记录本身仍然在释放列表中,但是使用这种技术可以将内容清除出去。
3.使用一个另外的存储备份,如初始文件,或加密的CoreData,会安全得多。文件系统很容易实现,而且苹果的加密方案中,当一个文件删除时也会将文件加密密钥丢弃。这可能没有SQLite那么漂亮,但是苹果的文件级加密对删除文件的处理更安全。Wickr的加密CoreData方法也同样是很安全的,只要数据库的密钥仍然存在于手机上。
| | | | |
|