1

考虑一个提供接受密码或许可证密钥或敏感数据的功能的库,共享库和静态库在安全性方面有什么区别吗?

是否可以“嗅探”在共享库上执行的调用?或者用伪造的共享库替换原始共享库并“打印”传递给该库的函数调用的所有参数?

4

2 回答 2

1

一般来说,是的,可以用您自己的提供相同接口的版本替换共享库,在 linux 中,您可以设置 LD_LIBRARY_PATH 例如告诉它在哪里查找库,在 Windows 中,您可以将 DLL 放在搜索路径中。

但是,如果您能做到这一点,您也可以用原始版本的更改版本替换主程序,因此除了拦截数据的困难之外,安全性并没有太多差异。

于 2012-11-26T13:57:18.447 回答
1

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

于 2012-11-26T14:17:58.593 回答