2.3.4 BLP模型的局限性
BLP模型是第一个符合军事安全策略的多级安全的模型。该模型的理论思想对于后续其他的安全模型有着重大的影响,并且在一些信息安全系统的设计中得到应用。BLP模型从本质上讲是一种基于安全等级的存取控制模型,它以主体对客体的存取安全级函数构成存取控制权限矩阵来实现主体对客体的访问。BLP模型自从被提出以来,就不断地引发人们对该模型的讨论。人们一般认为该模型的局限性主要有以下几点。
• 缺乏对信息的完整性保护。实际上这是BLP模型的一个特征而不是缺陷。对于一个安全模型来说,限制它的目标是十分合理的。也就是说,该模型的目标只专注于信息的保密性,这正是BLP模型的特点之一。
• 包含隐信道。隐信道是系统中不受安全策略控制的、违反安全策略的信息泄露途径。在BLP模型中,信息是不能直接由高等级向低等级流动的,但实际情况是可以利用访问控制机制本身构造一个隐信道来破坏这一原则。BLP模型不能防止或解决隐信道问题,在特殊环境下的实际应用中应尽量避免这一问题的产生。例如,如果低等级的主体可以看见高等级的客体的名字,虽然直接访问客体的内容是被拒绝的,但是它可以通过隐信道非法得到想访问的内容。因此,仅仅隐藏客体的内容是远远不够的,往往还需要隐藏客体本身的存在。
• “向上写”会造成应答盲区。当一个低安全等级的进程向一个高安全等级的进程发送一段数据后,按照BLP模型中“不能向下写”的规则,高等级进程无法向低等级进程发送关于操作成功的回应,相应的低等级进程无法知道它向高等级进程发出的消息是否正确到达。
• 时域安全性。不同主体访问同一客体时会出现时域上的重叠,有时会导致信息的泄露。
• 安全等级定义的完备性。主体的安全等级是由安全密级和类别组成的二元组。在创建主体时就确定了该主体当前的安全等级,并且在主体的整个生命周期内固定不变。这种方法过于严格,缺乏灵活性。
了解了BLP模型以及它的局限性,在实际的应用中就可以针对安全目标来制定适合具体环境的安全模型,弥补原始模型中的一些漏洞,改进原始模型在某些方面的不足。