强制访问控制 (Mandatory Access Control)是一种不允许主体干涉的访问控制类型。它是基于安全标识和信息分级等信息敏感性的访问控制。强制访问控制包括基于规则(Rule-Based)访问控制和管理指定型 (Administratively-Based)访问控制。
与DAC(自主访问控制)相比,强制访问控制提供的访问控制机制无法绕过。在强制访问控制机制下,系统中的每个进程、每个文件、每个 IPC客体都被赋予了相应的安全级别,这些安全级别是不能改变的,它由管理部门或自操作系统自动地按照严格的规则来设置,不像存取控制表那样由用户或他们的程序直接或间接地修改。系统通过比较用户和访问的文件的安全级别来决定用户是否可以访问该文件。此外,强制访问控制不允许一个进程生成共享文件,从而防止进程通过共享文件将信息从一个进程传到另一进程。
强制存取控制和自主存取控制是两种不同类型的存取控制机制,自主访问控制较弱,而强制访问控制又太强,会给用户带来许多不便。因此,实际应用中,往往将自主访问控制和强制访问控制结合在一起使用。自主访问控制作为基础的、常用的控制手段;强制访问控制作为增强的、更加严格的控制手段。强制存取控制常用于将系统中的信息分密级和类进行管理,适用于政府部门、军事和金融等领域。
通常强制访问控制可以有许多不司的定义,但它们都同美国国防部定义的多级安全策略柜接近,所以人们一般都将强制访问控制和多级安全体系相提并论。
多级安全(又称MLS)是军事安全策略的数学描述,是计算机能实现的形式定义。
计算机内的所有信息(如文件)都具有相应的密级,每个人都拥有一个许可证。军事安全策略的目的是防止用户取得自己不应得到的密级较高的信息。密级、安全属性、许可证、访问类等含义是一样的,分别对应于主体或客体,一般都统称安全级。安全级由两方面的内容构成:保密级别(或叫做敏感级别或级别)和范畴集。
安全级包括一个保密级别,范畴集包含任意多个范畴。安全级通常写作保密级别后随一范畴集的形式。实际上范畴集常常是空的,而且很少有几个范畴名。在安全级中保密级别是线性排列的。两个安全级之间的关系有以下几种:第一安全级支配第二安全级;第二安全级支配第一安全级;第一安全级等于第二安全级;两个安全级无关。
MAC可通过使用敏感标签对所有用户和资源强制执行安全策略,即实行强制访坷控制。安全级别一般有四级:绝密级(Top Secret),秘密级 (Secret),机密级(Con dential)和无级别级(Unclassified),其中 T>S>C>U。
则用户与访问的信息的读写关系将有4种,即:
下读(read down):用户级别高于文件级别的读操作。
上写(write up):用户级别低于文件级别的写操作。
下写(write down):用户级别高于文件级别的写操作。
上读(read up):用户级别低于文件级别的读操作。
上述读写方式都保证了信息流的单向性,显然上读——下写方式保证了数据的完整性(Integrity),上写——下读方式则保证了信息的秘密性。