如何签署Linux共享库?

时间:2017-03-27 10:49:30

标签: c++ linux elf sign

我在一家小型软件初创公司工作,我们正在将我们开发的软件授权给另一家公司。该软件是用C ++编写的,可以在Linux上运行。

这不是我们第一次向该公司许可软件。我们怀疑之前交付的软件的一部分已用于其他程序,而不是商定的程序。但是我们无法证明这一点,因为我们已经提供了源代码,并且该公司分发了已编译的可执行文件,但没有保留我们所有权的证据。

这次我们希望确保公司仅将我们的软件用于许可协议所涵盖的目的。我们不想限制我们软件的可用性,但我们希望以某种方式签署我们的代码,以便我们可以在它是更大程序的一部分时识别它。

作为第一个衡量标准,我们将这个软件作为共享库而不是源代码提供。但是,公司仍然可以重命名库文件,从文件中删除版权声明或将其静态嵌入到可执行文件using the tools described in this post中。 因此,我正在寻找将某种数字签名应用于我们将要提供的ELF文件的可能性。

我正在学习ELF文件格式以及编写共享库时要考虑的各种事项,但我发现很少有关于如何对ELF文件进行数字签名的信息。 我遇到了elfpgpsignelf等工具,但似乎并没有积极维护。 我特别希望找到一种即使将库嵌入到更大的可执行文件中也能保留的签名技术。

如何以允许我识别它并证明库的所有权的方式签署Linux共享库?即使我的库静态嵌入到可执行文件中,我还可以采取哪些措施?

1 个答案:

答案 0 :(得分:-3)

目前GNU工具链中没有elfsign支持,并且由于对软件自由的影响,它不太可能存在。

您想向谁证明所有权?难道你有源代码和构建脚本的事实不足以说服任何人你是真正的作者,而不是一些冒充者吗?