《绝密文档》开发小组
什么是API?
文档加密软件需要修改 Windows API。什么是API呢?API的全称是Application Programming
Interface,由上千个函数构成,中文的意思是“应用程序编程接口”。通俗地讲,Windows 环境下运行的所有程序都要调用 API
实现特定的功能。其中,文档的保存和打开操作就需要调用 Windows API 中数十个文件存取函数。
文档加密基本思路
Windows API中有两个重要的函数:WriteFile和ReadFile。修改这两个函数有可能实现文档加密系统的基本功能——在写文件(WriteFile)之前先把数据加密,在读出文件(ReadFile)数据后,执行解密操作。这样,就可以实现后台对磁盘数据的实时加密/解密。
“影子文件”漏洞 —— 文档加密产品的通病
非常可惜的是,绝大部分程序在读写文件时并不调用 WriteFile 和 ReadFile(这有些出乎意料之外吧?),即使修改了这两个函数对实现文档加密系统用途也不大。
例如,Windows自带的一个名为“记事本”的小程序,就是这个不能再简单的小应用程序,都没有调用
ReadFile 读取文件。我们如果费半天劲去修改这个函数,结果岂不是很令人恼火?
这个原因导致文档加密过程要复杂一些,各家产品都有自己的解决方案,而这些解决方案都有一个共同特点——解密算法运行在
Ring3 级,而且在打开文档时必须生成一份解密的“影子文件”。
Ring3 级是什么概念呢?我们通常使用的计算机在运行时有4个特权级别,Ring0、Ring1、Ring2、Ring3。Ring3是用户级别,修改
Windows系统从 Ring3 级入手最简单省事;Ring0 级是系统最内核部分,修改这部分代码异常困难。
在 Ring3 级修改Windows
API必须面对一个严重的问题——在打开被加密文档时,文档必须被完整地解密到磁盘文件或者内存映像,我们称之为“影子文件”。这有这样,
应用程序才有可能进一步操作这些解密数据。如果文档被解密到“影子文件”,我们只需找到这份“影子”即可实现解密;如果加密到内存映像,我们只需要利用一些小工具就可以把内存映像完整地恢复到磁盘文件。加密程序可能采取一些小技巧把临时磁盘文件隐藏起来,对付这类小技巧的办法多得很,到网上搜一搜就可以搞定。实在搞不定时,只需把硬盘拆下,安装到另外一台没安装加密系统的计算机上作从盘就迎刃而解了。
千万别小看这个漏洞,即使文档加密系统的其它环节做得非常牢靠,这个环节的漏洞也足以使得加密系统失效。这应验了一句行话,加密系统的安全程度取决于最薄弱的那个环节!
《绝密文档2007》的解决方案
《绝密文档2007》率先采用Ring0级加密策略,为文档加密技术确立的一个新的技术标准,未来文档加密软件必然沿着 Ring0
级加密/解密算法的技术路线发展。确保企业信息系统的安全,《绝密文档2007》是目前技术条件下的最佳选择。
我们知道,许多文档加密软件在打开加密文档时会莫名其妙地把用户的文件“丢掉”,给工作带来许多麻烦,其原因就是破坏了Windows系统的稳定性。《绝密文档》系统由于加密方式完全与Windows兼容,不存在破坏Windows稳定性的问题。
《绝密文档2007》的另外一个优势在于,加密方法完全按照相关国际标准设计,即使不借助《绝密文档2007》,仅凭企业的数字证书就可以解密被加密的文件。这一点对于企业增强对《绝密文档2007》的信心非常重要——她的核心算法是标准的,加解密过程完全不依赖任何自己发明的“土办法”。所以,万一有一天企业不使用这套系统了,企业可以采取很多通用的方法恢复被加密的文件,前提条件是您的数字证书和证书的密码没有丢失。