security

rurality 2007-05-08 07:45:13
5.3 系统对象行为分析
在对系统进行总体分析以后,明确了系统的各个模块,并且细化到了类的设计,这一节主要是在前面工作的基础上作,进一步的分析类、模块之间的行为关系,并且完成对象的基本设计,为编码阶段作最终的铺垫。
服务器端在总体上分为安全通讯,文档加密,解密文档的监控三大部分。安全通讯部分,是文档安全管理系统的前提和保障,如果不能保证端到端的安全通讯,文档的加密与操作监控也失去所有的意义.文档的加密部分,主要负责的是生成密钥,加密文件,并且将其用户信息,权限信息以及密钥存储到服务器上面。解密文档的监控部分,是指文档在客户端解密后,由服务器端监控客户端用户对文档的所有操作,该功能比较复杂,除了要验证用户权限以外,还要和服务器交换密钥,解密文档,打开文档,以及之后的保护和监控.以下内容对这三部分功能进行描述。
5.3.1安全通讯功能的实现
无论是安全文档生成阶段,还是安全文档保护阶段,都必须与服务器进行安全通讯。在前面了论述中已经对SSL的通讯方式进行了论述,但在实际设计的时候,在满足安全通讯的同时,还要考虑系统的整体行为,尽量设计出一个通用的通讯模块,来满足所有具有和服务器通讯需求的模块的信息,在通讯异常处理中也要考虑到方方面面的情况。
图24主要分析了当安全文档被使用者打开的时候,用户验证模块,密钥交换模块和用户信息记录模块通过通讯模块与服务器进行通讯的时序图。

图 11客户端与服务器通讯时序图
通讯模块需要将这三个模块与服务器通讯的方式进行封装,并统一进行用户身份验证,SSL安全通讯以及异常处理。
5.3.2 文档加密功能的实现


图 9安全文档生成时序图

图 10安全文档保护时序图

5.3.3服务器端监控功能的实现
客户端用户的信息经过登陆模块一系列的验证以后,调用安全通讯模块建立安全信道,将解密密钥,用户的操作权限等信息从服务器端传到客户端。之后客户端主程序要负责调度各个模块,将密文的文档解密成明文文档到内存中,获得文件句柄和文件类型等信息,并根据文档类型,启动不同的应用程序,最后由服务器端负责监控用户对解密后文档的操作并实施对文档的保护。

图 12文档打开与保护过程时序图


图 13驱动程序时序图
通过这个时序图,把文档保护的各个模块串联起来,基本构成了文档保护最核心的部分。以下是驱动程序时序图在主应用程序完成了自己的各项工作以后,下一步最主要的就是给应用进程再披上两层保护外壳,那就是钩子线程和远程线程。
这两个线程都是在应用程序运行以后再开始启动的,因为他们必须依附于应用程序本身。钩子进程在挂载过程中,由于无法马上获得应用进程的句柄,因此采用了非常规的枚举窗口的方式来获得应用程序句柄。在远程线程启动的时候,由于以及获得了窗口句柄,因此直接根据句柄启动注入程序就可以了。

图 14子线程挂载时序图

图 15远程线程加载时序图
通过钩子线程和远程线程的加载,在主进程和应用程序进程之间架起了两座桥梁,通过他们之间的循环监视,来保证文档的安全保护。
5.4 系统的编码与测试
...全文
143 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧