Juleen0 2012-08-29
如果你是一名正在搭建新的云计算服务的工程师,或者是一名正在评估服务提供商的安全策略的潜在用户,下列八大戒条可以使你避免在云服务中出现安全漏洞,这些漏洞已经导致账户信息失窃和敏感信息泄露。
不要寄希望于得到全面的戒条清单,现在的这张清单只能帮助你把漏洞缩小到最小的范围内。如果服务要求高于HIPAA或PCI规范等标准安全措施,就应该把那些不能遵守这些简单规则的厂家驱逐出外或提出异议。
一、不要忘给密码加盐
加密盐是在用单项函数加密前,将一根字符串加到密码上。这是一个非常重要的元素,可以保护密码。今年6月,LinkedIn非常吃惊地发现,有650万用户的密码公布在一个俄罗斯用户论坛上。这些密码都没有加盐,使用简单的词典式攻击或类似技术就能马上侵入60%的密码。在实施和操作方面,给密码加盐是件小事,人们常常忽略给现代系统的密码加盐。
二、不要使用MD5散列算法给密码加密
芯片制造商恩威迪亚(NVIDIA)承认,7月初其论坛上有400,000用户的密码被窃取,这些密码都没有加盐,用MD5散列算法给密码加密。早在7年前,著名计算机安全专家BruceSchneier就宣布了MD5失效,目前人们普遍认为MD5“成事不足,败事有余”。最好的做法是要求使用更为复杂的bcrypt之类的跨平台文件加密工具进行加密。
三、不良设计方案也会暴露敏感数据
新式用户界面架构松散,可能会变成无意识的信息泄露平台。随着AJAX技术使用量的增加,网络和移动应用程序常常能把大量数据“推到”终端用户设备上,用来支持多个视图和操作,而无需发出新的请求。如此一来,就能带来更佳的用户体验和更快的应用程序响应速度。
然而,这些技术的不当使用可能导致敏感信息的泄露,让看起来有效保护的系统更加脆弱。
四、不要使用通用密钥给多用户数据加密
如果办公楼中的每个房间都使用同一把锁,每个租户领的钥匙也一样,这样的办公室没有人会租用。同理,在给云计算中的敏感数据加密时,应该坚持用其自己特定的密钥进行加密。因多用户的数据而使用通用加密密钥使所有这些用户遭受额外的泄露风险。如果有一个用通用密钥加密的对象成功遭到袭击的话,那么每一个使用同一个通用密钥加密的其它对象都会成为潜在的受害者。
在多租户平台上,这一点尤为重要,因为很有可能一名或多名用户或租户故意泄露通用密钥,并由此获取其它租户的数据。
亚马逊(Amazon)的服务器端加密支持(ServerSideEncryptionSupport),为每个对象存储信息时都使用通用密钥,就是一个合理设计的范例。但是,并不是每一个为加密敏感信息买单的厂家都坚持这个立场。
五、不要无限期地使用重置令牌
每一项与个人用户和密码有关的服务都需要某种形式的密码重置。密码重置一般采用“重置链接”或向提出重设密码申请的用户的电子邮箱发送“临时密码”等方法。最佳做法是在一段时间后使临时凭证国企,但大多数服务不能坚持遵循这种原则。
本月雅虎的泄露事件表明,电子邮件账户是病毒和恶意软件传播、身份信息盗窃的主要目标。设计科学的云服务应该避免将有效密码保存在电子邮件中的时间超过必要的密码重设时间。15分钟后密码失效是一个很好的方法。
六、不要将用户密码保存在移动设备或共享工作站
在安全与可用性孰轻孰重问题上,安全的问题常常让步于终端用户对可用性的要求。当云计算服务安装在共享工作台或移动设备的应用程序上,用户常常希望只需一次就能登录到云服务上。然而,如果应用程序能让用户无限期地获得验证,就必须用一种不安全的方法存留用户密码,使得服务的安全性依赖于设备的安全性。
如果在重启或退出登录后,应用程序可以保存和读出密码,那么访问设备的攻击者也能这么做。诸多证据证明不应该将设备的实际占有等同于授权服务。
七、不要存留身份认证令牌
最后一条戒律解决了用户密码保存问题,确保密码不会因为恶意用户访问同一个工作站而被窃取。这条戒律与最后一条类似,但是提醒我们在保护密码的同时通过其它持续方法允许验证,这两种方法都可能“贻误时机”。
Dropbox网站也由于无法坚持这个做法,而遭到媒体负面的报道。Dropbox网站用户发现,仅仅复制受害人电脑的一个文件就可以秘密获得任何人账户中的所有文件。
八、一定支持与最新流程的整合
有一句安全方面的老格言这样说道;“你让某事变得更安全,它就会变得更不安全。”原因何在?因为如果安全碍事的话,善意的用户也会想出变通的方法破坏安全。因此,粘在监视器前面的密码和回收站会造成一发不可收拾的结局。