Office中国论坛/Access中国论坛
标题:
[分享讨论]利用NTFS隐藏MDW和MDB来保证数据安全!
[打印本页]
作者:
rjacky
时间:
2006-12-25 00:19
标题:
[分享讨论]利用NTFS隐藏MDW和MDB来保证数据安全!
这两天为刚编写好的数据库安全问题而烦恼,打算用工作组来加强安全,由于access里面、创建工作组时候和微软的安全性KB里面都没有明显的提示或警告,很容易给业余人员误导一种设置了工作组就万事无忧的错觉。在我实际测试时却发现,普通用户打开access主程序,用她的工作组账号登陆后,新建一个数据库,就能导走原来数据库上面的表上的所有数据!
翻了不少旧帖和得到各位高手朋友的热心指点,总结归纳了一下主要预防方法有1.利用自编的函数对字段和数据表进行加密 2.分离前后台数据库等方法,但个人觉得这些方法一来比较复杂麻烦,让我这类门外汉望而却步,二来还是未能彻底解决MDW文件暴露的问题,突然想到一个应该可以通过NTFS文件权限的简便方法隐藏和保护MDW就能达到目的,不需要高超的编程加密和数据库技巧,在此献丑了,如有错漏请各位别见笑:
下面是工作组或域的网络环境详细设置步骤(单机环境不用说了):
一、在放置数据库的服务器上的NTFS分区建立一个文件夹,如"MyDB",再建立一个普通win用户(如"user")并为这个用户设置一个14位以上的高强度密码。在MyDB的文件夹的ntfs安全选项列表里,只设置user用户对该文件夹的完全控制权限,将所有其他的权限全部删除;并将MyDB以MyDB$的隐藏共享方式共享出来
二、将要共享出来的数据库文件(MDB或MDE),所有窗口设置为弹出和模式,取消快捷菜单和所有快捷键,在工具-安全菜单里面设置数据库密码,然后运行安全机制向导加密数据库,稳妥地设置好工作组安全性和权限,然后将MDB、MDW文件都放置在MyDB中
三、在客户端建立一个同样名字和密码的普通win用户user,使用一个类似win的计划任务可以以其他用户身份运行程序的第三方工具软件,生成一个经过加密的包括了access启动所需的MDB、MDW路径、数据库密码等参数的任务文件,客户端用户A使用他们自己的windows帐号A,双击这个任务文件后,就会自动以windows帐号user身份,以命令行方式启动access自动打开只有user才能访问数据库和MDW文件。
客户端不用第三方工具的话,在win2000和xp pro中也能实现,譬如说用user在D盘建立一个run的文件夹,里面就放一个BAT文件,内容大致是启动access的命令行如C:\Program Files\Microsoft Office\Office\MSACCESS.EXE "\\Server\MyDB$\XXXX.mdb" /WRKGRP "\\Server\MyDB$\Secured.mdw" /PWD *******,然后用win2000和xp自带的EFS加密这个run文件夹和bat文件,建立一个计划任务,设置双击时用user身份执行这个bat就可以了!
使用这个方法:
1、最大的好处就是同时保护mdb和mdw,解决mdb和mdw直接暴露问题!不知道user的密码根本无法与数据库连接,在攻破windwos的NTFS文件系统访问限制前,任何针对数据库的破解工具都派不上用场!
因为操作员无法知道躲藏在加密任务文件中的MDB、MDW路径和数据库密码,即使知道,以他们的windows帐号也不能打开文件夹,不能copy走数据库文件和MDW。
上面的每个步骤都很重要!如果设置了高强度的数据库密码后再运行安全向导加密,因为平时是access自动输入数据库密码登陆的,他们光知道自己工作组密码而没有数据库密码,即使mdb和mdw被copy走他们也没办法!
2、取消所有快捷键和快捷菜单、设置了弹出和模式,是为了防止用户以user的身份用CTRL+N等方法再开数据库窗口突破限制,如果你的数据库有导出excel功能设置,不能用弹出窗口的方式询问路径和文件名了,因为那个窗口是以user用户运行的。
3、如果在加密的任务文件命令行中直接加入工作组帐号和密码来自动登陆的话,shift键永远失效了!因为不是当前win用户直接启动access;也不需担心客户端的access主程序被修改从而被截获数据库路径、数据库密码,因为这些第三方软件都有数字签名验证功能。
4、如果需要更高的安全要求,还可以和windows的安全性进一步结合:如设置user帐号密码重试次数、锁定时间、访问和登陆审核日志来避免暴力破解;在服务器和客户端间设置ipsec来防止网络嗅探器;在服务器以user身份使用加密文件系统EFS加密MyDB文件夹,即使服务器操作系统受到漏洞攻击被获取管理员组甚至是系统权限,人家还是拿你的mdb和mdw没办法,除非他能弄到user的密码,可惜这个用户平时根本不使用!
[此贴子已经被作者于2006-12-24 17:24:50编辑过]
作者:
wu8313
时间:
2006-12-25 02:29
上述的方法看来不方便发布
作者:
rjacky
时间:
2006-12-25 19:57
呵呵,不过也不比发布MDW文件麻烦多少呢,工作量相差不多。
如果是域环境的话,简直不用到客户端设置,直接在服务器用策略将第三方软件发布出去,执行脚本将任务文件复制到客户端allusers的桌面即可。
安全和方便不可兼得。就是不知道这么设置到底安全性能增强多少呢?容易突破否?请大家多提宝贵意见!
作者:
gnoy
时间:
2006-12-25 21:20
真正的客户是不敢乱动你的"宝贝"的[em01]
作者:
adodao
时间:
2006-12-25 21:45
不错,让别人可以染指数据库和MDW文件之前,先面对win身份验证的这道防线。将access安全问题转化为win身份验证问题,想法挺新颖的!
应该不容易突破吧?如果win身份验证都能轻易给破解的话,微软帝国的大厦就倾倒,关键在于楼主那个第三方软件上了。
作者:
方漠
时间:
2006-12-26 17:35
呵,没有绝对的安全,既然用户可以访问你的数据库,再怎么保密他都可以把你的数据COPY走,最简单的方法是截屏.
"如果设置了高强度的数据库密码后再运行安全向导加密,因为平时是access自动输入数据库密码登陆的,他们光知道自己工作组密码而没有数据库密码,即使mdb和mdw被copy走他们也没办法!"
知道工作组密码后,破解数据库密码是很容易做到的.
不过此种方法还是有可取之处,谢谢楼主分享!
作者:
wanglei0803
时间:
2007-1-8 21:07
标题:
回复:(rjacky)[分享讨论]利用NTFS隐藏MDW和MDB来保...
不要认为有了mdw就一定安全,我现在设计一个数据库,中有mdw文件,可是我有一个第三方软件,可以直接修复一个,就可以用access不用密码,直接打开。
不信的可以加我QQ:274240707
把你的数据库文件给我发过来,不用mdw我给你破解
作者:
rjacky
时间:
2007-1-8 21:30
对,所以说连mdb也得藏起来
破解本地win帐号密码的软件也比比皆是,所以建议只授权单一个域用户有权访问mdb
如果有另外一个用户同时以终端图形界面方式登陆win的话,windows密码也能直接通过函数盗取并解密的,因为win将当前所以有图形界面登陆的用户密码经过winlogon.exe简单加密之后就放在内存中备用了
作者:
enos
时间:
2007-1-8 21:59
MDB应该隐蔽起来吧。我是菜鸟,个人感觉是做成数据库文件、服务器端、客户端这样会比较安全。如果可以获取数据库文件,总是可以破解的。好像INFOPATH是可以做客户端的,不知道是不是安全。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3