Proteção de Dados ESP32 e IDE Arduino

Introdução

Este artigo apresenta uma abordagem simples e eficaz para proteger credenciais e outros dados sensíveis em projetos com o ESP32, quando você está usando a IDE Arduino. A ideia é organizar os segredos (senhas, tokens, SSID etc.) de forma mais segura e limpa, e destacar boas práticas que evitam exposições acidentais.


1. Por que separar credenciais do seu sketch?

Quando você escreve diretamente no seu sketch (arquivo .ino) credenciais como nomes de redes Wi-Fi, senhas, tokens de API ou chaves, corre os seguintes riscos:

  • Se o arquivo for compartilhado (no GitHub, Bitbucket ou outro), as credenciais podem vazar.

  • Se você usar o mesmo código em vários projetos e só alterar as credenciais, corre o risco de não lembrar que um desses sketches contém “hard-coded” credenciais.

  • Manutenção menos organizada: quando as credenciais mudam, pode ser mais trabalhoso atualizar todos os lugares.

Para mitigar isso, sugerimos mover as credenciais para uma biblioteca separada (por exemplo, MySecret.h) — assim o sketch permanece “limpo” e as credenciais ficam isoladas.


2. Como criar a biblioteca de credenciais

Segue o passo-a-passo:

  • Na IDE Arduino, vá em Arquivo > Preferências para ver o caminho da pasta “Sketchbook” (por exemplo, C:\Users\USUARIO\Documents\Arduino).

  •  Dentro localize  a subpasta libraries.

 

  •  Dentro de libraries, crie uma nova pasta chamada MySecret (ou qualquer nome que você prefira).

 

  •  Dentro de MySecret, crie o arquivo MySecret.h.

 

  •  Abra MySecret.h e insira suas credenciais, por exemplo:
// Credenciais do Wi-Fi
#define SSID "o_nome_da_sua_rede_wifi"
#define PASS "a_senha_da_sua_rede_wifi"
  • No seu sketch principal, inclua a biblioteca:
#include "MySecret.h"
const char* ssid = SSID;
const char* password = PASS;
  • Compile e faça o upload normalmente.

3. Boas práticas adicionais recomendadas

Para elevar ainda mais a segurança e organização do seu projeto com ESP32, vale considerar:

  • Não inclua nenhuma credencial ou chave sensível no arquivo .ino, .h ou .cpp que você irá publicar ou versionar publicamente.

  • Se seu projeto vai para repositório público, adicione a pasta da biblioteca de credenciais no arquivo .gitignore para evitar commit acidental.

  • Use macros (#define) ou constantes const char*, conforme sua preferência, mas mantenha tudo bem centralizado em MySecret.h.

  • Se o projeto for um produto ou destinado à operação em campo, considere usar recursos mais avançados do ESP32 — como Flash Encryption ou Secure Boot. Por exemplo, há recomendações de que “para o ESP32, considere usar as funcionalidades de Flash Encryption e Secure Boot, se a segurança for uma prioridade elevada.” lojapm.pt+1

  • Utilize comunicação criptografada (HTTPS/TLS) sempre que enviar dados sensíveis pela rede — especialmente em projetos IoT. fatecourinhos.edu.br+1

  • Considere o uso de sistemas de arquivos robustos (como LittleFS ou SPIFFS) para armazenamento local de dados críticos em vez de EEPROM simples, pois oferecem melhor integridade em caso de falha de energia. lojapm.pt


4. Exemplo completo de estrutura de código

#include "MySecret.h"
const char* ssid = SSID;
const char* password = PASS;
void setup()
{
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Conectando à rede WiFi...");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" Conectado!");
// … resto do setup …
}
void loop()
{
// … código principal do seu projeto …
}

No arquivo MySecret.h:

// MySecret.h
#ifndef MY_SECRET_H
#define MY_SECRET_H
#define SSID "Seu_SSID_aqui"
#define PASS "Sua_senha_aqui"
// Você pode definir também:
//
#define TOKEN "Seu_token_api"
//
#define DEVICE_NAME "Nome_do_dispositivo"
#endif // MY_SECRET_H

5. Considerações finais

Mover as credenciais para uma biblioteca separada é uma mudança simples, mas traz benefícios concretos de organização, segurança e manutenção. Para projetos de hobby isso já ajuda bastante; para aplicações em escala industrial ou comercial, vale aplicar também as camadas adicionais de segurança mencionadas.

Os microcontroladores como o ESP32 são plataformas poderosas, porém, se deixarmos senhas, tokens ou chaves expostas, abrimos portas para problemas. Portanto, aplicar práticas básicas de proteção de dados é um bom ponto de partida.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *