BlogKontakt

Bezpieczeństwo

Jak zabezpieczyć sterownik boneIO ESP i jak zgłosić podatność

Sterowniki boneIO ESP działają na ESPHome. Fabryczny firmware powstaje z publicznego pliku YAML, ten sam plik przejmujesz w ESPHome Builder i dalej kompilujesz już ze swojej kopii. Publiczny plik nie może zawierać haseł ani kluczy — znałby je każdy — więc zabezpieczenie sterownika to krok, który robisz po adopcji.

Co jest otwarte, dopóki tego nie zrobisz

BlokFabrycznieCo to oznacza
apibez szyfrowaniaPołączenie z Home Assistant idzie otwartym tekstem; ktoś w sieci może je podsłuchać albo sterować wyjściami
ota (platform: esphome)bez hasłaKażdy w sieci może wgrać sterownikowi własny firmware. Tak musi być do adopcji, bo ESPHome Builder wgrywa nim Twoją konfigurację
web_serverbez hasłaStrona urządzenia na porcie 80 pozwala przełączać wyjścia

Fabryczny firmware boneIO ESP 24x16A nie ma już wgrywania firmware'u przez przeglądarkę (ota: platform: web_server). Pozostałe modele i sterowniki adoptowane wcześniej nadal je mają — patrz niżej.

Zabezpiecz sterownik po adopcji

Dwa wgrania w ESPHome Builder. Klucz i hasło trzymaj w secrets.yaml, osobne dla każdego sterownika.

1. Klucz API i hasło strony. Zmień te bloki i wgraj firmware:

api:
  reboot_timeout: 0s
  encryption:
    key: !secret boneio_api_key # 32 bajty w base64, ESPHome Builder potrafi wygenerować

web_server:
  port: 80
  local: true
  auth:
    type: digest
    username: admin
    password: !secret boneio_web_password
  • api.encryption szyfruje połączenie z Home Assistant. Po wgraniu Home Assistant poprosi o klucz w integracji ESPHome — wklej ten sam.
  • web_server.auth chroni stronę urządzenia. Jeśli z niej nie korzystasz, usuń cały blok web_server.

2. Szyfrowanie OTA. Dopisz encryption: i wgraj firmware drugi raz:

ota:
  - platform: esphome
    encryption:

Od tej chwili sterownik przyjmie tylko firmware zaszyfrowany jego kluczem API — obcy nie wgra mu własnego, a obraz firmware'u (z kluczem w środku) nie idzie po sieci otwartym tekstem. Wymaga ESPHome 2026.9 lub nowszego. Na starszym zamiast encryption: ustaw password: !secret boneio_ota_password — hasło tylko sprawdza, kto wgrywa, nie szyfruje obrazu. Obu naraz ustawić się nie da.

Sterownik adoptowany wcześniej

Adopcja kopiuje plik fabryczny w takiej postaci, w jakiej był w dniu adopcji. Jeśli w Twoim ota jest linia - platform: web_server, usuń ją — to wgrywanie firmware'u przez przeglądarkę bez hasła. Jeśli wgrywania przez przeglądarkę potrzebujesz, zostaw ją, ale tylko razem z web_server.auth jak wyżej.

Aktualizacje ESPHome i pakietów boneIO wgrywasz, kompilując konfigurację w ESPHome Builder — warto robić to regularnie.

Jak zgłosić podatność

Prosimy nie zakładać publicznego zgłoszenia. Napisz na security@boneio.eu z SECURITY w temacie — potwierdzamy odbiór w ciągu 5 dni roboczych. Zgłoszenie można też przekazać przez CERT Polska. Problemy samego ESPHome zgłaszaj do projektu ESPHome.