MainlandStudent
MainlandStudent

A student from mainland china

编译:建立安全系统的原则(2)

考虑人为因素(Human factors matter)

安全系统必须让普通人也能用,并且在设计时必须考虑到人扮演的角色。

示例1:您的Web浏览器始终弹出安全警告(旧IE浏览器被点名了——译注),有的很模糊,没有明确指示您可以采取什么方法,也没有有关如何处理风险的指南。 你会怎样做? 如果您和大多数用户一样,很快就会学会在弹出安全对话框时始终单击“确定”。

示例2:NSA的加密设备将其密钥材料存储在一个小的物理令牌中。 该令牌形状类似普通门钥匙。 要激活加密设备,需要将密钥插入设备上的插槽,然后转动密钥。 即使对于接受过很少的密码学训练的18岁士兵来说,它也是直观易懂的。

心理上的可接受性(Psychological acceptability)

用户必须接受安全模型,这一点很重要。

示例1:GFW随意封锁网站,甚至包括人们经常需要访问的网站,人们就会认为这是一个大麻烦,从而绕过它。这样一来GFW的管理者就不是赢家。没有一个安全系统能在用户想要颠覆它的时候保证长久安全。

# 此处是站在一个系统设计者的角度去考察问题(实际上GFW本不应该存在)。有改动,原文如下:

Suppose the company firewall administrator gains a reputation for capriciously, for no good reason, blocking applications that the engineers need to use to get their jobdone. Pretty soon, the engineers are going to view the firewall as damage and route around it, maybe setting up tunnels, or bypassing it in any number of other ways. This is not a game that the firewall administartor is going to win. No system can remain secure for long when its users actively seek to subvert it.

示例2:系统管理员发布命令,此后,所有密码都是随机生成的17位随机字符串(例如1¥7%85sd7u12s4f5&这种随机的无意义的字符串串——译注),并且必须每月更改一次。可能发生的情况是,用户将密码写在贴纸上粘在显示器上,任何人都可以看到。这种“好主意”最终可能适得其反。

克尔科夫原则(Kerkhoff’s principle)

即使攻击者知道系统的所有内部细节,系统也应保持安全。 密钥应该是唯一必须保密的东西,并且系统的设计应使其易于更改已泄漏/疑似泄露的密钥。 更改密钥通常比替换运行软件的每个实例要容易得多。

从一开始就考虑安全问题(Design security in from the start)

在设计完规范并且实现完之后,尝试对设计好的应用程序进行安全性改造通常非常困难。 在这一点上,您必须从一开始就遵守各个安全设计原则 。 向后兼容(Backwards compatibility,一个常见例子是Windows 10要能运行为Windows 7开发的程序*——译注)通常会特别让人难受,因为向后兼容会使得您必须能够兼容前面版本的那些不安全的特性。

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论