嘿,我希望将我的十六进制代码文件解密以进行Attiny芯片,并使用Avrdude命令行界面对其进行编程。问题是,我不希望用户能够在任何给定时间看到十六进制文件。

VB.NET密码学可以在将其放入服务器上之前加密十六进制文件,然后在程序从服务器下载并通过程序下运行它而没有看到解密的HEX文件后将其解密?

显然,十六进制文件在被编程到Attiny芯片时无法保持加密,因此我该如何处理,以便我可以在程序中创建要在程序中编程的原始十六进制文件,而不必担心它将临时文件写入Hard开车然后删除之后? (因为他们可以在执行该临时文件之后关闭该程序,并且可以导航和打开并查看代码)

任何帮助都会很棒! :o)

大卫

有帮助吗?

解决方案

正如您已经指出的那样,如果您在主机上解密文件,则以未加密的形式在那里,您对此无能为力。

该行业不时存在相同的问题,因此他们通过密码学获得了方法:有时需要防止其他任何人都能得到一个可编译和运行的文件,因为“他们”会对其进行反复编译或在组装中查看它,有时只需要防止任何人能够在设备上运行其适当的自制文件。

如上所述,解密主机上的文件(用户/客户端主机)不可行。然后将其推一会儿。例如,您可以让Bootloader解密他从串行行读取的固件文件。

在这种情况下,您可以交付硬件(芯片,引导加载程序和初始固件版本),并通过串行线安装更新(而不是JTAG/ASP/ISP)。引导加载程序将包含解密固件文件的秘密键。此秘密键也可以用来验证固件文件是否来自您,没有其他任何内容。

如果您还需要分发引导加载程序(HEX文件),则您将面临某人可以提取或更改秘密密钥的问题。在这种情况下,不规则的密码学将为您节省。您为您保留私钥,并且Bootloader获取公共密钥部分。即使有人能够提取公钥,他也将无法创建将被视为您的文件。 las,对于不可分割的密码学而言,Attiny太弱了,甚至Symetric密码学已经膨胀引导加载器代码。

其他提示

无法使用指定的相反。 Attiny无法运行有用的引导加载程序(没有自编程的闪光灯。)您的十六进制文件需要在主机上解密。将解密的数据保持在记忆中可能会稍微减慢攻击者。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top