ESP32 上的 运行 代码是否对恶意代理可见(Firebase 数据库连接的秘密令牌)?
Is the running code on a ESP32 visible for malicious agents (secret-token for Firebase database connection)?
我目前正在尝试评估我制作的实验性物联网设备的安全级别,该设备使用 ESP32 将其状态“写入”Firebase 数据库。目前,我正在使用数据库机密来连接到数据库。建立连接的方法是传递名为 FIREBASE_HOST(数据库 URL)和 FIREBASE_AUTH(这是秘密)的值。
让我担心的是,由于秘密直接写在代码中,恶意代理可能会看到那段代码并检索数据库秘密。
这就是我的问题,无线或物理连接(如果可能的话)到 ESP32 的人可以扫描其 运行 代码以获取秘密令牌吗?
ESP32 系统中的所有内容(代码、数据、非易失性存储)都存储在外部闪存芯片中。这意味着通过对设备的物理访问,任何人都可以读取闪存芯片的内容。我只需将调试器连接到设备,然后使用 Espressif 官方工具读取整个 Flash。如果调试接口不可用,我可以直接连接到 Flash 芯片(我可以使用另一个 ESP32 构建我自己的 Flash 接口并将 Flash 连接重新连接到它)并读取它,甚至无需为 ESP32 micro 供电。如果您的秘密未加密存储在那里,它们就会通过物理访问暴露。对wifi不了解,请教更懂wifi的人。
设备端解决这个问题的方法是encrypt the Flash and only boot signed binaries.
我目前正在尝试评估我制作的实验性物联网设备的安全级别,该设备使用 ESP32 将其状态“写入”Firebase 数据库。目前,我正在使用数据库机密来连接到数据库。建立连接的方法是传递名为 FIREBASE_HOST(数据库 URL)和 FIREBASE_AUTH(这是秘密)的值。
让我担心的是,由于秘密直接写在代码中,恶意代理可能会看到那段代码并检索数据库秘密。
这就是我的问题,无线或物理连接(如果可能的话)到 ESP32 的人可以扫描其 运行 代码以获取秘密令牌吗?
ESP32 系统中的所有内容(代码、数据、非易失性存储)都存储在外部闪存芯片中。这意味着通过对设备的物理访问,任何人都可以读取闪存芯片的内容。我只需将调试器连接到设备,然后使用 Espressif 官方工具读取整个 Flash。如果调试接口不可用,我可以直接连接到 Flash 芯片(我可以使用另一个 ESP32 构建我自己的 Flash 接口并将 Flash 连接重新连接到它)并读取它,甚至无需为 ESP32 micro 供电。如果您的秘密未加密存储在那里,它们就会通过物理访问暴露。对wifi不了解,请教更懂wifi的人。
设备端解决这个问题的方法是encrypt the Flash and only boot signed binaries.