Forum: Mikrocontroller und Digitale Elektronik UDP-Verbindung absichern


von Asdf A. (eizi)


Lesenswert?

Hallo,

ich versende UDP-Pakete zwischen zwei Arduinos welche jedoch nicht 
direkt verbunden sind sondern über Switches miteinander kommunizieren.

Mir stellt sich nun die Frage wie ich diese Verbindung absichern könnte?

Bei einer direkten Verbindung ist dies kein Problem da ich einfach alle 
200ms ein Paket versenden würde auf welches der andere Arduino 
antwortet. Sollte die Verbindung unterbrochen werden erkennt dies der 
Arduino da keine Antwort erfolgt und schlägt Alarm.

Bei einer Verbindung über Switches ist dieses Verfahren jedoch nicht 
mehr sicher, da ja jeder die MAC-Adresse faken könnte und eigene Pakete 
versenden könnte. Auch ein Angriff über ARP-Poisoning wäre denkbar..

Wie stelle ich zwischen Arduinos jetzt am besten eine sichere Verbindung 
her?

LG
Max

von Athlon (Gast)


Lesenswert?

Du könntest aus den MAC Adressen der arduinos jeweils eine checksum 
bilden und im Datenstrom mitsenden. Vorausgesetzt, es sind beiden MCs 
immer beide MAC Adressen bekannt.

von Asdf A. (eizi)


Lesenswert?

Athlon schrieb:
> Du könntest aus den MAC Adressen der arduinos jeweils eine checksum
> bilden und im Datenstrom mitsenden. Vorausgesetzt, es sind beiden MCs
> immer beide MAC Adressen bekannt.


Hallo, danke für deine Antwort!


Das verstehe ich nicht, wenn ein Angreifer theoretisch den Switchcache 
vollschreibt und dieser in Folge als HUB agiert oder einen 
ARP-Poisioning Angriff startet kann dieser ja die Checksumme trotzdem 
lesen  und in sein Angreiferpaket auch einfügen oder?

von S. R. (svenska)


Lesenswert?

Faustregel: Definiere die Angriffstypen, vor denen du dich schützen 
möchtest. "Alles" ist unmöglich.

Wenn du damit rechnest, dass das Netzwerk als ganzes kompromittiert ist, 
dann wirst du um harte Krypto nicht herumkommen, entweder indem du eine 
Art VPN benutzt, die Daten verschlüsselst oder zumindest signierst. Ob 
das mit den Arduinos angemessen gut funktionieren kann, weiß ich nicht.

von olibert (Gast)


Lesenswert?

Max E. schrieb:
> Bei einer Verbindung über Switches ist dieses Verfahren jedoch nicht
> mehr sicher, da ja jeder die MAC-Adresse faken könnte und eigene Pakete
> versenden könnte.

Das Problem ist eher umgekehrt: Sobald du ueber ein Level-3 -Device 
gehst (Router) ist die MAC-Adresse nicht mehr die gleiche.

von Kathi (Gast)


Lesenswert?

Wie wärs mit einer OTP Verschlüsselung, jeder Arduino bekommt eine SD 
Karte, Flash o.Ä. mit dem Schlüssel.

von Asdf A. (eizi)


Lesenswert?

S. R. schrieb:
> Faustregel: Definiere die Angriffstypen, vor denen du dich
> schützen
> möchtest. "Alles" ist unmöglich.
>
> Wenn du damit rechnest, dass das Netzwerk als ganzes kompromittiert ist,
> dann wirst du um harte Krypto nicht herumkommen, entweder indem du eine
> Art VPN benutzt, die Daten verschlüsselst oder zumindest signierst. Ob
> das mit den Arduinos angemessen gut funktionieren kann, weiß ich nicht.

Nun ja, man geht ja immer vom schlimmsten Standpunkt aus..:)
Ich denke nicht das der Arduino stark genug für verschlüsselte TLS bzw. 
VPN Verbindungen ist..Was sagst du zu der eventuellen Lösung am Ende des 
Beitrags?




olibert schrieb:
> Max E. schrieb:
>> Bei einer Verbindung über Switches ist dieses Verfahren jedoch nicht
>> mehr sicher, da ja jeder die MAC-Adresse faken könnte und eigene Pakete
>> versenden könnte.
>
> Das Problem ist eher umgekehrt: Sobald du ueber ein Level-3 -Device
> gehst (Router) ist die MAC-Adresse nicht mehr die gleiche.

Was? Die MAC-Adresse der Arduinos bleibt immer gleich, egal ob Router 
oder nicht.


Kathi schrieb:
> Wie wärs mit einer OTP Verschlüsselung, jeder Arduino bekommt eine SD
> Karte, Flash o.Ä. mit dem Schlüssel.


Dies könnte die Lösung sein.


Wenn ich den Arduino automatisch alle 200ms ein Paket senden lasse 
welches ein mit einem Hash verschlüsselt wurde und als Inhalt mit jedem 
Paket eine aufsteigende Zahl sendet und dem zweiten Arduino einen Zähler 
programmiere welcher die Zahl des Datenpakets mit dem internen Zähler 
vergleicht könnte dies klappen oder irre ich mich?

Die verschlüsselten Datenpakete könne zwar auch abgefangen,
gespeichert werden und nachträglich gesendet werden jedoch ist der 
Aufwand doch höher als im Klartext. Oder denkt ihr das dies zu einfach 
zu durchschauen ist?

: Bearbeitet durch User
von Roland P. (pram)


Lesenswert?

Du könntest dich an Keeloq anhängen. Soweit ich weiß ist es relativ 
schwer knackbar (es ist nur eine SideChannel Attacke bekannt: 
http://de.wikipedia.org/wiki/Keeloq)

Hier hab ich auch noch etwas Sourcecode gefunden:

http://www.pittnerovi.com/jiri/hobby/electronics/keeloq/

Gruß
Roland

von PittyJ (Gast)


Lesenswert?

Um es richtig zu machen, könnte man hinter beide Arduinos jeweils 
VPN-Router setzen, die den Datenstrom verschlüsseln.
Kryptographie auf 8-Bittern mit nur 2K Ram würde ich nicht machen 
wollen. Da bleibt ja kaum Platz und Rechenzeit für die eigentliche 
Anwendung.

von jonas biensack (Gast)


Lesenswert?

Gibt es Arduino auch mit xmega? Die haben ein AES-Einheit in hardware. 
Das würde das Ver- und Entschlüsseln schon mal massiv beschleunigen.

Gruß Jonas

von Ellen Moore (Gast)


Lesenswert?

Für eine reine Authentifizierung scheint mir das alles ein wenig heftig 
...

Es ist einfacher ein Kennwort festzulegen, dieses an die Message 
anzuhängen, eine sichere Checksumme mit allem herstellen und das 
Kennwort einfach nicht mitzusenden. Der Empfänger hängt das Kennwort 
wieder an und siehe da - nur wenn das Kennwort bekannt ist, ist das 
Paket echt.

von Max D. (max_d)


Lesenswert?

Kuk dir ab wie es Funkschlüssel für PKWs machen.
Da ist meistens ein LFSR drinnen das mit einem definierten Wert geladen 
wird.
Bei jedem Senden wird dann ein Schritt weiter gezählt.
Damit ist jede Nachricht nur so lange gültig bis eine neuere Nachricht 
kommt. Damit man den Code auch öffentlich machen kann kannst du ja das 
Generator-Polynom aus einem (vom user eingegebenen) Passcode berechnen.
Der Rechenaufwand ist minimal (die Funkschlüssel in Autos haben einen 
lächerlich kleinen µC) und es ist sehr schwer den nächsten Key zu raten.
Wenn es für Autos mit Wert von ein paar zigtausend € gut genug ist, dann 
reicht es auch für einen Arduino....

: Bearbeitet durch User
von Ellen Moore (Gast)


Lesenswert?

> Der Rechenaufwand ist minimal (die Funkschlüssel in Autos haben einen
lächerlich kleinen µC) und es ist sehr schwer den nächsten Key zu raten.

Kommt drauf an wie oft gesendet wird. Je häufiger ich die selben Daten 
sende desdo unsicherer wird es.

von Lattice User (Gast)


Lesenswert?

Ellen Moore schrieb:
>> Der Rechenaufwand ist minimal (die Funkschlüssel in Autos haben einen
> lächerlich kleinen µC) und es ist sehr schwer den nächsten Key zu raten.
>
> Kommt drauf an wie oft gesendet wird. Je häufiger ich die selben Daten
> sende desdo unsicherer wird es.

Und da ein LFSR ein lineares System ist, braucht es nicht viel. Selbst 
für den Autoschlüssel gibt es schon besseres:

http://www.atmel.com/Images/Atmel-2600-AVR411-Secure-Rolling-Code-Algorithm-for-Wireless-Link_Application-Note.pdf

ATiny als Sender impmenetiert AES basierender HMAC. (2.6 kByte Code)

von Frank K. (fchk)


Lesenswert?

Max E. schrieb:

>> Das Problem ist eher umgekehrt: Sobald du ueber ein Level-3 -Device
>> gehst (Router) ist die MAC-Adresse nicht mehr die gleiche.
>
> Was? Die MAC-Adresse der Arduinos bleibt immer gleich, egal ob Router
> oder nicht.

Die MAC-Adressen sind nur innerhalb einer Broadcast Domain von 
Bedeutung. Wird ein UDP-Paket zB über PPP übertragen, wird der 
Ethernet-Header nicht mit übertragen.
Hast Du einen Rechner mit zwei Ethernet-Interfaces, der IP-Pakete von 
einem Interface zum anderen routet, wird die Mac-Adresse nicht mit 
übertragen. Der Router setzt hier seine eigene ein.

fchk

von Asdf A. (eizi)


Lesenswert?

Deswegen gibt es ja IP-Adressen und das ARP-Protokol innerhalb der 
Broadcast Domäne?

von Axel S. (a-za-z0-9)


Lesenswert?

Max E. schrieb:
> ich versende UDP-Pakete zwischen zwei Arduinos welche jedoch nicht
> direkt verbunden sind sondern über Switches miteinander kommunizieren.
>
> Mir stellt sich nun die Frage wie ich diese Verbindung absichern könnte?

Definiere "absichern"! Bevor man über eine Absicherungsmaßnahme 
nachdenken kann, muß man erstmal wissen wovor man sich absichern will.

> Wie stelle ich zwischen Arduinos jetzt am besten eine sichere
> Verbindung her?

Gegenfrage: warum glaubst du, gibt es Netzwerkprotokolle wie TCP und 
darauf aufbauend z.B. HTTPS?

Dein Anspruch, mit UDP eine "sichere" Netzwerkverbindung aufzubauen, ist 
in etwa so sinnvoll, wie über Postkarten ein vertrauliches Gespräch zu 
führen.

von olibert (Gast)


Lesenswert?

Max E. schrieb:
>> Das Problem ist eher umgekehrt: Sobald du ueber ein Level-3 -Device
>> gehst (Router) ist die MAC-Adresse nicht mehr die gleiche.
>
> Was? Die MAC-Adresse der Arduinos bleibt immer gleich, egal ob Router
> oder nicht.

Hier fehlen offensichtlich Netzwerktechnik-Grundlagen. Warum sollte ein 
Router die urspruengliche MAC-Adresse durchreichen ?

von Kaj (Gast)


Lesenswert?

jonas biensack schrieb:
> Gibt es Arduino auch mit xmega?
Nein, aber mit Cortex-M3 (Arduino Due - Atmel Sam3x8e)
Alternativ: Draufgeschissen auf die Arduino kacke. STM32F4 Discovery - 
da bekommst du 2 boards zum preis von einem arduino, deutlich mehr 
leistung, ram usw. und ne crypto/hasheinehit hat das ding auch.

Ich habe ein Problem damit, zu verstehen was der TO moechte:
Max E. schrieb:
> Mir stellt sich nun die Frage wie ich diese Verbindung absichern könnte?
Absichern gegen was genau?

Max E. schrieb:
> Sollte die Verbindung unterbrochen werden
Das ist aber etwas voellig anderes als das:
> Das verstehe ich nicht, wenn ein Angreifer theoretisch den Switchcache
> vollschreibt und dieser in Folge als HUB agiert oder einen
> ARP-Poisioning Angriff startet kann dieser ja die Checksumme trotzdem
> lesen  und in sein Angreiferpaket auch einfügen oder?
Was genau willst du denn jetzt?
Das sind 2 paar Schuhe und die haben nichts mit ein ander zu tun.

Max E. schrieb:
> UDP-Pakete [...]  Verbindung absichern
Von hinten durch die Brust in's Auge... da passt was vorne und hinten 
nicht.

von Steffen R. (steffen_rose)


Lesenswert?

Max D. schrieb:
> Da ist meistens ein LFSR drinnen das mit einem definierten Wert geladen
> wird.
> Bei jedem Senden wird dann ein Schritt weiter gezählt.

Bedeutet UDP nicht:
- jedes Paket kann anders geroutet werden
- die Reihenfolge der empfangenen Pakete kann sich ändern gegenüber der 
gesendeten Reihenfolge
- Pakete können verloren gehen

Ich denke, alls dies müßte bei der Überlegung berücksichtigt werden. 
Klar, im beschriebenen Szenario klingt alles noch sehr lokal und das 
passt das schon. Doch irgendwann überlegt man sich, das Internet 
dazwischenzuschalten...

von Nosnibor (Gast)


Lesenswert?

olibert schrieb:
> Max E. schrieb:
>>> Das Problem ist eher umgekehrt: Sobald du ueber ein Level-3 -Device
>>> gehst (Router) ist die MAC-Adresse nicht mehr die gleiche.
>>
>> Was? Die MAC-Adresse der Arduinos bleibt immer gleich, egal ob Router
>> oder nicht.
>
> Hier fehlen offensichtlich Netzwerktechnik-Grundlagen. Warum sollte ein
> Router die urspruengliche MAC-Adresse durchreichen ?

Hier liegt offensichtlich ein Mißverständnis vor. Natürlich behalten die 
Arduinos ihre MAC-Adressen, aber in den Ethernet-Paketen stehen sie 
nicht mehr drin, sobald mindestens ein Router dazwischen steckt.

Aber das ist auch egal, die MAC-Adressen schützen nicht gegen einen 
Angreifer, der seine eigene Netzwerkkarte einigermaßen unter Kontrolle 
hat.

Schützen kann nur ein Geheimnis, das beide Arduinos kennen und der 
Angreifer nicht. Das Geheimnis verwendet man dann als Schlüssel für 
einen keyed hash, mit dem die Nachrichten "signiert" werden.
Und gegen diverse replay- und Verzögerungsangriffe hilft am besten ein 
Challenge-Response-Verfahren: eine Seite denkt sich eine Zufallszahl 
aus, schickt sie an die Gegenseite, und die baut diese Zahl in ihre 
Antwort ein (natürlich mit dem Hash gesichert). Dann weiß der Empfänger, 
daß die Antwort "frisch" ist, d.h. höchstens so alt wie die Zufallszahl.

Das Problem dabei ist, daß ein richtiger Hash für einen AVR ein etwas 
dicker Brocken ist (geht zwar, aber eben nicht so einfach nebenbei). Da 
kann man versuchen, auf der Grundlage eines symmetrischen 
Verschlüsselungsalgorithmus etwas zu basteln, aber das ist kniffelig, 
wenn die Nachricht länger als die Blockgröße des Algorithmus ist. 
Außerdem ist ein AES für den AVR immer noch ein dicker Brocken (wenn 
auch nicht so dick wie ein Hash). Dann nimmt man einen anderen 
Algorithmus, z.B. XTEA, aber der hat dann wieder eine kleinere 
Blockgröße...

von Bart (Gast)


Lesenswert?

Für eine sichere Datenübertragung ist bei UDP die jeweilige Anwendung 
zuständig. Ein TCP mit kastrierten Kontrollfunktionen welche du wieder 
hinzufügst?

UDPS, spannend

von .... (Gast)


Lesenswert?

schon bitter zu sehen wie hilflos hier einige sind wenns um sicherheit 
geht... HMAC reicht doch für das was er fordert?! und das bekommt man 
mit nem atmega locker hin

von Lattice User (Gast)


Lesenswert?

.... schrieb:
> schon bitter zu sehen wie hilflos hier einige sind wenns um sicherheit
> geht... HMAC reicht doch für das was er fordert?! und das bekommt man
> mit nem atmega locker hin

Ja das geht locker, siehe dazu auch meinen Link auf eine Atmel APP Note 
weiter oben.

Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine 
Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge 
nicht 100% garantiert werden kann.

von Peter II (Gast)


Lesenswert?

Lattice User schrieb:
> Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine
> Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge
> nicht 100% garantiert werden kann.

Die Frage ist ob er überhaupt mehre Pakete abschickt. Wenn er nach jedem 
Paket auf eine Antwort wartet, dann kann sich auch die Reihenfolge nicht 
ändern, weil es immer nur ein paket gibt.

von Asdf A. (eizi)


Lesenswert?

Axel Schwenke schrieb:

> Definiere "absichern"! Bevor man über eine Absicherungsmaßnahme
> nachdenken kann, muß man erstmal wissen wovor man sich absichern will.
>
Das habe ich doch beschrieben. Es soll wenn jemand aus irgendeinem Grund 
die Datenpakete zwischen den beiden Arduinos abfängt nicht möglich sein 
Rückschlüsse auf den Paketinhalt zu schließen.

>
> Gegenfrage: warum glaubst du, gibt es Netzwerkprotokolle wie TCP und
> darauf aufbauend z.B. HTTPS?

Um ein Standardprotokoll für viele Enduser zu haben.


>
> Dein Anspruch, mit UDP eine "sichere" Netzwerkverbindung aufzubauen, ist
> in etwa so sinnvoll, wie über Postkarten ein vertrauliches Gespräch zu
> führen.

Nun ja, es ist mir klar das UDP natürlich Übertragungstechnisch einige 
Nachteile gegenüber TCP hat, jedoch sind diese in einem Lokalen Netzwerk 
zu vernachlässigen.

Kaj schrieb:
> Max E. schrieb:

> Das ist aber etwas voellig anderes als das:
>> Das verstehe ich nicht, wenn ein Angreifer theoretisch den Switchcache
>> vollschreibt und dieser in Folge als HUB agiert oder einen
>> ARP-Poisioning Angriff startet kann dieser ja die Checksumme trotzdem
>> lesen  und in sein Angreiferpaket auch einfügen oder?
> Was genau willst du denn jetzt?
> Das sind 2 paar Schuhe und die haben nichts mit ein ander zu tun.

Nein sind SIE nicht, beide Angriffe haben zur Folge das die Datenpakete 
zwischen den Arduinos gelesen werden können, Darum gehts.

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Lattice User schrieb:
> Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine
> Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge
> nicht 100% garantiert werden kann.

Noch ein kleines Challenge-Response-Verfahren drumherum gebastelt und 
man ist auf der sicheren Seite. Bei geschicktem Design des Protokolls 
wäre dann die Nachrichtenreihenfolge egal.

Wenn man nicht zwingend State-of-the-Art-Krypto benötigt kann man auch 
darüber nachdenken "kleine" Algorithmen wie z.B. XXTEA-Verschlüsselung 
als MAC zu missbrauchen. In "professionellen" bzw. sicherheitskritischen 
Anwendungen wäre das natürlich ein No-Go.

Bin gerade auf dem Weg heim, werde schauen, dass ich nachher mal einen 
kleinen Vorschlag für eine Lösung skizziere.

: Bearbeitet durch User
von Nosnibor (Gast)


Lesenswert?

Max E. schrieb:
>> Definiere "absichern"! Bevor man über eine Absicherungsmaßnahme
>> nachdenken kann, muß man erstmal wissen wovor man sich absichern will.
>>
> Das habe ich doch beschrieben. Es soll wenn jemand aus irgendeinem Grund
> die Datenpakete zwischen den beiden Arduinos abfängt nicht möglich sein
> Rückschlüsse auf den Paketinhalt zu schließen.

Ok, das ist jetzt neu. Nun, gegen unbefugte Mitleser hilft natürlich 
Verschlüsseln.
Meist will man außerdem, daß der Angreifer nicht erkennt, wenn man die 
gleiche Nachricht noch einmal sendet (oder Nachrichten teilweise 
übereinstimmen), also sollte jede Nachricht einen Zähler oder so etwas 
enthalten (damit der Klartext inhaltsgleicher Nachrichten sich 
unterscheidet), und ein Blockalgorithmus im ECB-Modus verbietet sich 
auch (weil dann gleiche Schlüsseltextblöcke für gleiche Klartextblöcke 
stehen würden).
Der IPsec-Standard war mal für genau solche Anwendungen gedacht. 
Irgendein Blockalgorithmus im CBC-Modus, als IV nimmt man den letzten 
verschlüsselten Block vom vorigen Paket. Nachteil ist, daß man den IV 
ausdrücklich mitschicken muß, die Pakete werden also alle um eine 
Blockgröße länger.

von .... (Gast)


Lesenswert?

Lattice User schrieb:
> Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine
> Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge
> nicht 100% garantiert werden kann.

Wenn er ne sequenznummer hat und die vom hmac mit geschützt is?

von greg (Gast)


Lesenswert?

Lattice User schrieb:
> Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine
> Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge
> nicht 100% garantiert werden kann.

Also sich nicht wiederholende Nonce/IV ist doch absoluter Standard, 
jedenfalls bei seriöser Kryptographie.

BTW: warum HMAC/CBC/usw? Einfach OCB nehmen, das macht beides!

von Lattice User (Gast)


Lesenswert?

.... schrieb:
> Lattice User schrieb:
>> Aber ein HMAC alleine schützt nicht vor Replay Attacken. Wenn das eine
>> Anforderung ist wirds halt komplizierter, da bei UDP die Reihenfolge
>> nicht 100% garantiert werden kann.
>
> Wenn er ne sequenznummer hat und die vom hmac mit geschützt is?

Vorrausgestzt diese Sequenznummer zählt auch über Neustarts hinweg, d.h. 
beide Seiten müssen sie ständig in einen nichtflüchtigen Speicher 
ablegen.

von Lattice User (Gast)


Lesenswert?

greg schrieb:

>
> BTW: warum HMAC/CBC/usw? Einfach OCB nehmen, das macht beides!

Patentverseucht.

von greg (Gast)


Lesenswert?

Lattice User schrieb:
> Patentverseucht.

1. in den USA
2. für Open-Source-Software und/oder nichtkommerzielle Zwecke gibt es 
eine unbegrenzte, kostenlose Patentlizenz
3. ansonsten nett fragen, der Patentinhaber ist kein Patent-Troll
4. für Hobbyisten völlig egal
5. who cares :)

Siehe http://web.cs.ucdavis.edu/~rogaway/ocb/license.htm

von Axel S. (a-za-z0-9)


Lesenswert?

Max E. schrieb:
> Axel Schwenke schrieb:
>
>> Definiere "absichern"! Bevor man über eine Absicherungsmaßnahme
>> nachdenken kann, muß man erstmal wissen wovor man sich absichern will.
>
> Das habe ich doch beschrieben. Es soll wenn jemand aus irgendeinem Grund
> die Datenpakete zwischen den beiden Arduinos abfängt nicht möglich sein
> Rückschlüsse auf den Paketinhalt zu schließen.

Nein, das hast du oben nicht so beschrieben. Da ging es dir darum, daß 
niemand eigene Pakete einschleusen kann:

Max E. schrieb:
> ... ist dieses Verfahren jedoch nicht
> mehr sicher, da ja jeder die MAC-Adresse faken könnte und eigene Pakete
> versenden könnte.

Und irgendwie ging es auch noch um verlorene Pakete.

Solange du nicht genau spezifizierst, gegen welche Art von Angriff du 
dich absichern willst, so lange kann dir auch keiner eine fundierte 
Antwort geben.

>> Gegenfrage: warum glaubst du, gibt es Netzwerkprotokolle wie TCP und
>> darauf aufbauend z.B. HTTPS?
>
> Um ein Standardprotokoll für viele Enduser zu haben.

Das auch. Vor allem aber, um einige der angeführten Probleme zu lösen. 
TCP kümmert sich z.B. um verlorene Pakete. SSL/TLS (als Basis von HTTPS) 
erlaubt die zuverlässige Identifikation beider Endpunkte und 
verschlüsselt versendete Inhalte. Es schützt (wenn korrekt verwendet) 
also sowohl vor passiven Mitlesern als auch vor aktiven Störern, die 
z.B. versuchen ihre eigenen Pakete einzuschleusen.

>> Dein Anspruch, mit UDP eine "sichere" Netzwerkverbindung aufzubauen, ist
>> in etwa so sinnvoll, wie über Postkarten ein vertrauliches Gespräch zu
>> führen.
>
> Nun ja, es ist mir klar das UDP natürlich Übertragungstechnisch einige
> Nachteile gegenüber TCP hat, jedoch sind diese in einem Lokalen Netzwerk
> zu vernachlässigen.

Ach ja? Ist dir noch nicht aufgefallen, daß zumindest einige deiner 
Probleme genau von TCP adressiert werden? Und wieder andere von auf TCP 
aufbauenden Protokollen? Was soll vor diesem Hintergrund nochmal der 
Vorteil von UDP sein?


XL

von Steffen R. (steffen_rose)


Lesenswert?

Um welche Datenmengen je 200ms geht es eigentlich?
Für nur wenigen Byte (Licht an/aus) sind viele der beschriebenen 
Verfahren nicht optimiert.

von S. R. (svenska)


Lesenswert?

Max E. schrieb:
> Nun ja, man geht ja immer vom schlimmsten Standpunkt aus..:)

Nein, geht man nicht. Am Ende steht eine Kostenabwägung zwischen "was 
kostet der zusätzliche Schutz" und "was ist der schlimmste zu erwartende 
Verlust, wenn der bereits vorhandene Schutz versagt".

> Ich denke nicht das der Arduino stark genug für verschlüsselte TLS bzw.
> VPN Verbindungen ist..Was sagst du zu der eventuellen Lösung am Ende des
> Beitrags?

Soweit ich das verstehe, willst du dich schützen vor:
- kaputten/verzögerten Paketen
- eingeschleusten Paketen
- Mithörern
(- zusätzlich physischen Zugriff?)
Was noch? Du spezifizierst das nie! Hier ein Bröckchen, da ein 
Bröckchen, "am besten ALLES" ist eben nicht die richtige 
Vorgehensweise! (Und wissenschaftlich schonmal garnicht.)

Zusätzlich wird es nochmal schwieriger, wenn du immer wieder die 
gleichen Daten regelmäßig überträgst (z.B. ein Sensor, wenn sich der 
Wert nicht ändert).

Wenn du dich vor allen Angriffen schützen willst, dann kannst du 
deinen Arduino wegwerfen, weil ordentlich harte, (asymmetrische) Krypto 
in schnell und klein macht der nicht.

Definiere die Szenarien, dann findet man auch Lösungen. Definiere keine 
Szenarien und die Lösung lautet "stell einen PC daneben, der ein VPN 
baut".

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.