如何保护Nodemcu中的lua脚本

如何保护Nodemcu中的lua脚本,lua,iot,nodemcu,lua-scripting-library,Lua,Iot,Nodemcu,Lua Scripting Library,我正在写一个脚本,其中包含用户个人信息,如“用户Id”、“密码”、“服务器详细信息”,等等。我想保护这些个人资料 你们知道,Nodemcu里面的脚本根本就不安全。任何人都可以下载脚本并制作我的项目的cop。 因此,我想对上传到Nodemcu中的脚本进行加密,以便其他人无法解密或读取我的脚本 在NodeMCU中可能吗? 我正在使用NodeMCU V3(写在NodeMCU的背面) 初步详情: frightanic.com提供的NodeMCU定制版本 分支机构:1.5.4.1-最终 提交:b9436b

我正在写一个脚本,其中包含用户个人信息,如“用户Id”、“密码”、“服务器详细信息”,等等。我想保护这些个人资料

你们知道,Nodemcu里面的脚本根本就不安全。任何人都可以下载脚本并制作我的项目的cop。
因此,我想对上传到Nodemcu中的脚本进行加密,以便其他人无法解密或读取我的脚本

在NodeMCU中可能吗?
我正在使用NodeMCU V3(写在NodeMCU的背面)
初步详情:

frightanic.com提供的NodeMCU定制版本 分支机构:1.5.4.1-最终 提交:b9436bdfa452c098d5cb42a352ca124c80b91b25 SSL:false 模块:文件、gpio、mqtt、网络、节点、rtctime、tmr、uart、wifi 创建日期:2019-09-21 17:56 由SDK 1.5.4.1(39cb9a32)上的Lua 5.1.4提供支持 lua:无法打开init.lua
可以实现高安全级别,但不是100%。NodeMCU将数据存储在外部闪存中,该闪存不受读取保护,甚至不加密

对于基本加密,您至少需要一个带有标准加密和TLS模块的固件。如果没有TLS加密(作为网络通信模块),您在不接触设备的情况下容易受到攻击


更好的方法是使用修改后的固件,并使用内部唯一芯片id作为密钥的一部分,使用自定义加密/解密功能,使其更难破解

一些有趣的想法:

要保护脚本,请以二进制形式编译,而不存储原始脚本:

编辑:

在模块中,您可以添加带有预定义/计算密钥和iv的修改版本的
crypto_encdec()
作为
encryptintern
/
decryptintern

要获取用于密钥计算的设备特定id,您可以使用MAC地址和
wifi\u get\u macaddr()
以及闪存id和
spi\u flash\u get\u id()
,建议如下:


要加密/解密编译后的脚本,您可以修改
luaL_loadfile
require
也使用它)来解密文件,并在主机上对
luac.c
进行加密。

请注意,对于一个半信半疑的人来说,没有任何帮助。转储flash的内容、查找密钥和解密所有内容都很简单。如果没有硬件支持(有廉价的加密芯片),就不可能保护这些设备

根据你的情况,有其他选择;例如,对于我的家庭使用,一旦我开始部署基于ESP8266的设备,我计划建立一个单独的低安全性WiFi网络(没有互联网接入,只有物联网设备)。是的,人们可以很容易地获得凭据,但您将连接到一个几乎毫无用处的网络


安全性是非常随机应变的。你在防范什么样的攻击者?你所保护的东西有多重要?如果不知道更多,就很难给出建议

“更好的方法是使用带有自定义加密/解密功能的修改固件,使用内部唯一芯片id作为密钥的一部分,使其更难破解。”你能提供一个关于此的正确指导链接吗?a)此类信息不属于脚本B)如果以某种方式可以物理访问设备,则无论如何都是游戏。