I am trying to make a smart IOT device (capable of performing smart Computer Vision operations, on the edge device itself). A Deep Learning algorithm (written in python) is implemented on Raspberry Pi. Now, while shipping this product (software + hardware) to my customer, I want that no one should log in to the raspberry pi and get access to my code. The flow should be something like, whenever someone logs into pi, there should be some kind of key that needs to be input to get access to code. But in that case how OS will get access to code and run it (without key). Then I may have to store the key on local. But still there is a chance to get access to key and get access to the code. I have applied a patent for my work and want to protect it.
I am thinking to encrypt my code (written in python) and just ship the executable version. I tried pyinstaller for it, but somehow there is a script available on the internet that can reverse engineer it.
Now I am little afraid as it can leak all my effort of 6 months at one go. Please suggest a better way of doing this.
Thanks in Advance.
答案 0 :(得分:0)
在服务器上保留代码并使用Internet访问是保持代码私有(也许)的唯一方法。任何类型的分布式程序最终都可以拆开。您不能(可能不应该)试图阻止人们进入其拥有并实际拥有的设备。如果您拥有的财产处于专利保护之下,那么人们是否能够看到该代码就没什么关系,因为只有您才能合法地从中获利。
作为一般性建议,代码实际上很难控制对其的访问。尝试对软件进行加密或将软件密钥应用于软件或类似的东西充其量是徒劳的,最坏的尝试通常会导致软件性能和可用性问题。最好的解决方案通常是将一个软件与某种自定义硬件设备链接在一起,这是必需的,只有您自己出售。在这里这可能是不可能的,因为您使用的是通用硬件,但值得深思。