`

Google云端计算的安全性

阅读更多

对于Google来说,如果希望AppEngine能够获得商业上的巨大成功,吸引更多用户,尤其是企业用户,最大的挑战在于,如何保障客户的数据和私有程序的安全。

 

举个例子,譬如Google想劝说某家银行,用不着银行自己建数据中心,把银行的数据存到Google的云计算平台,每月给Google一笔数据托管费即可。银行很可能会问两个问题,

  1. 如何防范Google员工偷窥银行的数据?

  2. 银行有投资业务,所以银行自己开发了一套软件,用于评估投资风险和收益。如何防范Google员工偷窥这些软件的代码?

Google当然会派律师去游说,指天画地地发毒誓,说如果出现Google偷窥数据及代码的情况,根据双方合同,Google必将受到法律严惩,等等。

但是银行还是不放心,作案取证本来就麻烦,如果Google再做点手脚遮掩,很可能查无实据。即便能找到实据,一个案子办下来,时间也得拖很长。

 

这个问题,困扰的不是Google一家,而是所有负责数据托管的公司面临的共同问题。所以,现在只有两类公司,敢把数据托管给他人。一种是中小企业,他们或许会觉得自己在竞争对手眼里不那么重要,对手不至于甘冒风险去刺探自己的机密。另一种是数据本身机密性不高的公司,譬如新浪网,天涯社区等等,他们的数据内容本来就是公开的。

 

所以,如果Google打算吸引重量级企业用户来使用云计算平台,最好的办法是从技术上想出路,保证做到,即便Google挖空心思想偷窥,也看不到。

 

  1. 有人问,为何不用VPN技术呢?

  VPN(Virtual Private Network)虚拟私网,解决的是在如何通过公共网络,远程访问企业内部私网的问题,譬如在家处理公司业务,需要把自家的电脑通过公共网络,接入到公司内部网络中去。所以,VPN解决的问题主要在于,保证家里电脑和公司电脑传输数据时,数据通过公网时的安全。

  经常在北京街头看到振远护卫的押运车,以及持枪的押运员,负责运输现钞,有人戏称他们是振远镖局。镖局的任务之一是,把现钞从银行押运到各个ATM 自动取钱机,中途通过公共马路。现钞安全到达目的地,镖局的任务圆满完成。但是,如果有谁把ATM取钱机撬开了,镖局不负责任。

  类似的道理,客户可以通过VPN把数据安全地传输到Google云计算平台,但是VPN不能阻止Google的内部员工偷窥存放在Google机器上的数据。

 

  2. 还有人建议,可以给数据加密。

  客户在上传数据到Google云计算平台前,先用私钥(private key)给数据加密,这样存储在Google云计算平台的数据,是加了密的数据。Google员工即便打开了文件,看到的也不过是一堆乱码。当客户授权给他的同事看数据时,给同事一份公钥(public key)。同事用这个公钥解码,然后就能读到真实的内容了。

  德国人的钥匙很有意思,办公室的钥匙,同时可以打开大楼的门,以及公司的门,但是不能打开隔壁办公室的门。隔壁办公室的钥匙,也可以打开大楼的门,以及公司的门。所以,德国人的钥匙和锁,是有层次的。

  公钥也可以这么设计,一个部门的公钥,不仅可以解密本部门的文件,而且可以解密公司内部公开的文件,但是不能解密其它部门的文件。实现这样有层次的公钥并不难,一个简单的办法是把整个公钥分成几段,第一段负责公司内部公开的文件,第二段负责某特定部门的文件等等。

  这个办法猛一听起来似乎可行,但是仔细想想却不然。它有四个缺陷,a. 不能给程序加密,b. 不能搜索加了密的数据,c. 不能给数据库文件加密,d. 公司员工离职后,有可能会造成私钥和公钥的外泄。

 

  3. 程序如何加密。

  按照前一段的思路,平时给程序加密,只有当运行程序前,才解密。程序运行结束后,再度加密,同时销毁解密了的程序。但是这个办法不可行。

  解密和加密,是相当耗用CPU 的,同时占用时间也比较长。如果实施平时加密,用时解密的措施,用户等待时间会相当长。更严重的是,通常一段程序不能解决所有问题,一段程序往往会调用其它程序,其它程序又调用另外程序。如果平时把所有程序加密,用时再逐个解密,整个流程将占用很长时间,这将严重影响用户的体验。

  现实中通行的办法是给程序变形,学名叫Obfuscation。道理很简单,把程序中的变量名称转换掉,同时切割整个程序,并且重新排序,以便混淆耳目。变了型的程序依然可以运行。-怪不得看不懂3rd party的代码,原来如此^^

  正常的编译过程,是把人类可读的源代码(譬如用Java写的程序),翻译成机器代码(譬如Java bytecode)。而反编译是把机器代码,逆向翻译成人类可读的源代码。虽然Obfuscation不能从根本上阻止反编译,但是却增加了这个工作的难度。

  虽然有难度,但是重赏之下必有勇夫。譬如,如果能thieve银行密码,肯定会有人不辞劳苦地反编译。

 

  4. 加密与搜索。

  “Greatness is never a given, it must be earned”,这句话怎么翻译?在Google或者百度里搜一搜这句话,一定会发现这是奥巴马总统就职演说中的一句。有人翻译成,“伟大不是凭空而来的,而是赢得的”。意思当然不错,但是觉得不如原句有气势,不如翻译成,“坐等等不来伟大,伟大必定来自于努力”。

  Google和百度是如何搜索到这话出自奥巴马的演讲呢?道理说穿了并不复杂。

  首先,Google和百度建一个索引,学名叫倒排索引(inverted index) 。倒排索引中记录了每个单词出现在哪些文章中,而且记录了在这些文章中的什么位置出现过。

  其次,当用户搜索“Greatness is never a given”,搜索引擎通过倒排索引,查找“greatness”在哪些文章中出现过,查找“never”在哪些文章中出现过,等等。然后把众多的搜索结果合并起来,看看哪些文章中不仅出现过“greatness”,还出现过“never”,“given”等等。

  如果把奥巴马原文加了密,不仅每个词都变成了乱码,而且词与词之间的空格消失了,甚至连词序也可能被打乱。这样一来,就没有办法按照通常的做法构建倒排索引。

 

  怎么办?思路有三条。

  a. 把加密算法和构建倒排索引的算法通盘考虑,重新设计一套一体化的算法。

  这个思路能够一揽子解决我们面临的所有问题,但是设计这套算法的难度很高。目前还没有人能够想出有效的算法。

  b. 客户自己动手建倒排索引,然后把索引加密,上传到云计算平台。

  但是构建倒排索引是一件计算量很大的工作,如果客户能够自己构建倒排索引,那么就没有必要使用云计算平台。理由是,云计算平台的卖点是方便客户处理繁重的数据计算。如果云计算平台不能帮助客户构建他们专用的倒排索引,那么云计算的卖点就大大失色。

  更严重的问题是,在使用索引的时候,必须先解密。如果解密了的索引被Google员工偷看了,那么加密就失去意义了。原因是,索引中透露了正文中出现过那些词,以及这些词出现的位置。通过索引中的这些信息,可以复制原文的。即便不能一字不漏的全文复制,也能复制得八九不离十。

  所以,这个思路不可行。

  c. 在云计算平台中分离出一部份作为密室,专供企业用户存放保密级别很高的数据,以及运行保密级别很高的程序。

  信息安全的法则是分离分离再分离。给每个企业用户分配一部份机器作为密室。这些机器的Root权限掌握在企业用户手里。Google的员工只能监控密室中的机器的CPU ,RAM和IO的使用情况,但是他们没有权限进入机器,查看文件,运行程序。

  这个办法虽然技术含量不高,但是比较容易实现。缺点是容易造成资源浪费。因为如果给每个客户单独开密室,即使密室里的机器空闲,别人也没法用。

 

  5. 加密与数据库。

  数据库最多只能对字段逐个加密,譬如“greatness”变成“@#¥%”。但是不能整句整段地加密,否则数据库的索引,B+ tree,就没法构建。

  所以,对数据库的系统管理员,无法实施高级别的加密。

 

  6. 私钥和公钥的外泄。

  公司员工离职后,很可能复制一份公司的公钥和在职期间自己使用的私钥带走。如果沿用前面所述,用私钥加密,用公钥解密的办法,员工离开公司后,仍然能阅读公司的文件,甚至篡改当年自己在职期间起草的文件。

  所以,最妥善的办法是不让员工直接接触公司密钥。从这个原则出发,作者也好,读者也好,都没有密钥。作者要加密,读者要解密,让他们把文件发给密钥中心,由密钥中心统一负责加密和解密。

  另外,即便由密钥中心负责保管密钥,如果长期使用同一套密钥,还是不安全。所以,密钥中心定期更换密钥,分批给文件重新加密。

  这个办法可行,但是比较笨拙,因为,a. 密钥中心成为瓶颈,b. 给旧文件重新加密是负担很重的工作。

 

  Google大计,目前能做的,似乎是明确云计算的定位。

  1. 锁定目标客户,这些客户有一个共性,就是对内容和程序的安全性不敏感。

  比如各种门户网站,论坛,B2C网上商店,政务和各种公共事业的网站,以及中小型企业等等。这部分用户数量不少,市场相当广阔。

  2. 提供特色服务,尤其是海量数据处理。

  云计算平台类似于巨型计算机。客户利用云计算平台,处理自己的计算中心很难完成的海量数据处理。例如:电脑动画制作,天气预报等等。

  3. 根据不同的保密等级,做分级处理。-貌似microsoft在设计IE Private的时候已经用到了,效果蛮不错的。

 

  实际上一个企业的重要秘密信息是不多的,机密文件存放在企业自己的机房里。其它不需要保密的文件,托管到云计算平台。这个市场也是很大的。

分享到:
评论

相关推荐

    云端代码Google App Engine编程指南 高清带书签

    - 安全和权限:介绍如何在GAE平台上实现应用的安全性,包括用户认证、权限控制等。 - 性能优化:介绍如何优化GAE应用的性能,包括代码优化、资源管理等。 - 调试与监控:讲述如何使用GAE提供的工具进行应用的调试和...

    网络科技云端大数据PPT模板.pptx

    首先,云端大数据的核心在于其“云”属性,即数据存储和计算在远程服务器上,这些服务器通过互联网连接,提供了弹性扩展、低成本和高可用性的数据处理能力。用户无需自建昂贵的硬件设施,只需按需使用服务提供商如...

    云端处理代码,女生自用

    10. **安全性**:考虑到云端的安全性,`cloud_process_code.py`可能包含处理身份验证、授权和加密的代码,如使用`requests`库进行安全的HTTP请求,或者`cryptography`库进行数据加密。 以上就是关于"云端处理代码,...

    云端的数据湖-现代化的数据架构

    云端数据湖是数据湖理念与云计算的结合,它充分利用云服务提供商如AWS、Azure或Google Cloud提供的弹性计算资源、存储服务和大数据工具。通过云服务,企业可以快速扩展存储容量,处理海量数据,并根据实际需求按需...

    TortoiseSVN v1[1].6.10(云端版)

    在云端版的TortoiseSVN中,可能集成了云服务的支持,如直接与Amazon S3、Google Cloud Storage或其他云存储平台集成,使得版本控制更加便捷。此外,它可能具有优化的网络性能,以适应云环境的高延迟和动态网络条件。...

    利用单片机实现云端控制操作方法(内含源码和操作步骤与视频)

    3. **边缘计算**:在ESP8266上实现部分计算任务,减少对云端的依赖,提高响应速度和隐私保护。 通过学习和实践上述内容,你可以掌握利用单片机实现云端控制的基本技能,进一步探索物联网世界。记得查看“ESP8266...

    初步认识边缘计算.pdf

    总结来说,边缘计算是一种关键的技术趋势,它改变了我们处理和利用物联网数据的方式,提高了系统的效率和安全性,尤其是在实时性和可靠性要求极高的应用场景中。随着技术的不断发展,边缘计算将更加深入到我们的日常...

    云存储安全性研究与实现

    ### 云存储安全性研究与实现 #### 一、绪论 **1.1 研究背景** 在当今数字化时代,随着数据量的爆炸性增长和技术的快速发展,云存储技术应运而生并迅速成为企业和个人存储数据的主要方式之一。云存储通过利用...

    9529 边缘计算边缘计算将吞掉云计算!.docx

    边缘计算通过在设备或网关级别进行数据处理,减少了数据传输到云端的时间,从而实现了亚秒级的响应速度,这对于确保关键操作的安全性和效率至关重要。 边缘计算的优势还包括降低网络带宽需求,因为只有经过过滤和...

    物联网的四种计算模式.docx

    选择合适的计算模式取决于物联网应用场景的具体需求,包括数据量、实时性、成本和安全性等因素。随着物联网技术的不断进步,这些计算模式将继续演进,为未来的智能设备和系统提供更为灵活和高效的计算支持。

    边缘计算的演进.pdf

    边缘计算的核心在于减少数据传输到中央数据中心的距离,从而提高响应速度,降低网络拥塞,增强数据安全性。 电信公司在边缘计算中扮演着关键角色,因为他们拥有大量的“最后一英里”网络连接,无论是无线还是固定...

    计算机行业周报:亚马逊云端成长动能回升,净利暴涨1186%.zip

    同时,随着数据隐私和安全问题的日益突出,亚马逊需要在合规性和用户信任方面投入更多资源。 总结来说,这份周报揭示了亚马逊在云计算领域取得的显著成果,以及其在净利润上的大幅提升。这不仅是亚马逊自身发展的一...

    《自动化博览》边缘计算2018专辑1

    边缘计算关注的是设备与智能之间的连接,旨在满足行业在连接性、实时性、智能化、数据优化、安全性及隐私保护等方面的迫切需求,对行业数字化转型起到关键作用。Gartner预测,到2022年,边缘计算将成为所有数字业务...

    云端数据仓库HashData的设计与实现

    在云端数据仓库中,良好的元数据管理机制能够帮助用户更好地理解数据的含义,简化数据的处理过程,提高数据检索的效率,同时也能确保数据的安全性和一致性。元数据管理通常需要一个统一的元数据存储系统来记录和跟踪...

    2020知识分享 走进边缘计算m.zip

    3. 数据隐私:部分敏感数据无需上传至云端,增强了数据安全性,符合数据保护法规。 4. 容错能力:当与云端连接中断时,边缘计算仍能维持基本服务,提高了系统的可靠性。 二、边缘计算的应用场景 1. 工业物联网:在...

    云计算平台可信性增强技术的研究.docx

    云计算平台可信性的增强可以有效地提高云计算平台的安全性和可靠性,从而使用户能够安全、放心地将数据和应用程序部署到云端。 可信计算技术是一种基于密码学的技术,通过在计算机系统中建立一个可信的根,来确保...

    2020年值得关注的7种边缘计算趋势

    边缘计算能够减少延迟,提高效率,同时增强数据安全性和隐私保护,尤其是在5G网络的支持下。 首先,随着企业认识到边缘计算的优势,业务重心正从云计算转向边缘计算。云计算服务提供商如AWS、Azure和Google Cloud等...

Global site tag (gtag.js) - Google Analytics