我想在我的linux命令行上调用"openssl"来解密一些东西。
使用时
Process process = new ProcessBuilder().command("openssl", "enc", ...).start();
我如何确定调用了实际的 openssl 命令? 想象一下,攻击者简单地重命名openssl -> openssl2,并将自己的邪恶程序添加为"openssl",而该程序又在后台调用"openssl2",但捕获stdin和stdout并将其悄悄转储到一个秘密文件中。
有什么方法可以确定调用了正确的操作系统程序?
谢谢大家!
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