Вы потенциально подвергаете себя паре больше векторов атаки, кроме того, это не намного менее безопасно, чем связываться с библиотекой OpenSSL и использовать ее.
Программа и ее аргументы, которые вы запускаете из popen, могут предоставлять дополнительную информацию через argv, если вы можете указать материал ключа непосредственно в командной строке и сделать это, это будет показано через / proc / / cmdline (и ps / top / etc.). Это то, о чем я бы больше всего беспокоился, если бы мне пришлось расшифровывать с помощью другого процесса и передавать его другому приложению через канал. Будучи пользователем root, они также смогут читать / proc /
Есть несколько других вещей, таких как замена бинарного файла openssl чем-то вредоносным или внедрение этого ранее в PATH, если вы позволите popen / shell определить, какой бинарный файл openssl использовать, хотя, если они могут сделать это, они также могут получить блокировку. ключевого материала и зашифрованного текста с помощью более простых средств (или они могут заменить или LD_PRELOAD вредоносную библиотеку openssl, которая аккуратно победит также динамическое связывание с openssl). То же самое касается отслеживания на канале, они должны запускаться от имени пользователя root или вашего пользователя.
Короче говоря, если вы можете открывать без показа чего-либо чувствительного через argv, это не намного менее безопасно, чем использование библиотеки OpenSSL. Да, есть еще несколько способов завладеть вашими вещами, но для этого потребуется, чтобы они работали как пользователь, который в любом случае сможет овладеть вашими вещами (хотя, возможно, это потребует немного больше усилий) .