购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 返璞归真,揭秘安全的本质

讲了很多题外话,最终回到正题上。这是一本讲Web安全的书,在本书中除了讲解必要的攻击技术原理之外,最终重心还是要放在防御的思路和实现的技术上。

在进行具体技术的讲解之前,我们需要先清楚地认识到“安全的本质”,或者说,“安全问题的本质”。

安全是什么?什么样的情况下会产生安全问题?我们要如何看待安全问题?只有搞明白了这些最基本的问题,才能明白一切防御技术的出发点,才能明白为什么我们要这样做,要那样做。

在武侠小说中,一个真正的高手,对武功有着最透彻、最本质的理解,达到了返璞归真的境界。在安全领域,笔者认为搞明白了安全的本质,就好比学会了“独孤九剑”,天下武功万变不离其宗,遇到任何复杂的情况都可以轻松应对,设计任何的安全方案也都可以信手拈来了。

那么,一个安全问题是如何产生的呢?我们不妨先从现实世界入手。火车站、机场里,在乘客们开始正式旅程之前,都有一个必要的程序:安全检查。机场的安全检查,会扫描乘客的行李箱,检查乘客身上是否携带了打火机、可燃液体等危险物品。抽象地说,这种安全检查,就是过滤掉有害的、危险的东西。因为在飞行的过程中,飞机远离地面,如果发生危险,将会直接危害到乘客们的生命安全。因此,飞机是一个高度敏感和重要的区域,任何有危害的物品都不应该进入这一区域。为达到这一目标,登机前的安全检查就是一个非常有必要的步骤。

从安全的角度来看,我们将不同重要程度的区域划分出来:

安全检查的过程按照需要进行过滤

通过一个安全检查(过滤、净化)的过程,可以梳理未知的人或物,使其变得可信任。被划分出来的具有不同信任级别的区域,我们称为信任域,划分两个不同信任域之间的边界,我们称为信任边界。

数据从高等级的信任域流向低等级的信任域,是不需要经过安全检查的;数据从低等级的信任域流向高等级的信任域,则需要经过信任边界的安全检查。

我们在机场通过安检后,想要从候机厅出来,是不需要做检查的;但是想要再回到候机厅,则需要再做一次安全检查,就是这个道理。

笔者认为, 安全问题的本质是信任的问题。

一切的安全方案设计的基础,都是建立在信任关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;如果我们否定一切,安全方案就会如无源之水,无根之木,无法设计,也无法完成。

举例来说,假设我们有份很重要的文件要好好保管起来,能想到的一个方案是把文件“锁”到抽屉里。这里就包含了几个基本的假设,首先,制作这把锁的工匠是可以信任的,他没有私自藏一把钥匙;其次,制作抽屉的工匠没有私自给抽屉装一个后门;最后,钥匙还必须要保管在一个不会出问题的地方,或者交给值得信任的人保管。反之,如果我们一切都不信任,那么也就不可能认为文件放在抽屉里是安全的。

当制锁的工匠无法打开锁时,文件才是安全的,这是我们的假设前提之一。但是如果那个工匠私自藏有一把钥匙,那么这份文件也就不再安全了。这个威胁存在的可能性,依赖于对工匠的信任程度。如果我们信任工匠,那么在这个假设前提下,我们就能确定文件的安全性。这种对条件的信任程度,是确定对象是否安全的基础。

在现实生活中,我们很少设想最极端的前提条件,因为极端的条件往往意味者小概率以及高成本,因此在成本有限的情况下,我们往往会根据成本来设计安全方案,并将一些可能性较大的条件作为决策的主要依据。

比如在设计物理安全时,根据不同的地理位置、不同的政治环境等,需要考虑台风、地震、战争等因素。但在考虑、设计这些安全方案时,根据其发生的可能性,需要有不同的侧重点。比如在大陆深处,考虑台风的因素则显得不太实际;同样的道理,在大陆板块稳定的地区,考虑地震的因素也会带来较高的成本。而极端的情况比如“彗星撞击地球后如何保证机房不受影响”的问题,一般都不在考虑之中,因为发生的可能性太小。

从另一个角度来说,一旦我们作为决策依据的条件被打破、被绕过,那么就会导致安全假设的前提条件不再可靠,变成一个伪命题。因此,把握住信任条件的度,使其恰到好处,正是设计安全方案的难点所在,也是安全这门学问的艺术魅力所在。 OfYeGI2744g+gddcF7+H8SOIFV940eTFtAFmUkZtLbODDyn8B8UTsmM6z53AYUQS

点击中间区域
呼出菜单
上一章
目录
下一章
×