Bewertete Sicherheitspraktiken¶
Diese Anleitung behandelt Sicherheitsaspekte für aiohomematic und die Homematic(IP) Local Integration.
Übersicht¶
aiohomematic kommuniziert mit dem Homematic-Backend (CCU/Homegear) über XML-RPC- und JSON-RPC-Protokolle. Die Absicherung dieser Kommunikation schützt das Smart Home vor unautorisiertem Zugriff.
Backend-Sicherheit ist entscheidend
CCU, OpenCCU (RaspberryMatic) und Homegear hatten in der Vergangenheit schwerwiegende Sicherheitslücken, einschließlich nicht authentifizierter Remote-Code-Ausführung. Das Backend niemals dem Internet aussetzen und die Firmware stets aktuell halten.
Bekannte Backend-Schwachstellen¶
Kritisch: Niemals dem Internet aussetzen¶
Homematic-Backends (CCU2, CCU3, OpenCCU, Homegear) sind nicht für den Internetzugang konzipiert. Historische Schwachstellen umfassen:
| Jahr | Betroffen | Problem | Schweregrad |
|---|---|---|---|
| 2024 | RaspberryMatic <=3.73.9 | Nicht authentifizierte RCE über ZipSlip | Kritisch |
| 2020 | CCU2/CCU3 WebUI | Nicht authentifizierte RCE als Root | Kritisch |
| 2019 | CCU3 | Local File Inclusion (CVE-2019-9726) | Hoch |
| 2019 | CCU2/CCU3 + XML-API | Nicht authentifizierte RCE über exec.cgi | Kritisch |
| 2019 | CCU2/CCU3 | Session-Fixierung, Passwort-Hash-Offenlegung | Hoch |
| 2019 | CCU2/CCU3 + CUxD | Admin-Operationen ohne Authentifizierung | Kritisch |
Erforderliche Maßnahmen¶
- Firmware aktuell halten - Sicherheitspatches sofort installieren
- CCU-Ports niemals per Portweiterleitung freigeben - VPN für Fernzugriff verwenden
- In separatem VLAN isolieren - Auswirkungsradius einer möglichen Kompromittierung begrenzen
- Authentifizierung aktivieren - Auch im internen Netzwerk
- Nicht verwendete Add-ons entfernen - XML-API und CUxD hatten Schwachstellen
Version prüfen¶
CCU/OpenCCU:
- CCU WebUI -> Einstellungen -> Systemsteuerung -> System
- Firmware-Version prüfen
- Mit dem neuesten OpenCCU-Release vergleichen
Homegear:
Sicherheitshinweise¶
Diese Quellen auf neue Schwachstellen überwachen:
Authentifizierung¶
CCU-Authentifizierung¶
Immer die Authentifizierung auf der CCU aktivieren:
- CCU WebUI -> Einstellungen -> Systemsteuerung -> Sicherheit
- Authentifizierung aktivieren
- Einen dedizierten Benutzer für Home Assistant erstellen
Benutzeranforderungen¶
| Anforderung | Details |
|---|---|
| Berechtigungen | Administratorrolle erforderlich |
| Benutzername | Groß-/Kleinschreibung beachten, exakt wie in der CCU angegeben verwenden |
| Passwort | Siehe erlaubte Zeichen unten |
Passwortanforderungen¶
Nur diese Zeichen werden in Passwörtern unterstützt:
Nicht unterstützt:
- Umlaute:
Ae ae Oe oe Ue ue ss - Andere Sonderzeichen:
@ & * % ^ ~ - Unicode-Zeichen
Diese funktionieren in der CCU WebUI, schlagen aber über XML-RPC fehl.
TLS-Konfiguration¶
TLS aktivieren¶
-
TLS zuerst auf der CCU aktivieren:
-
CCU WebUI -> Einstellungen -> Systemsteuerung -> Sicherheit
-
HTTPS aktivieren
-
Integration konfigurieren:
- "TLS verwenden" in den Integrationseinstellungen aktivieren
- "TLS verifizieren" basierend auf dem Zertifikatstyp setzen
Zertifikatstypen¶
| Zertifikatstyp | TLS-Verifizierung | Hinweise |
|---|---|---|
| Selbstsigniert (Standard) | false | CCU-Standard, keine Kettenverifizierung |
| Let's Encrypt | true | Gültige Kette, vollständige Verifizierung |
| Benutzerdefinierte CA | true | CA muss zum System-Trust-Store hinzugefügt werden |
TLS-Ports¶
| Schnittstelle | Unverschlüsselter Port | TLS-Port |
|---|---|---|
| HmIP-RF | 2010 | 42010 |
| BidCos-RF | 2001 | 42001 |
| BidCos-Wired | 2000 | 42000 |
| Virtual Devices | 9292 | 49292 |
| JSON-RPC | 80 | 443 |
Netzwerksicherheit¶
Firewall-Konfiguration¶
Eingehend zur CCU (von Home Assistant):
| Port | Protokoll | Dienst |
|---|---|---|
| 80/443 | TCP | JSON-RPC (Namen, Räume, Systemvariablen) |
| 2001/42001 | TCP | BidCos-RF |
| 2010/42010 | TCP | HmIP-RF |
| 2000/42000 | TCP | BidCos-Wired (falls verwendet) |
| 9292/49292 | TCP | Virtual Devices (falls verwendet) |
Eingehend zu Home Assistant (von CCU):
| Port | Protokoll | Dienst |
|---|---|---|
| Callback-Port | TCP | XML-RPC Callbacks (konfigurierbar) |
Netzwerksegmentierung¶
Empfohlene Netzwerkarchitektur:
Internet
|
v
+-----------------+
| Router/FW | <- Kein eingehender Verkehr aus dem Internet
+--------+--------+
|
+----+----+
| |
v v
+-------+ +-------+
| IoT | | Haupt-|
| VLAN | | LAN |
| | | |
| CCU | | HA | <- Nur CCU <-> HA erlauben
| | | |
+-------+ +-------+
Docker-Sicherheit¶
Für Docker-Installationen:
Empfohlen: network_mode: host verwenden
Alternative (Bridge-Netzwerk):
callback_hostauf die Docker-Host-IP setzen- Nur den Callback-Port freigeben (nicht alle CCU-Ports)
- Wo möglich internes Docker-Netzwerk verwenden
services:
homeassistant:
network_mode: host # Empfohlen für Callback-Unterstützung
# ODER mit Bridge:
ports:
- "8123:8123" # HA UI
- "43439:43439" # Nur Callback-Port
Verwaltung von Zugangsdaten¶
Zugangsdaten niemals committen¶
Von der Versionskontrolle ausschließen:
Home Assistant Secrets¶
secrets.yaml verwenden:
# secrets.yaml (nicht in der Versionskontrolle)
ccu_password: your-secure-password
# configuration.yaml
homematic:
password: !secret ccu_password
Umgebungsvariablen¶
Für die eigenständige Bibliotheksverwendung:
import os
from aiohomematic.api import HomematicAPI
async with HomematicAPI.connect(
host=os.environ["CCU_HOST"],
username=os.environ["CCU_USER"],
password=os.environ["CCU_PASSWORD"],
) as api:
...
Zugriffskontrolle¶
Prinzip der geringsten Berechtigung¶
- Dedizierten CCU-Benutzer für Home Assistant erstellen
- Nicht das Hauptadministratorkonto verwenden
- CCU-Benutzer bei Nichtverwendung deaktivieren (Wartung)
Netzwerkzugriff¶
- CCU-Verwaltungsoberfläche auf vertrauenswürdige IPs beschränken
- VPN für Fernzugriff verwenden (keine Portweiterleitung)
- CCU-Zugriffsprotokolle überwachen
Sicherheitscheckliste¶
| Prüfpunkt | Status |
|---|---|
| CCU-Authentifizierung aktiviert | [ ] |
| Dedizierter Benutzer für HA erstellt | [ ] |
| Passwort verwendet nur erlaubte Zeichen | [ ] |
| TLS aktiviert (wenn möglich) | [ ] |
| Firewall-Regeln konfiguriert | [ ] |
| Keine CCU-Ports dem Internet ausgesetzt | [ ] |
| secrets.yaml für Zugangsdaten | [ ] |
| Regelmäßige CCU-Firmware-Updates | [ ] |
Häufige Sicherheitsprobleme¶
Problem: "Authentifizierung fehlgeschlagen"¶
Ursachen:
- Falscher Benutzername/falsches Passwort
- Passwort enthält nicht unterstützte Zeichen
- Benutzer hat keine Administratorrechte
Lösung:
- Zugangsdaten in der CCU WebUI überprüfen
- Passwort auf Sonderzeichen prüfen
- Sicherstellen, dass die Benutzerrolle Administrator ist
Problem: Callbacks funktionieren nicht¶
Ursachen:
- Firewall blockiert CCU -> HA
- Falsche
callback_host-Einstellung
Lösung:
- Sicherstellen, dass die CCU Home Assistant über den Callback-Port erreichen kann
callback_hostauf die IP von HA setzen (nicht localhost)- Docker-Netzwerkkonfiguration prüfen
Sicherheitsprobleme melden¶
Sicherheitslücken privat melden:
- Keine öffentlichen GitHub Issues für Sicherheitsfehler eröffnen
- Maintainer direkt über GitHub Security Advisories kontaktieren
- Zeit für die Behebung vor der öffentlichen Bekanntgabe einräumen
Verwandte Dokumentation¶
- Fehlerbehebung - Verbindungsprobleme
- CUxD und CCU-Jack - MQTT-Sicherheit
- Benutzerhandbuch - Konfiguration