使用openssl动态库与静态库安全分析
我们知道openssl提供了动态库(libcrypto.so)和静态库(libcrypto.a)。
现在一个对安全性要求非常高的系统中多个模块要使用openssl提供的众多加密算法,请问使用动态库和静态库(从安全性角度分析)有哪些优缺点。
以下是个人浅点,欢迎大家一起讨论:
以下讨论假定攻击者获取了替换和修改部分目录的权限,并且攻击者的目的不是使系统停止工作,而是在管理员不知情的情况下获取敏感信息。
使用静态库可以防止生产环境下的库文件被非法替换,但是linux下的静态度竟达2.6M,link到可最终可执行程序中将使其体积变得很大。 但是如果root权限已经被攻破的话另当别论了(那么直接把系统的可执行文件删除或替换也是可以的)。
使用动态库有点不安全,假如生产环境的机器被入侵,相对而言动态库比静态库更容易被窜改和替换。但是动态库对于软件系统的升级有很大方便,不用重新编译整个系统;另外动态库可以减少运行内存及物理存储空间;再者动态库可以减少最终的可执行文件大小。
选择发贴位置时似乎没有哪个是安全的版面,所以就发到这边来了。