注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Study Desk

Share my desk with you!......

 
 
 

日志

 
 

数据库安全问题:推理  

2007-11-20 08:32:51|  分类: 计总会 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
数据库的用户和管理员需要面对很多特别的安全需求。一方面,数据库是为了促进开放灵活地访问存取数据而设计的;而另一方面,正是这种开放的访问方式 使得数据库容易遭受各种恶意行为的攻击。IT专家网近期发布了专门针对数据库安全问题的系列文章,如果您想让您的数据库远离这些问题的困扰,可以参考这些 文章的内容。本文也是其中之一。

  数据库安全专家面临的主要威胁之一就是如何消除推理功能。简单而言,推理就是从已知的信息推出新的信息,当用户能够在低的安全级别下进行数据拼凑从而推导出在高安全级别保护下的数据时,推理功能便构成了对数据库的严重威胁。我们最好还是通过实例来了解什么是推理吧。

  假设你是一个军队交通运输系统的数据库管理员,你的数据库里有一份名为运输货物的数据表,包含了每条出货航班上大量的货舱信息。表中的每一行都 代表了单次发货信息,并列出了发货的内容和航班号。航班号被其他的数据表交叉引用,以确定发货地、目的地、飞行时间和类似的数据。运输货物表内容如下: 

航班号

货舱

货品

安全分类

1254

A A

Boots靴子

Unclassified未分类

1254

B B

Guns

Unclassified未分类

1254

CCC

Atomic Bomb原子弹

Top Secret绝密

1254

D D

Butter牛油

Unclassified未分类

  假设赵将军(具有查看最高安全机密信息的权限)来要求查看关于1254航班运载的货物信息。赵将军将会看到所有四次发货信息。另一方面,小兵张三(没有查看最高安全机密信息的权限)也要了这份数据,不过他只能看到下面这个数据表: 

航班号

货舱

货品

安全分类

1254

A A

Boots靴子

Unclassified未分类

1254

B B

Guns

Unclassified未分类

1254

D D

Butter牛油

Unclassified未分类

  上面的操作过程都正确贯彻了安全规则,禁止没有相应安全权限的人看到比他不应该看到的分类数据。然而,假设对于航班号和货舱的排列有一个不能重 复输入信息的限制条件,这样可以避免把两次出货任务安排到同一个货舱。当小兵张三看到看到1254航班的C货舱没有安排任何货物时,他很可能试图为该航班 插入一条运输蔬菜的新记录。不过,当他试图插入这条记录时,当唯一对应的限制条件起作用时,他的插入操作就会失败。这时,这个小兵张三完全可以根据上面这 些数据来推理出1254航班上将要运送一批机密货物。然后,他可能会交叉引用航班信息表,找到这次秘密运输任务的发货地、目的地和其他更多信息。

  这自然引出了一个问题:你要怎么做才能防止这种推理问题的发生?基本上,你有两个选择。第一,你可以把安全列纳入到唯一性的约束条件中。这种技 术,我们称之为多实例(polyinstantiation),使同一张表格中的不同记录处于不同的安全级别上。这样小兵张三就永远不会知道最高机密运输 任务的任何信息了。第二,你可以处理对货舱的双预约请求,把小兵张三要运的一卡车蔬菜就搁置在机场。第二个选择只是简单的保持表格的原样。小兵张三可能知 道有一个安全分类的运输任务要执行,但不会有机会获取运输内容的任何信息。无论哪一个解决方案都很理想,但都要求对安全和实用之间的平衡做出某种意义上的 取舍。

  评论这张
 
阅读(337)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017