下面就是我曾经看到过的十个安全错误的列表。他们不仅常见,而且是最最基本的,只要有一点点的安全常识,就应该知道不应该犯这么初级的错误。
1. 在没有加密的电子邮件中发送敏感信息:绝对不要在没有加密的电子邮件中发送密码、个人识别号码和帐户信息。据我所知,很多人不是太懒惰就是太愚蠢,以至于不对电子邮件进行加密,但我是从不这么做。即使你需要按照他们的要求,通过电子邮件发送未加密的敏感资料,但这并不意味着你可以这样对我做,我要求所有的敏感信息必须通过加密才能发送。
2. 使用答案很容易被发现的“安全”问题:社会安全号码、母亲的婚前姓、第一只宠物和生日,这些信息并不足以构成一个核实身份的安全手段。要求用户为他或者她的密码指定一个问题,作为重置密码的一种检验手段,是必须保证所有的其它人不能轻松地找到答案,从而进行未经授权的访问。
3. 密码的限制过于严格:我曾经在一些提供类似银行服务的网站上看到一些例子。它们对密码的限制过于严格,这样让实际情况更不安全,并且也是完全不能接受的。六个字符的数字密码实在是太基础了,这样的密码只会导致失败。你可以在以前的文章,“什么是已经发生过的错误密码策略”中找到另一个更详细的例子。
4. 让供应商的界定什么是“良好的安全”:在前面我已经说过,相信供应商是一件非常愚蠢的事情。希望你记住这句话。安全产品的供应商真正关心和保护的是自身的利润和市场份额。也许有时间这会提醒供应商改善其安全产品和服务的状况,但也有时间结果反而是相反的。因此,你必须质疑供应商对“良好的安全”的定义,不能让供应商告诉你什么最重要。
5. 低估了所需的安全专业知识:公司里的实权人员往往不明白安全方面的具体问题。这不仅仅包括了非技术方面的经理,实际上IT技术经理也经常被包括在里面。实际上,象有线等效保密(WEP)不仅仅是一个简单的加密手段,它是标准工作组中很多很聪明的技术人员共同建立的依靠明确对加密算法的安全标准 ?
6. 低估了测试的重要性:即使安全方面的专家也不是了解全部,他们也有其专长的领域。同行评议(peer review)是在安全方面被认为是最可靠的保证,只有在外部的安全专家对计划进行评估后,才能确认它是不是真正的象纸面上描述的那么有效。
7. 高估的加密重要性:许多安全软件开发商经常犯的错误就是低估测试的重要性,而高估了加密的重要性。他们在形式上进行了同行评议,但更多的关注是放在了安全策略上。而安全研究中最根本的柯克霍夫原则中已经指出,任何制度的安全依靠的都是系统本身的设计,而不是添加的安全策略。
8. 识别要求很容易被伪造:凡是涉及到的传真签名、或发送影印或扫描身份证的安全措施,基本上都只是一个摆设;在这种情况下,不可能会有真正的安全。因为,到目前为止,副本实在是太容易被伪造了。实际上,象签名和身份证这样的验证手段,唯一的出路是提高副本的质量。换句话说,就是只有副本不能被伪造,才能保证安全的有效。
9. 不必要的重复:很多情况下,安全商提供的所谓的新软件,实际上已经存在了,并没有什么真正的理由显示必须这么做。许多软件供应商的新软件并没有什么更新的功能和需求。新软件往往没有进行足够的测试,这样的话,会有很多错误的存在。因此,在安装新的软件之前,考虑为什么要这样做,这样会带来什么好处是最重要的。并且,要了解是不是可以在已有软件上安装补丁就可以达到相同的效果,从而不必重新创建全新的替代系统。
10. 为了所谓的安全感放弃安全:这是一个非常荒谬的错误,我都没有办法进行解释。它也是如此的普遍,以至于我不能将它移出列表。人们将自己的私人隐私领域向任何告诉他们“相信我,我是一个专家”的人开放,并且他们这样做是心甘情愿地,热切地,而且往往不进行思考。 “证书颁发机构”告诉你谁应该被信任,从而剥夺你对信任的决定权;电子邮箱服务供应商提供对服务器的加密和解密,从而剥夺你选择端对端加密以及控制自己的密钥的权力;操作系统未经你的同意决定如何执行,从而剥夺你保护自己免于受到移动恶意代码的能力。不要放弃自己对安全的控制,而托付给第三方。当然,你不能自己编写一个良好的安全工具或者安全策略,但这并不意味着这个工具或者策略可以摆脱你的控制,自行其事。