我们用C语言开发了一个应用程序。然后我们交叉编译它并将其移植到运行Linux的ARM单板计算机上。我们开始使用此应用程序将此SBC出售给客户以满足其特定需求。然而,我们听到有传言说他们也试图入侵SBC来复制我们编译的代码,然后对其进行反编译,以便将来他们能够开发自己的代码。 所以我的问题是:如何在SBC中保护我的软件应用程序? 我们曾尝试过标准的Linux软件保护解决方案,例如truecrypt,但很难将其编译到SBC。有什么建议? 最好的祝福, new2RoR
答案 0 :(得分:2)
您似乎有两个单独的问题需要处理:
两者唯一完全可靠的解决方案是使用具有安全启动的SBC和完全可信的执行路径(例如,所有代码签名的)。这绝不是不可能的,但会限制您的硬件选择并付出高昂的努力。这从根本上违背了开源运动的精神,很难找到解决方案。
处理机密性问题,反汇编编译的C和C ++并不是特别容易或有用,需要相当高的技能水平;除非这样做的价值非常高,否则不会是经济攻击。
除非您可以阻止攻击者访问软件的二进制形式,否则您可以通过以下方式减少攻击面并使任何攻击者的生活更加困难:
通过合法用户持有的某种身份验证和/或代码签名,可以防止未经授权的使用
在实践中,您可能想要这两个。