现代意义的计算机诞生于第二次世界大战。那时的计算机真的就是一个巨大的计算机器,或者可以不太恭敬地叫它“超级算盘”。你会担心一个“超级算盘”的安全问题吗?当然不会后来,技术的进步和普及让计算机不仅仅是“计算的机器”,而且是“信息处理的机器”。那么怎样保证计算机中的信息的私密性和完整性呢?走在信息革命前面的美国首先遇到这个问题,并试图解决它。在1970年前后,先后出现了两个安全模型:BLP模型和BIBA模型。前者参考美国军方的保密原则,着力解决私密性;后者则着力解决完整性。BLP模型可简化为两句话:禁止上读,禁止下写。数据被分级,下级部门不能读上级部门的数据,上级部门也不能把数据传递给下级部门。如此,某部门就只能读到本部门或级别低于本部门的数据,数据的私密性得到了保证。BIBA模型也可简化为两句话:禁止上写,禁止下读。数据也是分级的。下级不能写上级的数据,上级不能读下级的数据。BIBA模型是服务于完整性的。完整性的英文是Integrity,朗文字典中的英文释义有两个:一、strength and firmness of character or principle;honesty;trustworthiness;二、a state of being whole and undivided;completeness。第一个意思更接近于汉语的“人品”,第二个意思是汉语的“完整性”。BIBA模型反映的是integrity的第一个意思。怎么讲呢?禁止上写:“低贱”的人不能玷污“高贵”的人的数据;禁止下读:“高贵”的人也不要去读“低贱”的东西,降低自己的品味。这有点像印度古老的种姓制度。BLP模型和BIBA模型本身都经过了数学证明,都是很严谨的,可惜的是它们的适应面有些窄,无法覆盖计算机系统信息处理的全部。
为了更有效地利用计算机,计算机操作系统步入分时多用户时代。许多人登录到一台主机(mainframe),张三是个程序员,李四是个文档管理员,王五是系统管理员。随之出现了基于角色的访问控制(Role-based Acess Control,RBAC),让用户分属于不同的角色,再基于角色赋予访问权限。当PC时代来临,计算机设备专属于某个人,系统中的所谓用户也背离了原有的含义。随便打开Linux系统上的/etc/passwd文件,看看里面还有几个是真正的用户?因此,在PC中使用基于角色的访问控制就有些力不从心了。接下来诞生了另一个访问控制模型--类型增强(Type Enforcement,TE)。模型中控制的对象不再是人,或角色,而是进程。进程属于不同的类型,不同类型有不同的访问权限。(www.xing528.com)
江湖中不仅有少林,还有武当。计算机系统安全的另一路人马在“可信”领域辛勤地耕耘着。他们希望计算机只做人预先定义好的工作,不会有意或无意地去做主人不希望的事情。如果做到了这一点,他们就认为计算机是“可信”的了。可信理论的背后是将人类社会的信任模型构建到计算机的世界中,甲信任乙,乙信任丙,于是甲信任丙;计算机固件信任加载器(boot loader),加载器信任操作系统,操作系统信任应用,于是应用是可信的。信任的度量是用完整性校验值和数字签名。这的确可以保证应用是由某个“正直”的人或公司开发的,但不能保证应用没有漏洞,不会被恶意利用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。