第 31 集:计算机安全

1. 保密性, 完整性, 可用性 Secrecy, Integrity, Availability

计算机为了安全,要实现三性

保密性:只有有权限的人,才能读取计算机系统和数据

完整性:只有有权限的人,才能使用和修改系统和数据

可用性:有权限的人,可以随时访问计算机系统和数据

2.Threat Model 威胁模型

为了实现这三个目标,安全专家会从 \N 抽象层面想象”敌人”可能是谁,这叫”威胁模型分析”,模型会对攻击者有个大致描述:\N 能力如何,目标可能是什么,可能用什么手段,攻击手段又叫”攻击矢量”,“威胁模型分析”让你能为特定情境做准备,不被可能的攻击手段数量所淹没。

很多安全问题可以总结成两个:

你是谁?你能访问什么?

3.身份验证 (Authentication) 的三种方式:

What you know, 你知道什么 ex、用户名和密码

What you have, 你有什么

What you are, 你是什么

4.访问控制 Access Control

Bell LaPadula model 不能向上读取,不能向下写入

5.安全内核

安全内核应该有一组尽可能少的操作系统软件,和尽量少的代码。

6.独立安全检查和质量验证

最有效的验证手段

7.隔离 Isolation, 沙盒 Sandbox

优秀的开发人员,应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度,并且不让它危害到计算机上其他东西,这叫”隔离”。要实现隔离,我们可以”沙盒”程序,这好比把生气的小孩放在沙箱里,他们只能摧毁自己的沙堡,不会影响到其他孩子,方法是给每个程序独有的内存块,其他程序不能动。一台计算机可以运行多个虚拟机,如果一个程序出错,最糟糕的情况是它自己崩溃,或者搞坏它处于的虚拟机。