应用层加密技术

应用层透明加密技术俗称钩子透明加密技术。这种技术就是将应用层API和Hook组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。

应用层透明加密(钩子透明加密)技术与应用程序密切相关,它是通过监控应用程序的启动而启动的。一旦应用程序名更改,则无法挂钩。同时,由于不同应用程序在读写文件时所用的方式方法不尽相同,同一个软件不同的版本在处理数据时也有变化,钩子透明加密必须针对每种应用程序、甚至每个版本进行开发。

目前不少应用程序为了限止黑客入侵设置了反钩子技术,这类程序在启动时,一旦发现有钩子入侵,将会自动停止运行,所以应用层加密很容易通过反钩子来避开绕过。

应用层加密的主要技术原理在于,应用系统通过加密API(JDBC,ODBC,C API等)对敏感数据进行加密,将加密数据存储到数据库的底层文件中;在进行数据检索时,将密文数据取回客户端,再进行解密。另外应用系统将自行管理密钥体系。

这种方案也存在明显缺陷,最主要的不足在于,应用程序必须对数据进行加解密,增加编程复杂度,而且无法对现有的系统做到透明,应用程序必须进行大规模的改造。从效率角度来看,这种技术方案无法利用数据库的索引机制,加密后数据的检索性能将产生大幅度下降。