简单介绍一下PrivateWorkplace给喜欢的朋友看看,欢迎提出批评及建议 首先用几个例子来解释这个产品的用途: 1、
当电脑损坏,交给技术人员修复,电脑修好后,里面的所有数据也都暴露在维修人员面前,毫无隐私可言;除了电脑损坏送去维修这种情形,还包括电脑遗失等情况 2、
上网浏览,担心木马病毒什么的影响系统安全;有时可能需要主动运行一些可疑软件来临时使用 3、
登录博客,写写日记,浏览网页、观看电影等,担心这些历史操作痕迹以及收藏夹被人查到,又不想清除所用过的软件的历史记录(便于自己查找)。 4、
重装电脑后,以前安装的一些软件需要重新安装,但软件安装太多时,系统就变得比较慢而且异常故障也逐渐增多,也不容易管理 5、
电脑用的久了,数据管理和备份就有点麻烦,需要备份的点太多,如果全部备份又需要很大空间,对某些特定文件或目录(比如自己的代码)又想能够象cvs或者syn那样可以易于备份恢复同时保密。 那么PrivateWorkplace包含哪些功能呢,有四个基本功能,大致如下所述: 1、
加密存储区(FileBox): 包括两个文件,一个是描述符文件(.fbo),还有一个大文件作为载体(.fbdk).可以保存在移动硬盘上随身携带。所有的功能都建立在这个加密的虚拟盘之上,所以只要管理这两个文件就可以了。程序卸载或重新安装并不干涉用户创建出来虚拟盘文件。 描述符文件描述了加密盘的结构以及用户信息进度信息加密信息等,载体文件是动态增长的,用多少增长多少,用的时间久了以后如果实际数据并不多则可以通过reclaim space功能缩小文件。描述符包括加密部分和非加密部分,载体文件数据全部加密,默认采用aes-256算法,可选择算法,通过用户名和密码进行md5散列后变化得到一个256位的用户密钥,以此用户密钥再解密一个虚拟盘创建时生成的256位diskkey来解密加密区域,然后通过校验解密后的结构头信息是否完整来判断输入的用户名和密码是否正确。这种流程不可以逆推,所以拿到源代码后也只能进行穷举和字典法破解,别无捷径。 以穷举法破解来说:一般用户名长度达到5位,密码长度达到7位,这样最少也是36的12次方种可能(26个字母加上10个数字的组合),以PC 2GHz的计算速度来推算:2GHz = 时钟周期为1/2G,一般一条机器指令执行时间在10个时钟周期这个数量级上,假设破解一条密码需要20000条机器指令(实际会远远超出),差不多计算一条用户名和密码需要200K个时钟周期,那么一秒可以计算2G/200K=10K(也就是1万)条密码,那么一年可以计算出10K*60*60*24*365=315.36M条密码左右,那么36的12次方需要几年呢:= 15025308年;如果是破解256位的密钥,那么就是2的256次方除以315.36M,这个数字就更为惊人了,显然更不合适,那就只能使用字典法,这就要看运气了,如果用户有心的话,基本上这种运气是不存在的。 对于同一个加密盘,不同的用户、不同的进度下看到的数据可能是不一样的,依赖于管理员的设置。 至于加密可能影响速度的问题,就不用担心了,内存操作和磁盘操作不是一个数量级的,在这一层上进行加解密是没有速度方面的影响的。 2、
沙箱模块:其实并不完全是沙箱,之所以沿用这个概念,是便于理解。 PW也有沙箱的功能,只是不以它为主,是在用虚拟化技术来实现软件本地虚拟化的目的同时达到沙箱的效果,侧重点在于启动PW后模拟出主机系统上没有安装的软件。现在通常把这种技术称为轻量级虚拟化技术,和传统的虚拟化不同,对构成计算机的CPU,存储、输入输出设备做局部虚拟化(重定向或仿真),主要通过对应用层api以及存储设备进行重定向和某些设备仿真的技术手段实现和虚拟机接近的功能。理论上这种技术也可以做的非常彻底,可以模拟出所有api调用,如同wine那样。但实际上只是很少一部分就可以满足实际需求,类似vmware和bochs的区别。当然兼容性问题也是这类软件的一个软肋。简单说来,也就是重定向文件和注册表的访问到加密盘中,仿真模拟系统部分api,部分硬件设备等。 大多数人可能更关心沙箱防病毒能力有多强,其实这是一个有矛就有盾的概念,攻防两端都是在不断升级。以机器狗的穿透保护系统举例:早期是脱链(将保护系统的磁盘驱动临时从device stack链中取下),最后发展到自己发送srb请求到磁盘port驱动,中间又经过若干加壳脱壳的较量。沙箱并没有对磁盘访问进行特殊处理,显然如果让机器狗驱动执行起来,那么就不可避免的会被穿透。但事实上大多沙箱产品是不允许启动驱动的,象sandboxie就是恰好不允许在沙箱内启动驱动,从而可以避免这种穿透行为,但因此也带来一些兼容性问题;因而我们的PW稍微变化了一下,是允许载入驱动的,但临时生成的驱动的载入就有限制了,但也可以通过配置设置允许。除了这种特意的穿透行为之外,其他常规的病毒木马就没有什么特殊的了,基本上不会漏过沙箱,当然感染还是会感染的,只是感染了沙箱内的系统,主机并不受影响。比如一般的盗号程序,这种程序通常是载入一个全局键盘钩子,更强悍一点的是加载键盘过滤驱动,如前所述,驱动的加载是有限制的,而加载键盘钩子,由于PW沙箱的防护,通常只能在沙箱内的虚拟环境内HOOK住键盘信息,主系统的是hook不住的,原理也很简单,除了PW主动做的一些api仿真之外,键盘钩子本身就不能跨越桌面hook。随着PW工作桌面的切换,键盘钩子也会失效,当然还是有办法能生效的,沿用上面的说法,还是矛和盾的关系。 PW沙箱的启动有两种情况,一种是不切换桌面,拖拽程序到窗口内执行;另外一种则是切换到工作桌面内执行,两者是采用不同的安全策略的,由于可配置选项过多,等后续版本中这些功能逐步开放时再一一解释,目前采用默认配置即可。 3、
防火墙模块:配合沙箱模块进行网络隔离,和普通的防火墙的定位稍微有些区别,以隔离信息为主(目前半成品)。 将来会增加一些规则模板,例如进入虚拟工作桌面后给网络使用分级,仅仅允许80端口;或者仅仅允许局域网,屏蔽internet或者仅仅允许某些定义好的进程访问网络,或者嗅探某些网络通讯数据等等 4、
虚拟工作桌面:用以区分是工作在PrivateWorkplace之内还是之外,以用户为单位进行隔离,和传统的以进程为单位稍微有点区别。 在虚拟桌面内,FileBox存储的数据及程序都被定位到开始菜单以及对应的文件夹内,注册表信息也相应的重新定位。在这里做的一些操作都会被保存到FileBox内,不影响主机系统。 主要的功能模块已经介绍结束,至于具体的使用步骤目前做的还是比较简单,如果是第一次使用,就是先创建一个加密虚拟盘,然后切换进去使用,也可以不切换在外面使用。如果是已经生成了虚拟盘,可以右键点击该虚拟盘进行对应的相关操作。 那么这个产品的使用情形基本上也就如下三种: 1、
作为加密存储平台使用,此时不启动沙箱功能,仅仅将FileBox内存储的数据mount出来供用户使用; 2、
启动沙箱,并切换到虚拟工作桌面内,作为个人工作平台使用,里面安装有自己独特的软件和数据,同时也可以使用主机的程序和数据(大部分是镜像) 3、
介于1和2的,启动沙箱,但不切换到虚拟工作桌面,而是工作在主桌面内,只是需要运行可疑程序时,拖动程序或文件到PW窗体去打开或执行 |