Forum: Mikrocontroller und Digitale Elektronik HTTPS statt HTTP in Embedded System?


von Herbert (Gast)


Lesenswert?

Hat schon mal jemand HTTPS statt HTTP in einem Embedded System benutzt
(egal ob als Client oder Server), wobei ich als Embedded System kein
Linux-Board meine, sondern einen Bare-Metal uC?

Gibt es vielleicht Beispiel-Open-Source (egal welcher uC),
wo man sich die Implementierung mal anschauen kann bzw.
ausprobieren kann?

Es sollte aber keine "sauteure" (sorry) Lösung sein,
egal ob als Lizenz oder bei den Hardware-Kosten.

Sollte man es selbst entwickeln, was braucht mal alles,
bzw. was gibt es dafür?
SSL, wäre vermutlich mal die wichtigste Komponente.
Vielleicht OpenSSL? PolarSSL? CyaSSL?
MD5? SHA-1, SHA-256?
Verschiedenste Crypto-Algos?
Ein Webserver, der TCP-Stack, die Ethernet-Anbindung kann als
bereits existierend angesehen werden.

Ist sowas auf einem uC (in Software) schnell genug
oder würde man da für kleine Seiten schon mehrere Sekunden warten,
bis die Verschlüsselung durch ist?
Muss ich da eigentlich (als Server) mehr wie eine Verschlüsselung
supported bzw. als Client alle möglichen Verschlüsselungen unterstützen?

Kann man dies als Beispiel zum Verstehen/Lernen nehmen?
http://httptea.sourceforge.net/
(scheint aber von 2009 zu sein, gibt es was besseres?)

Laut der englischen Wikipedia
https://en.wikipedia.org/wiki/Transport_Layer_Security
scheinen die bevorzugten Protokolle TLS 1.0 und SSL 3.0 zu sein?
Ist das mit einem modernen uC machbar?
Sollte man darauf achten, dass eine spezielle Peripherie
(AES, Random-Generator, ...) vorhanden ist?

Es scheint viele Fallstricke zu geben. Hat man da überhaupt eine
Chance ein halbwegs sicheres System zu bekommen
oder bleiben nur kommerzielle Lösungen?
Oder alles halb so wild?

von Peter II (Gast)


Lesenswert?

Herbert schrieb:
> Es scheint viele Fallstricke zu geben. Hat man da überhaupt eine
> Chance ein halbwegs sicheres System zu bekommen
> oder bleiben nur kommerzielle Lösungen?
ja warum denn nicht.

Die Frage ist doch wie schnell es denn gehen soll? Nur davon hängt es ab 
ob man eine Hardware Unterstützung brauch oder nicht.

von Frank K. (fchk)


Lesenswert?

Der Microchip TCP/IP-Stack kann SSL. Dafür empfiehlt sich ein PIC32MX6xx 
oder 7xx mit eingebautem Ethernet-MAC. Aufgrund irgendwelcher 
US-amerikanischen Paranoia musste man sich früher die 
Crypto-Bibliotheken für 5$ einmal kaufen, aber inzwischen sind die frei 
runterladbar.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en560990

Das ganze ist prinzipiell auch für PIC18 verfügbar, dort aber zu 
langsam, um irgendwie sinnvoll eingesetzt zu werden. Auf einem PIC32MX 
läuft das ganze einfach so ohne großen Aufwand und ganz vernünftig.

Nachteil: Es ist zwar Open Source, aber keine Freie Software im 
Debian-Sinne. Dafür ist das Zeugs problemlos in kommerziellen Projekten 
unbegrenzt kostenfrei einsetzbar, sofern es auf einem PIC(18/24/32/ds) 
läuft.

fchk

von Ersi (cell85)


Lesenswert?

Mit dem Keil Embedded TCP-NET geht das .

von c-hater (Gast)


Lesenswert?

Herbert schrieb:
> Gibt es vielleicht Beispiel-Open-Source (egal welcher uC),
> wo man sich die Implementierung mal anschauen kann bzw.
> ausprobieren kann?

Na einfach die entsprechenden Implementierungen für Linux anschauen und 
sinngemäß übernehmen.

> was braucht mal alles,

Eigentlich nur eins wirklich: genug Rechenpower in der Kiste, sonst mag 
sich die Sache schreiben und auch übersetzen lassen, aber nicht wirklich 
sinnvoll benutzen.

von old man (Gast)


Lesenswert?

c-hater schrieb:
> Na einfach die entsprechenden Implementierungen für Linux anschauen und
> sinngemäß übernehmen.

Das ist absoluter Blödsinn! Entweder der Ziel MC hat genügend Speicher 
und eine vernünftige Speicherverwaltung, dann kannst du gleich Linux 
nehmen oder du hast es nicht, dann helfen die Linux Quellen nicht. Die 
setzten viel zu viel Linux Internas und APIs voraus als dass man das 
einfach so auf einen kleinen Controller portieren kann. Es geht dabei 
gar nicht so sehr um die Rechenpower. Bei der Linux-Implementierung wird 
ausgiebig mit dynamisch angelegtem Speicher gearbeitet und es ist auch 
nicht auf minimalen Speicherverbrauch ausgelegt. Eine 
Filesystem-Infrastruktur hat man in der Regel auch nicht. Davon macht 
die Linux Implementierung aber auch regen Gebrauch.

von Fitzebutze (Gast)


Lesenswert?

Hi,

guck Dir doch mal Contiki an..
https://www.sics.se/search/content/contiki

Verkauft sich zwar besser, als es im Endeffekt ist, aber brauchbar ist 
es allemal (und kostenlos).

Wenn es kein Linux-basiertes Networking sein soll, greifen die meisten 
zu uIP vom gleichen Autor. Performt zwar mies, aber tut seinen Job, 
darauf lässt sich auch ein SSL-Layer aufsetzen. Code gibts ne Menge..

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.