SSL von einem Mikrocontroller

12

Ich möchte ein eingebettetes Gerät herstellen, das auf sichere Weise mit einem Webserver kommunizieren kann. Ich würde es vorziehen, Standard-SSL zu verwenden, damit der Webserver mein Gerät ähnlich wie einen Webbrowser anzeigt.

  • Gibt es Prebuit-Bibliotheken für die eingebettete Seite, um dies zu tun?
  • Was ist mit einem IC, der das Handshaking und die Entschlüsselung für mich erledigt?
  • Wenn nicht, wie würde ich das selbst machen?
Kellenjb
quelle
Wenn Sie dies nicht gesehen haben, können Sie es für seine geringe Größe, leistungsstarken Funktionen, aber nicht günstigen Preis halten: phidgets.com/products.php?product_id=1072
gahooa
@gahooa das ist interessant. Ich suche allerdings eine günstige Option. Mein Markt würde 10 oder 100 meiner Geräte kaufen, sodass jeder Cent, den ich einsparen kann, dazu beitragen kann, den Artikel marktfähiger zu machen.
Kellenjb,
1
Ich hoffe du hast ein GROSSES Mikro. SSL ist ziemlich schwer, rechnerisch.
Connor Wolf
@Fake Name Ich dachte an ein dsPIC. So wie ich es verstehe, kann das anfängliche Händeschütteln ziemlich schwer sein, aber alles andere ist nicht schlecht.
Kellenjb

Antworten:

4

Ich schlage den Microchip TCP Stack vor . Microchip bietet einen kostenlosen lizenzierten TCP / IP-Stack an, der für PIC18, PIC24, dsPIC und PIC32 optimiert ist.

Der TCP / IP-Stack von Microchip enthält die SSL-Funktion (Secure Sockets Layer).

Aber es ist nicht kostenlos. Siehe unten:

Um den Beschränkungen der US-Exportkontrolle zu entsprechen, muss der Verschlüsselungsteil des SSL-Moduls separat von Microchip erworben werden. Die Bibliothek der Datenverschlüsselungsroutinen (SW300052) ist gegen eine geringe Gebühr unter http://www.microchipdirect.com/productsearch.aspx?Keywords=SW300052 verfügbar .

Für bessere Ergebnisse können Sie ENCx24J600 verwenden , das über eine integrierte AES-Verschlüsselungs- / Entschlüsselungs-Engine und andere Sicherheits -Engines verfügt.

Daniel Grillo
quelle
1
Nicht frei, aber nur 5 $.
Robert
Sehr günstig! Ich wusste das nicht.
Daniel Grillo
1
@Robert und @Daniel Grillo Ich glaube, das Starterpaket kostet 5 US-Dollar, und wenn Sie dann in den Einzelhandel gehen, kostet es etwa 2.500 US-Dollar für 5.000 Einheiten. Zumindest ist das so: microchip.com/stellent/…
Kellenjb
Der ENCx24J600 ist jedoch der Teil, der mich sehr interessiert.
Kellenjb
2

Wenn das System so kompliziert sein kann, dass ein Betriebssystem ausgeführt werden kann, gibt es zahlreiche Tools und Bibliotheken, die diese Aufgabe übernehmen können. Auf einem eingebetteten Linux-System können Sie wget mit SSL verwenden. Auf jedem System mit höheren Sprachen wie Python oder Ruby unterstützt die Netzwerkbibliothek ( Python SSL ) SSL. Wenn Sie nur Zugriff auf C haben, können Sie mithilfe der OpenSSL-Bibliothek etwas schreiben .

Wenn es kein Betriebssystem gibt, werden Sie wahrscheinlich viel arbeiten müssen. Sie benötigen mindestens einen TCP / IP-Stack. Ich würde einen Prototyp mit einem mbed bauen - es gibt einen Forumsbeitrag , der darauf hinweist , dass sie möglicherweise bereits eine SSL-Bibliothek haben.

pingswept
quelle
1

Dies scheint auch AES SSL zu unterstützen: http://www.lantronix.com/device-networking/embedded-device-servers/xport.html

powtac
quelle
1
Ich glaube nicht, dass dies tatsächlich SSL unterstützt - AES ist nur eine symmetrische Verschlüsselung, die von SSL verwendet werden kann, aber zum Beispiel erfordert der Handshake andere Schritte, die (normalerweise) RSA und SHA-1 beinhalten. Allerdings hat Lantronix jetzt XPort AR, das anscheinend eine Version von SSL unterstützt. Lantronix.com/device-networking/embedded-device-servers/… aber es ist nicht billig.
thom_nic