我在一家小型软件初创公司工作,我们正在将我们开发的软件授权给另一家公司。该软件是用C++编写的,在Linux上运行。
这不是我们第一次将软件授权给这家公司。我们怀疑以前交付的软件的某些部分已被用于协议之外的其他程序。然而,我们无法证明这一点,因为我们已经交付了源代码,公司分发了编译后的可执行文件,这些文件没有保留我们所有权的证据。
这一次,我们希望确保该公司仅将我们的软件用于许可协议所涵盖的目的。我们不想限制我们软件的可用性,但我们希望以某种方式签署我们的代码,这样当它是更大程序的一部分时,我们就可以识别它。
作为第一个措施,这次我们将以共享库的形式交付我们的软件,而不是源代码。然而,该公司仍然可以重命名库文件,删除文件中的版权声明或将其静态嵌入到可执行的using the tools described in this post中。因此,我正在寻找将某种数字签名应用于我们将要交付的ELF文件的可能性。
我正在学习ELF文件格式和编写共享库时需要考虑的各种事项,但我发现有关如何对ELF文件进行数字签名的信息很少。我遇到过像elfpgp或signelf这样的工具,但是它们似乎没有得到积极的维护。我特别在寻找一种签名技术,即使库被嵌入到更大的可执行文件中,它也能保持原样。
我如何在Linux共享库上签名,使我能够识别它并证明该库的所有权?即使我的库静态地嵌入到可执行文件中,我也可以采取哪些措施来做到这一点?
发布于 2018-09-13 22:33:44
将库打包为RPM或其他与发行版兼容的程序包文件,并使用程序包管理系统中的数字签名功能。
发布于 2017-07-17 23:39:54
目前在GNU工具链中没有elfsign支持,而且由于对软件自由的影响,也不太可能会有这种支持。
你想向谁证明所有权?你有源代码和构建脚本这一事实不应该足以让任何人相信你是真正的作者,而不是某个冒名顶替者吗?
https://stackoverflow.com/questions/43044342
复制相似问题