作者:王永龙
http://www.wangyonglong.com/2012/11/%E5%9F%BA%E4%BA%8Eukey%E7%9A%84%E5%AE%89%E5%85%A8%E7%BD%91%E7%9B%98%E8%AE%BE%E8%AE%A1/
目前,网盘这个产品越来越深入人心,应用也越来越广泛。业内较大的网盘产品供应商有:金山、115、华为、盛大、酷盘等等,国外的有dropbox,当然这个也是做网盘的鼻祖。网盘是基于云计算技术而实现的一种本地和远程数据同步、备份这么一个概念的产品。在国内,很多网盘的产品的一个重要特性是用户分享。然而在网盘上,我们还可以走的很远。这儿我提出一个基于UKey的安全网盘的设计思路。
UKey是一种基于USB接口的硬件设备。由于其具备数据加解密的功能,因此成为网络身份认证、网络数据安全通信的一个良好保障。假如我们基于普通的网盘技术加上UKey的数据加密技术,那么便可以实现一种安全的网盘。其中所谓的安全主要集中在这几个方面:
1、本地数据的安全。本地数据实现安全的途径可以为加密文件夹、加密硬盘、虚拟加密硬盘等。但凡涉及到加密方面的,都可以借助UKey来实现其中核心的数据加解密功能。也就是说核心密钥可以为UKey中的个人私钥。当插入UKey并成功输入个人PIN码之后,PC端运行的本地安全程序才可以顺利加载安全介质并成功解密。之后的操作如同正常操作电脑中文件一样。本地数据安全可以防范电脑、硬盘等数据存储介质丢失后泄密的问题。只要UKey在手中,那么数据的泄密几乎是不可能的。
2、远程数据的安全。在本地实现了数据安全之后,在云计算平台上的数据是否也能安全呢,这也是可以通过UKey来进一步得到保证。一般云计算的数据存储在客户端的模型就像上传一个个文件类似。而在云计算平台上,系统会将上传的完整的文件分割成一个个小块,然后分步存储在不同的硬件设备上,也许相邻的两个数据块在实际存储中会相隔万里。并且为了达到分布式存储的数据保全性,云计算平台为每一个小数据块的存储准备了2~5个相同的备份。尽管如此,在云计算平台上的数据的安全性仍然存在一定的安全隐患。因为这些数据对于一个黑客来说,一方面如果知道了客户的口令、密码,那么云计算的数据就毫无安全可言,另一方面,精通云计算系统的运营维护人员也有可能接触到这些数据。因此直接将文件存储在云端并不是最为安全的方式。为了保证上传数据的安全,我们可以将本地数据加密后在进行上传,加密采用对称算法,而对称密钥采用非对称算法做进一步加密,非对称的密钥就采用个人UKey中的公私钥即可。实际上这相当于实现了一个数字信封。
实现了1、2的安全性之后,UKey就成为了获取这些数据的唯一凭证。只有UKey才能正确无误的获取所存储的数据,下载并正确解密所存储的数据。
基于UKey的安全网盘在设计上存在几个攻克点:
1、本地数据安全性该如何设计?建议采用虚拟磁盘的方式实现。在硬盘的某个分区中开辟一个满足数据大小的大文件。这个大文件将被虚拟成一个硬盘。底层采用文件过滤驱动设计。磁盘在加载时,文件被直接解密,这直接从驱动层设计满足要求。文件在创建存储时,也是直接加密保存。打开编辑查看时进行解密。实际对虚拟磁盘做数据加解密的是采用的对称算法。而对称密钥采用非对称算法做安全保证。
2、远程数据的同步问题。假设文件在上传到服务器之后,又要进行若干次编辑修改,那么这个文件是全部更新呢,还是部分更新?虽然全部更新可以保证文件的完整性,但对于网络传输来说,耗时耗力。因此可以借鉴一些算法来计算修改的部分,然后只对修改的部分进行同步,但这涉及到云计算中对于数据存储的实现机制。假设支持部分同步的话,那么需要云计算平台也有一个程序来对数据做分割连接处理。
3、UKey的密钥管理问题。UKey已然成为数据安全的唯一保证,那么如何对UKey的安全做一个保证呢?密钥是否应该备份?由谁备份?如何备份?这些问题需要从UKey的设计上进一步论证。我设想的一种方式,是UKey在设计时,需要做备份处理。备份的密钥数据需要客户和发布方做双因子认证。当原始UKey损坏或丢失时,需要使用备份的密钥,需要客户和发布方双方同时对备份数据做解密方可得到正确的密钥。并且该密钥恢复之前就必须存入可信计算模块中,双因子的解密需要在UKey中进行,外界不可见不可读,解密之后也就直接存储在UKey中。
4、跨平台的问题。目前平板电脑、苹果手机、linux平台、windows平台等都需要兼顾到。保不准客户在某个地方某个设备上就想查看数据。这样的话,安全网盘的客户端的其中一些核心部分必须考虑跨平台设计。比如基于http协议的上传下载模块、比如数据加解密模块等等。界面跟后台分开处理。这样尽最大可能使用复用机制,减少开发量。
5、推广的问题。安全网盘必然面对高端客户。那么高端客户有可能是个体,有可能是组织,需要考虑各种服务对象的各种情况。目前网盘产品类部分实现了安全机制,如金山的本地虚拟磁盘机制。但完全可控的安全还有待完善。客户面还有待挖掘。只有成功的挖掘了市场需求,找到了最终客户,才有可能在该产品上实现盈利。但这些都是需要时间和实践的。
基于UKey的安全网盘从客户的角度完整的解决了数据安全性问题,是普通网盘在向高端网盘迈进中的一个重要环节。