客服电话:0531-88918889 传真:0531-88918886 邮箱:kefu@queek.com.cn

《绝密文档2007》开发内幕

《绝密文档》开发小组

 

事情的开始非常偶然。

一家企业投入数千万元,经过两年多的研发过程,终于成功开发出新产品。但是令他们沮丧的是,在参加产品展会的时候,却有人在推销和他们一模一样的产品。这是典型的商业泄密案例,这类事件每天在中国都在重复上演。

这家企业是我们的客户,出于信任,我们受委托开发一个企业级的文档加密系统。考虑到这类问题的普遍性,我们相信这款新产品一定拥有很好的市场前景。

一、文档加密软件技术现状

文档加密软件可分为两类:第一类是针对个人用户的,满足个人对自己资料加密的需要,这类软件对企业没有什么用途。第二类软件是针对企业用户的,通过企业强制性地为每个员工的电脑安装加密软件,使得保存到磁盘里的文件被加密,从而防止泄密。

第二类软件是我们感兴趣的,但市场考察现状使得我们非常吃惊,因为大部分这类加密产品都没有遵循相关国际标准去做。甚至有一些产品存在严重的漏洞,稍动些脑筋就能把资料盗窃出来。针对这种情况,有位同事甚至写了一个叫做“浪子燕青”的破解软件,可以破解部分不严谨的加密软件。

前些日子看中央电视台报道,说是山东聊城市公安局在破获一起传销案件时,收缴了一枚被加密的U盘。专家破解了其U盘密码后,依据其中资料一举破获全国最大的传销案件,涉案人数达六十多万人,涉案金额达数百亿元人民币。

看到这个新闻后,我对这种儿儿戏戏的加密产品感到愤慨,这都什么年代了,还用这种小儿科的技术忽悠用户。幸而这次忽悠的是一个犯罪团伙,反而有些戏剧的效果了。

二、加密技术体系的选择

我们决定采取和银行电子交易系统相同的加密技术——PKI公开密钥技术体系,企业通过自己的数字证书对重要资料进行加密。PKI技术体系的好处就是虽然技术公开,但其不可不破解性也是公认的,解密唯一依赖解密密钥。数字证书的获取途径很多,通过企业内部证书服务器、第三方认证公司等等,甚至采用我们随产品一起发行的2048位数字证书,都可以得到自己可以信赖的数字证书。

我们有开发基于PKI体系的安全系统经验,我们的另一款产品Queek ERP Server(该产品是山东省信息产业厅的)就是基于PKI体系的企业工作流系统。这次对我们而言,不存在技术问题,需要的就是把这款新产品做出来。

三、修改 Windows 操作系统

要想使加密产品神不知鬼不觉地把员工电脑内的资料加密,必须修改 Windows 内核,让修改后的 Windows 操作系统在执行磁盘存取操作时自动完成加密和解密操作。

Windows 被修改后,数据在写入磁盘之前会先进行加密操作,数据在从磁盘读出之后立即进行解密操作。电脑操作人员完全感觉不到这个加密和解密过程的存在,反正他在电脑屏幕上看到的是未经加密的明文。但是,如果文件被复制带出企业后,他看到的则是被加密的乱码。

修改 Windows 说起来思路很简单,做起来必须克服三大困难:

1.修改什么地方?

我们必须了解系统有多少可能的安全漏洞,如何堵塞各种可能的信息泄露渠道?只有对可能存在的各种潜在危险都做出分析,才可能做出真正安全的产品。

《绝密文档2007》在抵御潜在威胁方面思路相当严谨,除了我们宣传资料上介绍的一些基本功能外,大量的防范漏洞的功能都被设计出来了,只是出于知识产权保护的考虑,没有一一罗列这些功能。这里我们仍然不多介绍,让事实替我们说话吧!

2.如何修改?

关于如何修改 Windows 内核的文章和资料很多,我们在这里提醒大家的是,在我们力所能及的范围内,未看到一篇能解决实际问题的论述。俗话讲,“师傅领进门,修行在个人”。我相信那些资料的作者肯定知道真正的修改方法,但因为这是一项较关键的技术,没人愿意白白把这项技术送人。

我们尝试了基本 Windows 内核方面的专著和若干有价值的网络文章,实践证明,那些方法仅仅能满足教学的需要,应用在商品化的软件中,需要我们付出更多的劳动才行。为此,我们花费了一个月的时间编写了一套修改 Windows 内核代码的开发工具包。有了这套工具包,大大提高了我们后续的开发速度。

3.如何响应复杂的操作?

Windows 本身是一个异常复杂的炒作系统,任何一处修改往往会影响许多地方。最初的修改,您会发现能够导致“记事本”这样简单的程序都不能正常工作了。当你解决完问题后正沾沾自喜时,又会发现 Word 工作失常了。当你再次沾沾自喜时,还会发现Autocad又崩溃了。如此下去,您得非常有毅力,最后才能发现这项系统工程的全部奥秘。

我们花费了整整六个月时间完成了《绝密文档》的第一个可用版本,然后又花费两个月时间完成了它的第二个版本。我们相信,无论是安全逻辑还是代码实现方面,《绝密文档》是目前世界上最好的文档加密软件之一。

四、给《绝密文档》自己加上保险

一把锁无论多么精致,即使用万能钥匙也不能打开它,但是,如果它自身不够坚固,我们可以不用钥匙,砸开它!

幸运的是,《绝密文档2007》注意到了这一点。

如果您打算用解密工具跟踪《绝密文档2007》的运行过程,我相信,您的噩梦就要开始了。《绝密文档2007》采用了极为复杂的反跟踪措施,在正常的算法中插入了长达五百万字节的反跟踪代码,采用多线程并行运算模式,即使计算机全速执行,也需要数秒钟时间才能全部执行完其中的反跟踪指令。

核心代码在执行之前是以加密形式存在的,只有在需要之形式才会被临时解密,解密算法则是利用ECC加密算法在服务器端进行的。同样服务器端程序也采用同样技术进行反跟踪处理。经过如此复杂的防范措施,程序99%的时间是在杂乱无章的代码中漫无目的地跳转,偶尔会认真做点有用的事情。搞清楚它究竟要做什么,这会使最有耐心的解密高手失去信心——因为他要判断自己的付出和回报是否符合经济原则。

即使很久以后的某一天代码被某个高手攻克,他会很遗憾地发现,企业文档仍无法解密。因为PKI体系的加密算法和加密密钥是互相独立的,即使知道算法仍然无法解密文件。锁被砸开了,小偷知道了锁的原理,可是资料仍然不能被解密。这个时候我们的产品不知道又经过多少次升级了。

作加密软件累就累在这里,你不仅要保证被加密文档的安全,同时也的保证你自身不被强力破解才行。无论如何,人们不会轻易相信一个弱不禁风的保镖的!

五、展望

不知不觉我们已经在企业管理软件领域“混”了七年了,刚开始的时候感觉有些误入歧途,走过很多弯路,现在大伙觉得或越来越有干头。企业需要我们做的产品太多了,我们面临的机会也太多了。能用我们的智慧和双手服务社会,分享劳动者的快乐,实在是一件幸事。

企业面临的信息安全问题越来越受到重视,《绝密文档2007》是我们进入这个领域的入门之作,希望得到用户们的喜欢。我们会让这款产品越来越出色,同时也会继续推出其它企业安全产品。


济南黑格软件有限公司(2002-2007) 版权所有 鲁ICP备05028854号