Geräteauthentifizierung

7

Wie soll ich mein Gerät authentifizieren? Ich habe ein Arduino Yun, das einen "Daemon" auf der OpenWRT-Seite ausführt. Der Dämon liest Befehle von meinem Nachrichtenbroker, führt sie aus und gibt den Wert zurück.

Vor der Kommunikation mit dem Broker sollte das Gerät authentifiziert werden (glaube ich). Was ist der richtige Fluss?

Muss ich es überhaupt authentifizieren? Wenn die Broker-Anmeldeinformationen in das Gerät eingebettet sind, müsste ich dies möglicherweise nicht tun. Aber ich bin mir nicht ganz sicher.

Lucavallin
quelle

Antworten:

4

MQTT unterstützt die Authentifizierung mit Benutzername / Kennwort und clientseitige Zertifikate, um den Client beim Broker zu authentifizieren.

Durch die Verwendung von Zertifikaten können Sie auch überprüfen, ob der Broker nicht imitiert wird, wenn Sie das Anheften von Zertifikaten verwenden.

hardillb
quelle
Beachten Sie, dass diese Schemata normalerweise nicht vor einer ursprünglich authentischen, aber jetzt kompromittierten Client-Box schützen, die Datenverkehr ausspioniert, der für andere Clients bestimmt ist, die anderen Benutzern gehören.
Chris Stratton
1
Nein, aber ein gut erstellter Themenbaum und eine ACL stellen sicher, dass ein gefährdeter Client nur den für diesen Client bestimmten Datenverkehr sehen kann, und die Möglichkeit, ein Zertifikat zu widerrufen, wird ihn abschneiden. Schlüssel / Zertifikate sollten nach Möglichkeit in einem sicheren Element aufbewahrt werden
hardillb
Ich glaube, Sie müssen ein Plugin verwenden, um eine solche Trennung zu ermöglichen - es ist leider keine der entworfenen Funktionen. In Bezug auf Schlüssel spielt es keine Rolle, ob sie sich in einem sicheren Element befinden - sie müssen pro Instanz des Clients eindeutig sein , und so ziemlich die gesamte Fähigkeit des Clients ist die Angriffsfläche, mit der jemand möglicherweise das machen könnte Der Client verwendet seinen Schlüssel für einen vom Hersteller nicht beabsichtigten Zweck. Anstatt dies zu verhindern, müssen Sie die Möglichkeiten eines Schlüssels einschränken.
Chris Stratton
Für alles, was ich beschrieben habe, wird kein Plugin benötigt (aber das Moskito-Plugin kann die Verwaltung vereinfachen). Und ja, eine eng gebundene ACL, die auf die richtige Weise mit der Zertifikat- / Schlüsselidentität verknüpft ist, aber da die Frage unglaublich vage war, war eine Antwort auf hoher Ebene wahrscheinlich gut genug. Fühlen Sie sich frei, Ihre eigenen hinzuzufügen, wenn Sie möchten.
Hardillb