如需转载到其他平台,请联系我们取得授权,违者将严肃追究法律责任。
我于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、优点与不足之处;
如果你对其他技术细节也感兴趣,也可以和我们取得联系。