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
| Blok | Fabrycznie | Co to oznacza |
|---|---|---|
api | bez szyfrowania | Połączenie z Home Assistant idzie otwartym tekstem; ktoś w sieci może je podsłuchać albo sterować wyjściami |
ota (platform: esphome) | bez hasła | Każdy w sieci może wgrać sterownikowi własny firmware. Tak musi być do adopcji, bo ESPHome Builder wgrywa nim Twoją konfigurację |
web_server | bez hasła | Strona 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_passwordapi.encryptionszyfruje połączenie z Home Assistant. Po wgraniu Home Assistant poprosi o klucz w integracji ESPHome — wklej ten sam.web_server.authchroni stronę urządzenia. Jeśli z niej nie korzystasz, usuń cały blokweb_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.