Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller ans Netzwerk(sicher)


von Florian (Gast)


Lesenswert?

Hallo  zusammen,

ich kenn mich einigermaßen mit Mikrocontrollern aus und möchte nun mal 
eine Netzwerkanwendung entwickeln. Ziel ist es einen uC zu haben, der 
Daten sammelt.zb. Temperaturdaten. Diese sollen dann per Smartphone App 
abgefragt werden können.
Idee: Der Mikrocontroller soll als kleiner Server im Netzwerklaufen, bei 
dem sich dann das Handy bei Bedarf die Daten holt. So ist meine ganz 
grobe Idee.

Dann hab ich mal rumgesucht und z.B gefunden, dass man da einen Pi o.ä. 
ganz gut nehmen kann. Allerdings stört mich an der Sache, dass ich dann 
ja ein eigenen kleine PC betreibe, der für meine Begriffe immer 
geupdatet werden muss und relativ gut angegriffen werden kann. Mir ist 
wichtig, dass das Dingen sicher ist, da es ja 24/7 am Netz hängt. Und 
ich hab auch keinen richtigen Überblick, was das Linux noch alles 
veranstaltet im Netz.

Alternativ hab ich noch MICROCHIP  DM320007-C gefunden. Das ist ein ARM 
mit wohl schon geschriebenen TCP/IP Stack.

Habt ihr noch andere Ideen oder Meinungen dazu?

Es sollte nicht in übelsten Programmieraufwand ausarten. Also erstmal 
relativ einfach sein und vorallem sicher.


Vielen Dank für Tipps.

Florian

von rme (Gast)


Lesenswert?

Dreh es um: Statt den Pi via Internet erreichbar und damit angreifbar zu 
machen, lass ihn seine Werte doch selbständig und periodisch an eine 
externe Seite liefern. Dazu reicht irgendein kostenloser Webspace mit 
kleinem Script, das die Werte in eine Datenbank einträgt und dann 
verfügbar macht. So muss der Pi gar nicht von außen erreichbar sein und 
das Risiko ist sehr gering, dass das irgendwie angreifbar ist.

von Dirk D. (dicky_d)


Lesenswert?

Statt nem pi kannst du auch nen microkontroller deiner wahl und irgend 
eine art von netzwerkanbindung nehmen, nen esp8266 oder so wie die 
arduino's das mit dem ethernet machen.
Da kannst du dann auch deine Werte zu der daten-sammel-stelle schicken.

Andersrum, wenn das teil nur aus dem lokalen Netz verfügbar sein soll 
und nicht per internet (ich bin mir bei den Anforderungen nicht sicher) 
musst du dir nicht so große sorgen um deine Sicherheit machen.

wenn du auf dem PI Raspian installierst und unattended-upgrades 
aktivierst werden da sicherheits-updates auch selbstständig installiert.

von Harald (Gast)


Lesenswert?

Hol dir doch ein Board mit Wiznet Chip, z.B. W5500 oder ähnlich. Einfach 
in der Ansteuerung und quasi nicht angreifbar (vielleicht DoS-Attacke)

von Florian W. (florian_w77)


Lesenswert?

Alternativ kannst du dir auch mal Flyport Pro Ethernet bzw. Flyport Pro 
Wifi anschauen. Darauf werkelt ein 16-Bit Pic und es gibt eine eigene 
IDE mit eigenem Framework, die das Nutzen des TCP/IP-Stacks sehr einfach 
macht.

MfG
Florian W.

von Max M. (maxmicr)


Lesenswert?

rme schrieb:
> Dazu reicht irgendein kostenloser Webspace mit
> kleinem Script, das die Werte in eine Datenbank einträgt und dann
> verfügbar macht. So muss der Pi gar nicht von außen erreichbar sein und
> das Risiko ist sehr gering, dass das irgendwie angreifbar ist.

Guter Hinweis. So hab ich das auch vor in einem meiner nächsten 
Projekte. Als Webspace kann ich Heliohost empfehlen, hab da meine 
Testseite schon am laufen.

von Karl M. (Gast)


Lesenswert?

Hier ist noch ein Link zu einem W5500 Board.

http://www.ehajo.de/ethernet-shield-wiznet-w5500.html

von Florian (Gast)


Lesenswert?

Ok, danke für die Tipps,

ich finde den WIZ ganz interessant. Hab mir mal den Code angesehen, 
finde aber kein wirklich einfaches Codebeispiel.
Ich benötige ja eigentlich bloß ein Socket an dem ich auf eine Anfrage 
warte.  Wenn ich die Verbindung aufgebaaut habe, schicke ich einfache 
Daten bzw lausche am Port. Ist dann ja praktisch ne serielle Verbindung. 
Hab sowas mal mit .NET gemacht. Da war das ziemlich leicht. Hier finde 
ich das etwas kryptischer, muss ich ja auch parrallel noch vom DHCP eine 
IP bekommen.

Gibt es da irgendwie so ein Tutorial oder sowas?

von Karl M. (Gast)


Lesenswert?

Guten Morgen,

ein Tutorial für den W5500 ist doch das Datenblatt und die öffentlich 
vorhandenen Programme.

Oder ?

von Patrick C. (pcrom)


Lesenswert?

Dieses Buch habe ich und berscheibt einige Projekten die so etwas machen 
:
http://www.amazon.com/Making-Things-Talk-Sensors-Networks/dp/1449392431

Ist aus 2007 aber das basisprincipe functioniert immer noch.

von Stefan F. (Gast)


Lesenswert?

Beim PC aktualisierst du den Web-Browser, das Email-Programm, den 
Video-Player und den PDF-Reader regelmäßig, damit keine bösartigen 
Seiten fremde Programme einschleusen. All diese Programme wirst du auf 
deinem Raspberry Pi aber wohl nicht installieren oder zumindest nicht 
benutzen.

Beim PC aktualisierst du das Betriebsystem, damit bösartige Programme 
nicht unbemerkt weitere Programme installieren oder andere Programme 
modifizieren. Auch das wird auf dem Raspberry Pi wohl kaum passieren, 
solange du dort nur Software installierst, die offiziell im 
Software-Center bereitgestellt werden.

Sicher - ein gewisses Restrisiko bliebt. Aber das ist geschätzt 100x 
geringer, als auf Geräten, mit denen du im Internet herum surfst und 
spielst.

Da der Wiznet Chip mehrere gleichzeitige Verbindungen unterstützt ist es 
eben nicht ganz so einfach wie ein serieller Port. Gibt's aber auch. Die 
AT Firmware des ESP8266 kann einen Socket 1:1 zum seriellen Port 
durchschleifen. Und dann gibt es noch den altebkeannten Lantronics 
Xport.

Sicher gibt es einige Ethernet/WLAN Chips, die sich über Internet 
praktisch nicht hacken lassen. Ich denke, dass gilt praktisch für fast 
alle. Angreifer aus dem Internet können nicht

- Fremde Software einschleusen.
- Fehlfunktionen ausnutzen, um befehle/Programme auszuführen, die nicht 
vorgesehen sind.

Aber sie können durchaus Befehle ausführen, die in deiner Anwendung 
vorgesehen sind. Dafür kann der Ethernet Chip aber nichts und davor kann 
er nicht schützen!

Der Knackpunkt ist die Anwendung, die du damit aufbaust. Stell Dir einen 
schlechten Türöffner vor, der nicht Passwort-gesichert ist. Den kann 
dann jeder Andere Mensch auch missbrauchen - es sei denn, du schränkst 
den Zugriff auf bestimmte Endgeräte ein. Oder du sorgst für ein 
Passwort, dass niemand erraten kann und niemand belauschen kann.

Wobei man sich bewusst sein sollte, dass es "niemand" nicht gibt. Jedes 
Passwort ist knackbar - es ist nur eine Frage des Aufwandes. Das ist bei 
herkömmlichen Schlössern ebenso. Absoulte Sicherheit gibt es nicht und 
braucht man auch nicht. Angemessene Sicherheit aber schon.

Also mach Dir mehr Gedanken über die Anwendung.

von Stefan F. (Gast)


Lesenswert?

Eine relativ einfache Möglichkeit, unsichere Embedded Systeme zu 
beschützen besteht darin, einen Webserevr mit sicherer Web-Anwendung 
davor zu schalten. Die kann dann gerne auch irgendwo bei einem Webhoster 
extern betrieben werden. Du kannst deinen Home-Router ja so 
konfigurieren, dass er Befehle nur von deinem (externen) Webserver rein 
lässt und alle Fremden abblockt.
1
Internet ------HTTP----> Webserver --------+
2
                                           |
3
                                           |
4
+------<------------Socket-----------------+
5
|
6
|
7
+----> Router/Firewall -----Socket-----> Mikrocontroller

Dann ist es auch relativ leicht, HTTPS mit einer Passwortabfrage zu 
kombinieren.

von Jürgen D. (poster)


Lesenswert?

Wir wäre es denn deinen mini Anwendungsserver gar nicht von Netz aus 
frei zugänglich zu machen sondern du wählst dich mit deinem Handy über 
eine gesicherte VPN Verbindung erst in dein Netz ein greifst dann 
"lokal" auf deine Daten zu.

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.