SSL von einem Mikrocontroller

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

  • Gibt es dafür vorgefertigte Bibliotheken für die eingebettete Seite?
  • Was ist mit einem IC, der das Handshaking und die Entschlüsselung für mich übernehmen kann?
  • Wenn nicht, wie würde ich das selbst machen?
Wenn Sie dies noch nicht gesehen haben, können Sie es wegen seiner geringen Größe, seiner leistungsstarken Funktionen, aber seines nicht günstigen Preises in Betracht ziehen: phidgets.com/products.php?product_id=1072
@gahooa das ist interessant. Ich suche aber nach einer günstigen Alternative. Mein Markt würde 10 oder 100 Stück meines Geräts kaufen, sodass jeder Cent, den ich einsparen kann, dazu beitragen kann, den Artikel marktfähiger zu machen.
Ich hoffe, Sie haben ein großes Mikro. SSL ist ziemlich rechenintensiv.
@Fake Name Ich dachte an einen dsPIC. So wie ich es verstehe, kann das anfängliche Händeschütteln ziemlich schwer sein, aber alles andere ist nicht so schlimm.

Antworten (4)

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

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

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 erhältlich .

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.

Nicht kostenlos, aber nur 5 $.
Sehr billig! Das wusste ich nicht.
@Robert und @Daniel Grillo Ich glaube, es kostet 5 US-Dollar für das Starterpaket, und wenn Sie dann in den Einzelhandel gehen, sind es etwa 2.500 US-Dollar für 5000 Einheiten. Zumindest ist es das dafür: microchip.com/stellent/…
Der ENCx24J600 ist jedoch der Teil, der mich sehr interessiert.

Betrachten Sie diese eingebetteten SSL-Bibliotheken:

http://www.yassl.com/yaSSL/Products-cyassl.html

http://polarssl.org/

http://www.matrixssl.org/

Und vielleicht http://gitorious.org/tropicssl/

Tropicssl und polarssl stammen von http://www.ohloh.net/p/xyssl

Tropicssl und xyssl sind BSD-lizenziert, während alle anderen GPL sind, mit einer Option für eine proprietäre Lizenz für $.

Wenn das System kompliziert genug sein kann, um ein Betriebssystem auszuführen, gibt es viele Tools und Bibliotheken, die diese Aufgabe erledigen 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, steht Ihnen viel Arbeit bevor. Sie benötigen mindestens einen TCP/IP-Stack. Ich würde einen Prototyp mit einem mbed bauen – es gibt einen Forenbeitrag , der darauf hindeutet, dass sie inzwischen eine SSL-Bibliothek haben könnten.

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