0

我正在编写一个包含用户个人信息的脚本,例如“用户 ID”、“密码”、“服务器详细信息”、Bla bla bla。我想保护这些所有个人数据。

你知道,Nodemcu 中的脚本根本不安全。任何人都可以下载脚本并制作我的项目的警察。
所以,我想加密在 Nodemcu 中上传的脚本,以便其他人无法解密或读取我的脚本。

在NodeMCU中可以吗?
我正在使用 NodeMCU V3(写在 nodemcu 的背面)
初始详细信息:

NodeMCU custom build by frightanic.com
    branch: 1.5.4.1-final
    commit: b9436bdfa452c098d5cb42a352ca124c80b91b25
    SSL: false
    modules: file,gpio,mqtt,net,node,rtctime,tmr,uart,wifi
 build created on 2019-09-21 17:56
 powered by Lua 5.1.4 on SDK 1.5.4.1(39cb9a32)
lua: cannot open init.lua
4

2 回答 2

0

请注意,没有什么可以帮助对抗一个甚至半途而废的人。转储闪存的内容、查找密钥和解密所有内容都是微不足道的。如果没有硬件支持(那里有便宜的加密芯片),就不可能保护这些设备。

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

安全是非常情境化的。您要防范什么样的攻击者?你所保护的东西有多大价值?如果不了解更多信息,很难给出建议。

于 2020-03-08T17:10:28.860 回答
0

有可能达到高安全级别,但不是 100%。NodeMCU 将数据存储在不受读取保护甚至加密的外部闪存中。

您至少需要一个带有标准加密和 TLS 模块的固件来进行基本加密。如果没有 TLS 加密(作为网络通信的模块),您将成为易受攻击的事件,而无需触摸您的设备。

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

一些有趣的想法:https ://bbs.espressif.com/viewtopic.php?t=936

为了保护您的脚本,以二进制形式编译而不存储原始脚本:https ://nodemcu.readthedocs.io/en/master/compiling/

编辑:

在模块加密中,您可以使用预定义/计算的密钥和 iv添加修改版本的crypto_encdec()as encryptintern/ 。decryptintern

要获取用于密钥计算的设备特定 ID,您可以按照建议使用 MAC 地址wifi_get_macaddr()和闪存 ID spi_flash_get_id()https ://bbs.espressif.com/viewtopic.php?t=1303

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

于 2020-03-02T17:51:54.333 回答