无法信任的世界的规则
假设你寄一封信。从邮筒到对方手里这一路上,你无法知道谁会偷偷打开它、调换里面的内容,或者它根本是别人冒你名字写的假信。网络世界也一样。一条消息要经过许多陌生的道路。所以安全从一个心态出发:这个世界不能信。
从不能信的世界出发
在网络上发一条消息,
它就离开你的手,
经过许多中间的道路。
这些路是不是都安全,你无从得知。
某处可能有人偷偷往里看,
可能悄悄改一改内容,
可能在半路截走它。
只要知道这些风险存在就够了。
不需要知道是怎么做到的。
重要的是那个心态:不要无条件相信这条路。
跟着消息从发送方到接收方走一趟。点一点,认一认路上可能存在哪些风险。
路上三件事都可能发生:
偷读、改内容、截走。
但仔细看这些风险,
它们各自破坏的东西不一样。
被读了,秘密就漏;
被改了,内容就信不得;
被截了,该到的东西就到不了。
所以要守的也不止一样。
安全把这一切干净地分成三个目标。
要守的三样:机密、完整、可用
安全的目标归到三样。
第一,机密。
只让指定的人能读。
被人偷读,机密就破了。
第二,完整。
让内容一路上不被改。
哪怕差一个字,完整就破了。
第三,可用。
需要时能畅通无阻地用。
被堵得用不了,可用就破了。
取这三样的首字母,叫它 CIA。
把机密、完整、可用三个目标一个个点开。看看每个守的是什么,破了会怎样。
把三样分开看就清楚了。
机密是不被读,完整是不被改,可用是随时能用。
同一条消息,这三样彼此不同。
只要没被读,机密就守住了,
但若这期间内容被改了,完整就破了。
所以三个目标要分开照看。
不过这里有一点容易搞混。
这三样都是我们想守护的东西,
至于怎么守,还没说呢。
要守目标,就得有方法。
一种手段:确认是谁
守目标的方法有很多。
你最先遇到的就是认证。
认证就是确认对方真的是他声称的那个人。
在陌生的世界里,光有名牌不够,
因为谁都能报别人的名字。
所以我们请他出示只有本人知道的东西。
密码就是最熟悉的例子。
拿出对的,就当作本人接受;
拿错的,就不让进。
就这样在门口先把是谁分辨出来。
选出只有本人知道的秘密,过这道门。对了当作本人接受,错了就不让进。
拿出对的秘密就过了。
认证就这样分辨是谁。
但认证是手段,不是目标。
认证本身并不保守秘密;
它只是把不对的人筛掉,
帮着去守机密这类目标。
手段除了认证还有很多。
把内容打乱让别人读不到的加密,
检查有没有被改的校验,等等。
所以最好把目标和手段并排放在一起看看。
目标和手段是不同的格子
现在把这两样分清楚。
目标是你想守护的东西。
机密、完整、可用这三样是目标。
手段是守护那个目标的方法。
认证、加密、完整性校验之类是手段。
它们常被搞混是有原因的:
手段的名字会跟目标长得像。
比如加密是手段,
但它的目标是守护机密。
把卡片分进目标格和手段格,一眼就看明白了。
点每张卡片,把它分进目标格或手段格。CIA 是要守的,认证和加密是守的方法。
把卡片全分完,看着真清爽。
左边格子聚的是要守的目标,
右边格子聚的是守护的手段。
不把这两样混起来,就是看安全的眼力。
不管听到什么安全的说法,
先问一句就行:
这是要守的目标,还是守的方法?
目标一晃,要守什么就模糊了;
把手段当成目标,就丢了真正的目标。
现在来把整件事理一理。
来理一理
归成一句话,是这样。
网络世界是一条不能信的路。
所以安全立起三个目标:
机密、完整、可用。简称 CIA。
这是要守的目标,不是方法。
守护它们的手段是另外的。
其中一个就是确认是谁的认证。
不把目标和手段搞混,就是第一步。
在不能信的世界里,定下要守什么,再选怎么守。这就是安全。
依次点要点回顾一下。(不能信的世界 -> 目标 CIA -> 手段认证 -> 目标与手段之分)
现在你知道安全在问什么了。
守什么,怎么守。
这两个问题是一切安全的骨架。
CIA 这三个目标,往后会反复回来。
认证只是守护它们的第一个手段,
像加密这样更多的手段还在等着。
下回,把消息打乱让别人读不到的
加密,是怎么守护机密的呢?
咱们接着一起看下去。