2

嘿,我正在寻找解密我的 ATTiny 芯片的 HEX 代码文件并使用 AVRDude 命令行界面对其进行编程。问题是,我不希望用户能够在任何给定时间看到 HEX 文件是什么。

VB.net Cryptography 是否可以在我将 HEX 文件放到服务器上之前对其进行加密,然后在程序从服务器下载并通过程序运行它而不看到解密的 HEX 文件后对其进行解密?

显然,十六进制文件在被编程到 ATTiny 芯片时不能保持加密,所以我该怎么做才能创建要在程序中编程的原始十六进制文件,而不必担心它将临时文件写入硬盘驱动然后删除它?(因为他们可以在执行该临时文件后关闭程序,他们将能够导航并打开它并查看代码)

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

大卫

4

2 回答 2

1

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

业界不时遇到同样的问题,因此他们用密码学解决了问题:有时需要防止其他人能够获得已编译和可运行的文件,因为“他们”会反编译或在汇编中查看它,有时只需要防止其他人能够在设备上运行他们正确的自制文件。

如前所述,解密主机(用户/客户端主机)上​​的文件是不可能的。然后过一会再推。例如,您可以让引导加载程序解密他从串行线路读取的固件文件。

在这种情况下,您交付硬件(芯片、引导加载程序和初始固件版本),并通过串行线路(而不是 JTAG/ASP/ISP)安装更新。引导加载程序将包含解密固件文件的密钥。此密钥还可用于验证固件文件是否来自您,并且没有其他人编译过任何东西。

如果您还需要分发引导加载程序(十六进制文件),您将面临有人可以提取或更改密钥的问题。在这种情况下,非对称密码学将拯救你。您为自己保留私钥,引导加载程序获取公钥部分。即使有人能够提取公钥,他也无法创建一个可以识别为您的文件。唉,对于非对称加密来说,ATTiny 太弱了,甚至对称加密也会使引导加载程序代码膨胀。

于 2010-10-07T17:44:05.453 回答
1

不能使用指定的约束来完成。ATtiny 无法运行有用的引导加载程序(没有自编程闪存。)您的 hex 文件需要在主机上解密。将解密的数据保存在内存中可能会稍微减慢攻击者的速度。

于 2011-01-28T03:03:53.747 回答