Avatar von melogyma
  • melogyma

mehr als 1000 Beiträge seit 12.01.2002

Re: Kann jemand den Informationsweg genauer erklären?

iMil schrieb am 17.02.2017 13:52:

die idee eines message-brokers ist, dass man sich als empfänger einer solchen nachricht dort anmeldet, um dann neue nachrichten abzuholen.

sorry, das ist nur teilweise richtig, ja man muss sich anmelden, die nachrichten muss man aber nicht abholen, sondern man wählt ein oder mehrere Topic(s) aus, die man haben möchte. Der Broker pusht dann die Nachrichten des Topics zum empfäner. Der client muss also nichts aktiv abholen, er horcht nur ob eine Nachricht rein kommt für die er sich subscribt hat.

wie bei einem schwarzen brett

der sender schreibt eine auf auf die tafel, auf dem seine nachricht steht.
die tafel lässt jeden, der sich angemeldet hat, diese nachricht einmal lesen. (haben alle angemeldeten diese nachricht gelesen, wird sie von der tafel gelöscht)

nun kann man es zulassen, dass sich jeder anmelden und die nachrichten lesen kann, oder nicht.

ebenso ist es mit dem einstellen der nachrichten.
das erfolgt entweder 'offen', für jeden möglich, oder nicht.

und beim MQTT fehlt eine zwingend vorgeschriebene möglichkeit, sich anzumelden, um nachzuweisen, dass man der ist, der die nachrichten einstellen/lesen darf, und die möglichkeit, den gesamten verkehr zu verschlüsseln.

Auch das ist nicht richtig, im Beispiel des mosquitto Brokers kann man im einfachsten Fall zwei Dateien einbinden, einmal ein ACL File und einmal ein USER/Passwort file.
Im User/Paswort File wird festgelegt welcher Nutzer sich anmelden darf, im ACL file Legt man fest wo der User lese und Schreibrechte hat. Diese beiden Dateien werden dann in der mosquitto.conf Datei eingebunden und schon darf nur der das lesen wofür er die Rechte hat.
Ja das schließt zwar erst mal nicht aus, dass man den User ist der man ist, weil Anmeldungen sind nicht Zertifiziert, dies kann man aber dann Softwareseitig lösen.

Kurz: Ich Betreibe über mosquitto einen Messenger. Eine android App, und eben der genannte mosquitto Broker. mit der Einstellung die ich oben gennant habe ist es unmöglich in anderen Topics zu lesen außer dem eigenen Topic welches im ACL File definiert wurde, dieses Topic ist die ID des Clients. Die Nachrichten-Verschlüsselung findet derzeit noch per PGP statt, dazu gibt es eine Schreibberechtigung in einem Topic mit der eigenen Client ID, dort wird der öffentliche PGP Schlüssel gespeichert, alle anderen bekommen auf dieses Topic bzw. Untertopic leseberechtigung. z.B. Man definiert dann im ACL-File
folgendes:

user
topic readwrite phone/<telefonnummer>
topic write phone/#
topic write key/<telefonnummer>
towpic read key/#

Damit kann man dem User lese und schreibrecht auf seine telefonnummer geben, heißt, er bekommt Nachrichten die auf diesem topic ankommen und kann sich selbst schrieben "readwrite", er kann aber allen unter phone eine Nachricht zukommen lassen, dafür steht das # hinter phone/. Zuerst muss er aber den öffenltichen Schlüssel des Empfängers auslesen, daher hat er die Leseberechtigung unter key/ für alle Benutzer. Allerdings darf er alleine nur seinen public-Key veröffenltichen daher das write in key/ und seiner telefonnummer.

Dies ist jetzt nur Sympolisch geschrieben, um es zu erklären, in Verbindung mit beiden Dateien, also dem, im einfachsten Fall, acl und pw File kann man die User darauf einschränken was sie dürfen.

und zwar als vorgabe.

da es nicht zwingend vorgeschrieben ist, wird es von den allermeisten nicht gemacht.
"weil das system nicht die rechenleistug hat...."
(faule ausrede)

Richtig, es ist ein Faule ausrede. jetzt bin ich unschlüssig ob ich dich richtig verstanden habe, du weißt doch anscheinend, dass es die von mir beschriebene Möglichkeit gibt.
Hmmm, ok, nichts für ungut.

Bewerten
- +
Anzeige