上面的操作过程都正确贯彻了安全规则,禁止没有相应安全权限的人看到比他不应该看到的分类数据。然而,假设对于航班号和货舱的排列有一个不能重复输入信息的限制条件,这样能够避免把两次出货任务安排到同一个货舱。当小兵张三看到看到1254航班的C货舱没有安排任何货物时,他很可能试图为该航班插入一条运输蔬菜的新记录。但是,当他试图插入这条记录时,当唯一对应的限制条件起作用时,他的插入操作就会失败。这时,这个小兵张三完万能够根据上面这些数据来推理出1254航班上将要运送一批机密货物。然后,他可能会交叉引用航班信息表,找到这次秘密运输任务的发货地、目的地和其他更多信息。
这自然引出了一个问题:您要怎么做才能防止这种推理问题的发生?基本上,您有两个选择。第一,您能够把安全列纳入到唯一性的约束条件中。这种技术,我们称之为多实例(polyinstantiation),使同一张表格中的不同记录处于不同的安全级别上。这样小兵张三就永远不会知道最高机密运输任务的任何信息了。第二,您能够处理对货舱的双预约请求,把小兵张三要运的一卡车蔬菜就搁置在机场。第二个选择只是简单的保持表格的原样。小兵张三可能知道有一个安全分类的运输任务要执行,但不会有机会获取运输内容的任何信息。无论哪一个解决方案都很理想,但都需要对安全和实用之间的平衡做出某种意义上的取舍。
IT专家网原创文章,未经许可,严禁转载!
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



