我想在我的linux命令行上调用"openssl“来获得一些解密的东西。
在使用时
Process process = new ProcessBuilder().command("openssl", "enc", ...).start();我如何确定调用了实际的openssl命令?想象一下,攻击者简单地将openssl -> openssl2重命名为openssl,并将自己的恶意程序添加为"openssl“,该程序反过来在后台调用"openssl2”,但捕获标准输入和标准输出并将其静静地转储到一个秘密文件中。
有没有办法确保调用了正确的操作系统程序?
谢谢大家!
发布于 2018-09-12 21:45:28
OpenSSL和JNI
这样,您就可以使用自己的库样本了。当然,如果系统被破坏了,这仍然是不安全的,但这给了一个保持完好无损的小机会
如果您确实需要使用openssl功能,可以通过以下方式使用: 1.转到此处:https://www.openssl.org/source/ 2.针对所需的(或多个平台)编译openssl库。3.使用JNI调用库中的函数。
你也可以在这里找到一些有用的东西:https://software.intel.com/en-us/blogs/2014/12/05/encryptiondecryption-invoking-openssl-through-jni-calls
https://stackoverflow.com/questions/52296255
复制相似问题