9.10 小结

计算机中经常会包含有价值的机密数据,包括纳税申请单、信用卡账号、商业计划、交易秘密等。这些计算机的主人通常非常渴望保证这些数据是私人所有,不会被窜改,这就迅速地导致了我们要求操作系统一定要有好的安全性。一种保证信息机密的方法是把它加密并妥善地保管密钥。有时侯提供数字信息的验证是很重要的,在这种情况下,可以使用加密散列表、数字签名,以及被一个可信的证书验证机构所签名的证书。

对信息的访问权限可以模型化为一个大矩阵,行表示域(用户),列表示对象(文件)。每一个元素表示相应的域对相应对象的访问权限。因为这个矩阵是稀疏的,所以它可以按行存储,这样就成了一个能力链表,表示某一域能够做什么;或者稀疏矩阵也可以按列存储,这样就成了一个访问控制链表,表示谁并且如何访问这个对象。使用正式的建模技术,系统里的信息流可以被模型化并受到限制。但是,有时利用隐秘的通道还是可以泄露出去的,比如调整CPU的利用率。

在任何一个安全的系统一定要认证用户。这可以通过用户知道的、用户拥有的,或者用户的身份(生物测定)来完成。使用双因素的身份认证,比如虹膜扫描和口令,可以加强安全性。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

代码中有很多bug可以被利用来控制程序和系统。这些包括缓冲区溢出、格式串攻击、返回libc攻击、整数溢出攻击、代码注入攻击和特权扩大攻击。

Internet上遍布恶意软件,有特洛伊木马、病毒、蠕虫、间谍软件和rookit。每一个都对数据机密性和一致性产生着威胁。更糟糕的是,恶意软件攻击可能会控制一台机器,并把这台机器变成一台僵尸机器用来发送垃圾邮件或者发起其他的攻击。

幸运的是,系统有很多种方法来保护自己。最好的策略就是全面防御,使用多种技术一起防御。这些技术有防火墙、病毒扫描、代码签名、囚禁、入侵检测,以及封装移动代码。