苹果 iCloud 进入国内就不安全了吗?

先来看这则新闻:

笔者的观点是:苹果把在中国的iCloud数据生产流量割接至中国电信云存储服务,将会为国内用户带来更好的使用体验,访问速度更快。但这只是「借用」了中国电信的资源,对于通信、数据存储等过程,仍然是由苹果控制,安全方面大可放心。

苹果对于其云服务有很高的安全标准,笔者在这篇文章中会重点介绍iCloud使用的数据加密算法与算法安全性,让各位读者对iCloud的安全性有简单的认识。在本文中涉及到的密码学概念,笔者会以最简单的方式介绍,忽略复杂的定义、算法细节和数学原理。

1.引言

苹果的众多服务中都有密码学的身影,例如可信引导链(也就是开机的过程)、系统升级授权、TouchID和SecureEnclave(A7处理器中存储指纹信息的可信计算模块)、应用安全、网络通信安全、互联网服务安全、设备控制等等,信息安全是每个服务的重中之重。虽然你在日常使用中可能感觉不到,但在顺畅、可靠服务的背后,信息安全尤其是密码学是这一切的后盾。

本文对iCloud云服务中使用的密码学算法进行简单介绍,希望通过本文,能让读者对iCloud的安全性有简单的认识,不要被一些言论所误导。

2.什么是iCloud?

iCloud是苹果公司所提供的云端服务,用户能在iCloud中存储音乐、照片、应用数据、联系人、日历、备忘录、iCloudKeyChain、备份和恢复信息等等,并将这些数据无线推送到用户所有支持iCloud同步的设备上。iCloud还可以备份iOS设备,帮助用户查找丢失的设备,并简化照片共享。

用户通过AppleID和密码来对自己的iCloud进行设置,这一切数据都存储在云端,因此云端的数据安全至关重要。云端的数据安全包括文件元数据(Metadata,包括文件名、扩展名、权限等等)和文件内容的安全。

3.iCloud的文件安全

用户在iCloud存储的每个文件都被分成若干个块,每一块使用128位密钥的AES加密算法进行加密,每个128位的密钥根据文件块的内容生成。这些内容都与AppleID有关,存储在第三方的存储服务上,例如AmazonS3和WindowsAzure。

AES(AdvancedEncryptionStandard)是美国国家标准技术研究所(NIST)在2001年发布的高级加密标准,用来取代密钥短、安全性差的DES(DataEncryptionStandard,数据加密算法)。AES是一种对称密码,在加密和解密时使用相同的密钥,与公钥密码相比,要求双方取得相同的密钥是对称密钥加密的主要缺点之一。由于对称加密的速度比公钥加密快很多,因此对于文件加密,对称密码是最佳选择。AES在GF(2^8)有限域上进行计算,包括众多的数学概念和推导,故不展开详述。AES具有很高的安全性,2003年6月,美国政府宣布AES可以用于加密机密文件。AES的密钥长度有128位、192位、256位,对于加密一般文件,128位的AES足以保证其安全性。

▲AES加密算法简化流程

我们在认知上的一个误区是:密钥长度越长,安全性越高,所以应该密钥越长越好。从理论上来说没有问题,但过高安全性带来的一个问题便是计算资源的过度消耗和计算时间的增长。这便是密码学和系统设计实现中需要考虑的安全性和损耗的平衡问题。

由于AES的密钥被加密存储在用户的iCloud账户中,服务商无法得到,并且AES本身具有很高的安全性,笔者认为用户在iCloud的文件很安全,与服务商没有任何关系。

4.iCloud备份

iCloud备份包括设备的设置、应用数据、照片、铃声、iMessage和短信等等,在发送至互联网进行传输前已经被iOS设备加密,iCloud云端接收到数据后直接存储,因此存储的也是加密后的数据。iCloud还使用安全令牌来验证用户的访问。

iCloud备份加密使用公开密钥算法中的椭圆曲线算法中的Curve25519曲线生成密钥。Curve25519曲线在Cryptocat、OpenSSH、Tor(你懂得)、AppleHomekit等服务中广泛使用,遵循Diffie–Hellman椭圆曲线密钥交换规则。

椭圆曲线密码学是基于椭圆曲线数学的一种公钥密码的方法,主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA加密算法——提供相当的或更高等级的安全。不过椭圆曲线一个缺点是加密和解密操作的实现比其他机制花费的时间长。

密钥交换是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。具有如此优良性质(在不安全信道上建立起安全通信)的协议有极为广阔的应用。

▲Diffie-Hellman密钥交换协议流程

iCloud备份存储在用户的iCloud账户中,并被一个随机的密钥加密后保护。用户的iCloud密码不被用于加密,因此服务商无法对加密后的数据做手脚。在备份到云端后,iCloud还保存着一个与用户AppleID关联的密钥,当用户在不同设备上登陆自己的AppleID时,这些备份才可以被推送至已登录的设备上。苹果制定了这些算法,但无法根据用户的AppleID来重复得到这些密钥。密钥都是每次新生成的,无法重放得到。

5.iCloudKeychain

iCloudKeychain允许用户在iOS和Mac设备间安全的同步这些密码,在同步过程中,密码不会暴露给苹果,都通过密码算法和密码协议传输并计算。在以下被攻击的情况下,仍能保证用户的密码不被泄露:

用户的iCloud账户被攻破

iCloud被外部攻击者或内部员工攻击

第三方对用户账户的访问

iCloudKeychain同步同样使用了公开密钥中的椭圆曲线算法(P256)、AES-256等加密算法。椭圆曲线算法的公私钥对的生成和存储于用户的iCloud密码相关。虽然生成和存储与用户的iCloud密码相关,但不是直接读取用户的密码再进行生成。在经过加盐和迭代操作后,同步密钥被生成。在经过若干复杂的步骤,完成密钥的同步。在整个过程中,服务商或苹果都无法查看到用户的密码和同步密钥,有效保证了安全性。

此外,iCloud还提供了安全设施,保证同步过程只能在被授权的设备上进行。根据苹果的安全白皮书,笔者发现iCloudKeychain同步是iCloud服务中最为复杂的过程,包括了10次以上的密钥生成、交换、销毁等过程,每一步都是用了最可靠的加密算法来保证安全性。此外,通信过程也是用标准的安全协议完成。这些都有效保证了iCloudKeychain服务的安全性。

小结

信息安全有三个核心目标:保密性、完整性、可用性。其中,保密性和完整性是密码学研究的重要问题之一,也是密码学的重要应用方向。密码学是研究如何隐密地传递信息的学科,也是信息安全等相关议题,如认证、访问控制的核心。密码学是要隐藏信息的含义,而不是隐藏信息的存在。密码学算法、安全协议、安全策略等等在各项云服务中被大范围使用,iCloud也不例外。

iCloud是目前安全性最高的云服务之一,普通用户不用担心其安全性,也无需知道什么样的密码学内容被使用来保证数据的安全性,放心使用即可。

笔者对密码学和iCloud安全认识有限,文中如有疏漏在所难免,请各位读者批评指正。

版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。

相关推荐