静态与共享库安全性

时间:2012-11-26 13:52:09

标签: c++ security shared-libraries static-libraries

考虑到提供接受密码或许可证密钥或敏感数据的函数的库,共享库和静态库之间的安全性有何不同?

有可能"嗅探"在共享库上执行的调用?或者用虚假的共享库替换原始的共享库和" print"传递给该库的函数调用的所有参数?

2 个答案:

答案 0 :(得分:1)

一般情况下是的,可以用你自己的版本替换共享库提供相同的接口,在linux中你可以设置LD_LIBRARY_PATH例如告诉它在哪里寻找库,在windows中你可以把DLL放在搜索中路径。

但是,如果你能做到这一点,你也可以用原版的改变版本替换主程序,所以除了拦截数据的难度之外,安全性上没有太多差异。

答案 1 :(得分:1)

确实,替换共享库是捕获密钥的简便方法。但是,在静态链接库时,在正在运行的应用程序中放置断点并捕获密钥也不难。因此,作为一个图书馆开发人员,你需要忍受它 - 对于这个问题没有好的解决方案。抵消窃取密钥和使用图书馆的“盗版”版本的方法主要是非技术性的跟踪用户,并拒绝支持未注册的用户,通过网站上的限制区域提供更新等。