有啥方法或想法来保护或签署源代码?
Posted
技术标签:
【中文标题】有啥方法或想法来保护或签署源代码?【英文标题】:Any way or ideas to protect or sign source code?有什么方法或想法来保护或签署源代码? 【发布时间】:2021-03-03 19:57:13 【问题描述】:这可能是一个奇怪的问题。我的项目还涉及其他一些需要处理代码的人。我不确定他们会多么小心,我不希望它泄漏。出于这个原因,我把它分成两部分,一个是库的形式,其余的只是简单的源代码。还有一个人需要一切,所以他也有图书馆的来源。我不希望这个人对图书馆进行任何更改。我输入了一个版本号,该版本号会在一切运行时打印出来,但我无法(通过查看日志)知道该库是否真实(仅来自我)。
我希望有某种方法可以使用公私钥签名或类似的东西,但反对什么?我可能也不能只计算 MD5 哈希,因为链接器可能一直将库函数放在不同的地方。 我意识到签署和验证源代码可能不可行,但我很想知道是否有人有任何想法。
【问题讨论】:
在你的源代码版本中加入一个只有你知道的认证/验证功能? 当然可以签名。您可以使用 openssl 并使用 HMAC 进行签名,以防您希望成为唯一一个同时进行签名和验证的人,或者如果您希望其他人能够验证它,则可以使用某些 RSA 方案。但是这两种方法在改变方面并不比你的 MD5 命题更好 如果那个“其他”人不应该改变图书馆,那么我看不出有理由以资源的形式给他 代码签名是git
的一项功能[可能有一些扩展]。看看:git-scm.com/book/en/v2/Git-Tools-Signing-Your-Workgithub
也有扩展(“拉取请求”),允许审查、接受和拒绝更改。 git
的 gerrit
扩展名可能是您想要的。它要求其他人在实际提交之前接受/批准/签署提交。 linux内核提交过程允许签名。 git
是为内核开发而创建的。他们是如何做事的一个很好的例子。
问:您对来源的问题ISN'T,是吗?使用 VCS(如 Git)很容易验证这一点。问:您的问题是“我如何确保‘其他人’正在运行由未更改源构建的 lib/exec?”,对吗?您正在寻找 RUNTIME 检查,对吗?
【参考方案1】:
您可以使用here 列出的VCS(版本控制系统)之一。
根据我的经验,您可以使用Github,它很容易使用。
【讨论】:
以上是关于有啥方法或想法来保护或签署源代码?的主要内容,如果未能解决你的问题,请参考以下文章