Ich dachte eigentlich, dass die Zigbee Sensoren nur bis zum Zigbee-Gateway und der Home Assistant zentrale kommen und keine Verbindung mit dem Internet haben, oder ist diese Annahme falsch?
Mich würden schon eher allgemeine Antworten interessieren.
In dem Guide von NXP werden zur sicheren Verwendung von Zigbee ja schon einige Empfehlungen getätigt. Das weck bei mir den Eindruck als wäre das Sicherheitsniveau von Zigbee ohne diese Maßnahmen eher niedrig.
Dort steht:
SECURITY RISKS
The main security risks for a ZigBee wireless network
are:
Theft of sensitive data from a node – This may be
user data that can be used for criminal purposes
but is more likely to be network security data,
such as encryption keys, that will allow access to
the node and network. It is therefore important to
carefully select and protect the security keys used
by the network.
Theft of a node – A node may be stolen in the
sense that it is removed from the current network
and moved to another network where it can be
accessed and controlled. This is a particular risk
when Touchlink commissioning has been used
(described later), but there are ways to prevent it.
Unauthorized control of a node – This may result
from the above thefts or from replay attacks in
which genuine over-the-air command frames are
captured and re-sent to the node at a later time
to achieve subversive control. The frame counters
incorporated in ZigBee security help to defeat
this kind of breach but other measures, such as
regularly changing the network key, can also help.
Loss of network service – This may result from the
jamming of the radio channel or whole radio band
by interference. Applications can employ frequency
agility to overcome this kind of impediment by
moving the network to a quieter channel.
Das ist recht allgemein würde ich sagen und da würde mich ganz unabhängig von den Bauteilen die ich mir zum Ausprobieren besorgt habe interessieren was bedeutet
will allow access to the node and network.
Kann der Angreifer auf mein Gateway zugreifen und es übernehmen, nur weil einer der Sensoren / Aktoren gehacked wurde oder ist das laut aktuellem Stand nicht möglich.
Denn wenn er das Gatway hat, dann kommt er auch in das restliche Netzwerk.
dann steht da auch noch:
The frame counters incorporated in ZigBee security help to defeat this kind of breach but other measures, such as regularly changing the network key, can also help.
jetzt habe ich schon gelesen das es hier Unterschiede zwischen ZHA und Zigbee2MQTT gibt.
Betrifft das Problem auch ZHA oder nur Zigbee2MQTT. Und wie setze ich die Empfehlung am besten um?
Und dazu würde mich interessieren:
Loss of network service – This may result from the jamming of the radio channel or whole radio band by interference. Applications can employ frequency agility to overcome this kind of impediment by moving the network to a quieter channel.
Kann Home Assistant oder ein Plugin das erkennen, wenn eine Frequenz die erst wenig genutzt wurde plötzlich stark ausgelastet ist und automatisch die Frequenz wechseln? Die Fritzbox macht das ja, glaube ich. Und kann man sich dann von Home Assistant benachrichtigen lassen, wenn sowas passiert? Der Raspi hängt ja am Kabel, dem wäre es egal, wenn wer den Funk blockiert, der kann mich ja trotzdem informieren.
und dann ist da noch dieser Punkt:
SECURITY KEY WEAKNESSES
The least secure element of a ZigBee network is the network key. It is used by all nodes of the network and although it is securely passed to a joining node encrypted with a pre-configured link key, this link key is likely to be of the ‘global’ type and susceptible to exposure. Therefore, depending only on the network key leaves a network vulnerable. A ZigBee application profile (such as Home Automation) defines the level of security that is appropriate for itself. For example, Home Automation uses the well-known ZigBee 09 global pre-configured link key to authenticate devices onto the network and distribute the network key.
ZigBee 3.0 has no application profiles but defines a base device behavior (BDB) that adopts and adapts the security functionality of the Home Automation profile. It permits use of the ZigBee 09 key, as this allows backward compatibility with legacy Home Automation devices. However, the use of this global key will create a hole in network security (see Figure 1). To achieve a high level of security, ZigBee 3.0 allows the use of install codes (see Figure 2).
Wenn ich das richtig interpretiere, dann gibt es wegen der Rückwärtskompatibilität Sicherheitsprobleme, richtig?
Da ich alle Geräte neu anschaffen würde, bräuchte ich das nicht. Mir ist aber nicht klar, wie ich das abstellen kann, wenn ich es nicht brauche.
Der nächste Punkt in dem PDF heißt:
SECURITY DURING COMMISSIONING
ich kopiere den Text darunter nicht rein, weil mir das wirklich gar nichts sagt, was da steht.
Zum Testen habe ich ZHA verwendet, da drücke ich erst in der Software „neu Hinzufügen“ und dann an dem Sensor / Aktor einen Knopf und dann läuft es. Irgendwo habe ich mal gelesen, beim Paring ist das ganze angreifbar, danach nicht mehr.
Ist das so richtig, oder nicht?
Weil wenn dem so ist, dann würde ich das vernachlässigen, weil das genau dann jemand angreift, wenn ich eine Komponente neu verbinde, das ist doch eher unwahrscheinlich.
oder habe ich da was vertauscht und es handelt sich um das hier:
PROTECTING THE NETWORK KEY
The basic security provided by the ZigBee network is the encryption of data using the network key. This key is transported to the joining device during the authentication process.
The network key is never sent over-the-air unencrypted. It is always encrypted with a pre-
configured link key, but having knowledge of the link key makes obtaining the network key possible by capturing over-the-air packets using an IEEE802.15.4 packet sniffer application. Exposing the network key could have a very large impact on the security of the network and its vulnerability to security attacks and hacks.
Ich tue mich schwer die Konsequenzen des dort geschriebenen zu erkennen.
Heißt das jemand muss nur den allgemeinen Zigbee Key kennen, was ein Hacker natürlich tut und dann kann er einen Sniffer irgendwo platzieren und der greift dann über die Zeit die Schlüssel aller neu hinzugefügten Geräte ab und kommt damit ins Gateway?
Als abhilfe steht das hier drin:
INSTALL CODES
In ZigBee 3.0, an install code can be used to create the link key used to authenticate a node into a centralized security network and pass the network key to the node. A random install code is assigned to the node in the factory and programmed into the node. The ZigBee stack
within the node derives a link key from the install code using a Matyas-Meyer-Oseas (MMO) hash function. The install code must also be communicated (by unspecified means) for the purpose of commissioning the node into a network. During commissioning, the install code is entered into the Trust Center and the ZigBee stack again derives the same link key from the install code. The Trust Center and node can subsequently use the link key in joining the node to the network.
Ich habe gesehen, dass auf den Sonoff Zigbee Sensoren ein QR-Code ist und dort stehen Zahlen darunter. Ist das dieser Code und wenn ja, wie kann ich ihn zum sicheren Paring nutzen?
Nächster Punkt in dem PDF
WHITE AND BLACK LISTS
Heißt das es gibt für Zigbee / Home Assistant eine Funktion wie in der Fritzbox, in der man sagen kann, nur die bekannten Geräte dürfen sich verbinden, sonst niemand?
Dann noch diese Empfehlung hier:
PREVENTING REJOIN SECURITY ATTACKS
When a device joins the network, a pre-configured link key is used to join the network and decrypt the network key received from the Trust Center. If the same link key is used for every join attempt, it opens up the system to rejoin security attacks. Therefore, the same link key should not be used for any subsequent rejoins. In more detail, if the same link key is allowed to be used for rejoins, it is possible to copy a device’s addressing credentials and spoof a network layer insecure rejoin using a separate device. This would result in the Trust Center passing the network key encrypted with the previously used link key to the cloned device. If the network key finds its way into the wrong hands, it compromises the entire network.
Ich glaube das verstanden zu haben, aber ich habe trotzdem keine Ahung wie ich das nun in Home Assistant umsetzen kann.
genauso hier:
ROLLING THE NETWORK KEY
Once a device has left a network, it is possible to obtain the network credentials from the device, including the network key and any link keys that it had for peers in the network. To prevent this from compromising the network, it is recommended that when a device leaves the network, the Trust Center rolls the network key to a new key, as follows:
- The Trust Center broadcasts a new network key (with a new key sequence number) to all the nodes of the network.
- The Trust Center then broadcasts a Switch Keycommand (with the new key sequence number) to all the nodes of the network.
- Each device in the network switches to the new network key.
keine Ahnung wie ich das umsetzen kann
ind dem PDF folgen dann noch weitere Empfehlungen, bei denen ich keine Ahnung habe wie ich die entsprechenden Einstellungen in Home Assistant vornehmen soll