文章

Ping32技术内幕:如何开发一个文档透明加密软件?

如需转载到其他平台,请联系我们取得授权,违者将严肃追究法律责任。

 

我于2008年进入安全行业,从事Windows方向的C\C++的底层研发工作。虽然那时Windows进入寻常百姓家,进入企业领域已有10年的光景,但是整体来说,技术资料和今天比还是相当匮乏,开源生态也不如今天这么完善。举个简单的例子就是做API HOOK用的微软官方的Detours库只开源了x86指令集的版本,x64版本售价9999美元,然而时至今日,Detours的x86,x64,ARM版本全部开源。过去十多年,我始终奋斗在研发一线,一路走来给我的感觉就是,解决一个技术难题越来越容易了。我时常在想,是什么造就了这种差异。答案显而易见,就是开源生态的发展,以及开发者的分享奉献精神。因此,我一直在评估是否有可能将Ping32文档加密的一些核心技术也开放出来,可能是开源的方式,亦或是技术分享的方式。

 

将一款商用产品的核心技术进行开放,这个想法不可谓不大胆。但是深思熟虑后,我们的立场很简单:数据安全用到的技术往往具备“冷、偏、难”的特点,这就导致鲜有企业有足够的技术积累,可以进入这个领域并孵化产品。结果就是市场无法良性健康发展,技术无法迭代升级。

 

随着《数据安全法》的颁布,以及Ping32新一代文档透明加密产品的发布,我想时机终于成熟了:我会将Ping32第一代文档加密产品的技术细节进行分享。虽然这并非完全的代码开源,但是涉及到的技术细节是立论严谨,经过工程实现检验的。这对于有意从事文档透明加密产品研究的团队来说,只要达到要求的知识储备,都可以在短期内实现一个具备商用价值的,从底层核心到上层权限管控的具备商用价值的透明加密产品,比如:图纸加密、文档加密、数据防泄漏、文档安全管理产品等。

 

Ping32第一代文档透明加密方案是基于应用层的HOOK技术实现的,在过去近十年的迭代发展过程中,积累了大量用户案例,稳定性得到了充分的验证。部分人聊到透明加密产品,言必谈论驱动层的方案如何更优。考虑商业场景应用的稳定性等因素,我依然认为应用层的透明加解密方案仍具极大的研究空间。此外,纵观目前国内做透明加密的厂商,大多数商用场景稳定的产品,透明加解密的核心逻辑依然是应用层方案,只不过辅以文件微过滤驱动实现小部分管控逻辑。

 

需要具备的知识储备

1.精通Windows平台下的C\C++开发,熟悉常见的数据结构和算法;
2.熟悉网络架构,了解各层的协议细节及应用场景,以及具备编写网络流量过滤器的能力;
3.精通Windows架构体系,了解Windows XP – Windows 10的架构变迁;
4.熟读《Windows核心编程》,读过《深入解析Windows操作系统》尤佳。
5.熟悉WinDbg,IDA,ProcExp,ProcMon等高级调试工具的使用。

总结就是扎实的操作系统、网络、软件调试理论基础。

 

分享内容涵盖以下主题,将定期以博客的形式更新到官网,敬请关注

1、需要“透明”处理的操作、属性有哪些?
2、生成文件内核对象句柄的途径有哪些以及应该如何处理?
3、文件大小的透明化处理;
4、文件指针的透明化处理;
5、其他属性的透明化处理;
6、Windows API 还是 Windows Native API;
7、内存映射文件的处理;
8、进程注入的艺术;
9、邮件白名单与透明解密网关的实现;
10、屏幕水印、打印水印、防截屏的实现;
11、剪切板、OLE等其他细节的处理;
12、不同文件系统的差异化处理;
13、优点与不足之处;

 

如果你对其他技术细节也感兴趣,也可以和我们取得联系。

Ping32文档加密软件规则配置教程

用户想要对终端上的一些编辑软件生成的文件进行加解密策略,则需要对终端此款软件进行加密规则设置。首先需要先添加授权软件,对授权软件设置加密规则,然后再对终端下发加密策略。

1. 添加授权软件
点击主菜单授权软件功能按钮,可以打开授权软件列表,系统内置多种类型授权软件,包括办公软件、编程开发、浏览器、图形图像、其他等类型。

点击页面左上角添加按钮,自定义添加授权软件,填写软件名称、类型、描述信息,支持点击名称后面图标按钮添加软件图标。(以新增XMind软件为例)

再点击授权软件页面左上角“+”按钮,添加授权软件进程及加密规则。选择常规设置标签,填写软件的进程名称、描述、验证模式和操作系统。(XMind软件,只有一个xmind.exe进程,有些其他软件可能会有多个可执行文件,同时需要把软件的其他可执行文件都找到。)

选择加密规则标签,点击添加按钮,添加加解密规则。规则可以选择为加密/解密或忽略,支持通配符和正则表达式类型填写规则(规则为文件格式)。(这里通过XMind生成的文件只有.xmind类型文件。而有些软件背后的行为可能不如用户眼前所见,比如world,他生成一个docx文档时,是先生成一个tmp文件,将数据先保存在tmp中,然后再重命名为docx,所以只配置docx加密规则是不生效的,还需要配置tmp的规则)。用户可以通过ProcMon来观察一个进程访问文件的行为。

若添加了多条规则,可以对已建规则进行上移或下移操作,终端将按规则顺序前后自上而下依次执行加密规则。
点击主菜单授权软件功能按钮,可以双击已有授权软件,进行规则调试,添加新规则或删除规则,比如双击 XMind 8 Update 9 软件,进入XMind授权软件页面。

双击已有进程规则,可以进入加密规则调试已建规则。也可以点击“+”或“-”按钮,新建或删除规则。
点击右侧红框内按钮,可以在后缀名窗口中添加该软件能生成的所有类型文件。

2. 开启加密策略
点击主菜单加密策略功能,弹出策略设置页面,选择常规设置标签,填写策略名称,选择生效终端、生效时间,支持此定义精确时间点。

选择授权软件标签,系统展示已添加的所有类型的授权软件,用户可以直接勾选需要设置文件加密的授权软件。

设置之后,点击应用按钮,将策略下发到终端。

Ping32文档透明加密软件基础概念

什么是文档透明加密?

透明加密是指,一个软件创建文件时,文件自动加密;打开文件时,文件自动解密。透明的意思是,用户是感知不到整个过程的。但是注意:这个文件在磁盘上真实状态是被加密的,验证方法就是,把这个文件拷贝到U盘带走,外部是无法解密打不开的;或者,把这个软件通过QQ、微信发送出去,外部也是没办法打开。

阅读更多

Ping32怎样实现对企业U盘信息的加密

现在,企业中的信息都会放在存储设备中,像U盘这样的存储设备是使用的最多的,怎样对企业U盘进行加密对企业来说是个很大的问题。 阅读更多

Ping32文档加密软件成立上海办事处

近日,山东安在信息技术有限公司(简称:安在软件)在上海成立办事处,以便为客户提供更加便捷的信息安全服务。 阅读更多