最近在写一个透明加密驱动, 这个驱动需要登录到服务器,把解密策略下载下来,然后电脑的应用才能读取到解密的数据。
比如我把数据库加密了,如果数据库服务启动的时候,我的加密程序还没有登录成功的话,数据库将会启动失败。所以我的加密程序必须在其他应用启动前登录成功。
方案一:跟SQL服务一样,把登录也做成系统服务。但是这样做,登录程序有可能比SQL先登录,也有可能后登录。不太靠谱。
方案二:把SQL服务设置成延时启动。 因为我的加密程序事实上并不仅仅针对SQL的,如果其他程序也要逐一设置就太麻烦了。而且我看过别人的加密软件,他们并没有对SQL之类的程序进行额外设置。
方案三:用TDI或者NDIS,替代SOCKET写客户端和服务端。因为TDI和NDIS属于驱动层的,所以肯定比其他应用更加早启动。 不过很多人都说这个方案很复杂,有可能实现不了。
我暂时只有以上三个方案,各位大神还有其他解决办法吗?