Arduino Due HTTPS-Unterstützung

Lesezeit: 4 Minuten

Benutzer-Avatar
Kerl

In früheren Versionen von Arduino, dem limitierenden 8-Bit-Mikrocontroller-Board, scheint es fast unmöglich gewesen zu sein, HTTPS (nicht nur HTTP) zu implementieren. Die neuere Version von Arduino Due bietet jedoch einen 32-Bit-ARM-Kern – siehe Spezifikation hier.

Ich habe versucht, mehrere Netzwerkbibliotheken (libcurl, openssl, yaSSL) zu überprüfen, aber ich habe niemanden gefunden, der bereits für die Arbeit mit Arduino Due portiert wurde.

OpenSSL ist wahrscheinlich zu schwer, um auf diesem Prozessor ausgeführt zu werden, aber ich glaube das jaSSL wie eine eingebettete Bibliothek möglich sein sollte.

Haben Sie Informationen zu einer Bibliothek, mit der ich HTTPS-Anfragen auf Arduino Due auslösen kann?

  • Warum nicht einfach OpenSSL für ARM kompilieren?

    Benutzer529758

    7. April 2013 um 19:47 Uhr

  • @ H2CO3 – 96 KB RAM? Viel Glück.

    – Brett Hale

    7. April 2013 um 19:48 Uhr

  • @BrettHale Nur-Verschlüsselungsteile mit reiner Berechnung? Hash-Init-Tabellen in das ROM oder Programm?

    Benutzer529758

    7. April 2013 um 19:50 Uhr

  • @ H2CO3, du könnte bekommen so etwas wie jaSSL funktionieren, aber die Arduino-Entwicklung ist immer noch im Wesentlichen abfragegesteuert. Es wäre noch viel Arbeit.

    – Brett Hale

    7. April 2013 um 19:53 Uhr

  • Kasse diese Antwort bei der Sicherheitsstapelbörse. Danach ist die einzige andere leichte Bibliothek, die ich kenne, polarSSL

    – Sturmwolke

    9. April 2013 um 18:55 Uhr


Benutzer-Avatar
Lorenz Lo Sauer

Leider ist das zu lang für einen Kommentar.

Keine Out-of-the-Box-Lösung

Von dem, was ich gesammelt habe, gibt es keine einfache Lösung für einen Webserver, der auf dem läuft Atmel SAM3X8E ARM Cortex-M3-CPU das HTTPS out of the box ausgibt. Texas-Instrumente bietet bessere Möglichkeiten im Moment mit ihren Boards ausgestattet mit a Stellaris Mikrocontroller ARM Cortex-M3 CPU.

► Alternative

Es stehen mehrere Optionen zur Verfügung, die kryptografische Funktionen darstellen, auf deren Grundlage man a auslegen und implementieren könnte einfaches sicheres Kommunikationsprotokoll das mit einem zwischengeschalteten Gerät kommuniziert, was wiederum Rapid Application Development und SSL erleichtert.

Dieses zwischengeschaltete Gerät, zum Beispiel ein handelsübliches 70-Dollar-Android-Smartphone, das Ihr Projekt mobil und verbunden hält, führt einen Dienst auf einem bestimmten Port aus, der wiederum mit ihm kommuniziert Amazon SQS. Schon verfügbar. Das mag hässlich oder schwierig klingen, ist aber viel einfacher, als die programmatische Vorarbeit für einen Webserver mit voller TLS-3-Unterstützung auf dem Arduino zu leisten. Letzteres mag bei entsprechender Motivation einfach sein, aber nicht, wenn man nur eine schnelle pragmatische Lösung für das eigene Projekt will.

Kryptographische Bibliotheken

Diskussionen

Nachfolgend finden Sie eine Liste von Diskussionen, die Ihnen den Einstieg erleichtern sollen:

Viele dieser Bibliotheken müssten aber noch angepasst werden Gemeinschaft Experten können Ihnen dabei relativ schnell helfen.

Viel Glück! Wenn es Ihnen freisteht, Ihr Abschlussprojekt auf github hochzuladen, haben Sie gerade ein Dankeschön und einen Follower gewonnen.

  • Eine weitere erwähnenswerte kryptographische Bibliothek ist Cryptlib. Laut der Homepage „bedeutet die hohe Portabilität von cryptlib, dass es auch in einer Vielzahl von benutzerdefinierten eingebetteten Systemumgebungen verwendet wird, darunter AMX, ChorusOS, eCos, FreeRTOS/OpenRTOS, uITRON, MQX, PalmOS, RTEMS, ThreadX, T-Kernel, uC/OS II, VDK, VxWorks und XMK.”

    – autistisch

    20. Februar 2017 um 4:21 Uhr


Benutzer-Avatar
Udo Klein

Meiner Meinung nach ist Arduino (einschließlich DUE) das falsche Werkzeug für schwere und/oder verschlüsselte webbasierte Kommunikation. Ich würde dringend empfehlen, nach geeigneterer Hardware in der gleichen Größe und Preisklasse zu suchen. Sobald Sie in https einsteigen, sind Sie nah genug dran, um auch viele andere Dinge zu wollen, die echte Betriebssysteme bieten. Mit anderen Worten, ich schlage vor, etwas wie den Raspi zu nehmen. Ähnliche Größe und Preis, aber viel leistungsfähiger, insbesondere kann es Linux ausführen. –> HTTPS wird einfach.

Das große Problem mit der https-Unterstützung auf einem Arduino ist die Gefahr, Ihren Prozessor zu überlasten, was das Projekt unrentabel machen könnte.

Sogar eingebettete plattformspezifische Lösungen wie PolarSSL kann zu viel Speicher verbrauchen und zu viel Rechenleistung verbrauchen. Denken Sie daran, dass selbst bei den modernsten Implementierungen die SSL-Unterstützung für eine breite Akzeptanz verallgemeinert werden muss und Komponenten enthalten wird, die Sie nicht für notwendig halten. Es stellt sich auch die Frage, welchen Zertifizierungsstellen Sie vertrauen und wie Sie mit ihnen für Dinge wie den Widerruf von Zertifikaten kommunizieren.

Ich würde stattdessen nach einer Lösung suchen, die an der Oberfläche für Ihre Bedürfnisse nicht so kaputt ist. Etwas wie CurveProtectdie eine Implementierung von ist KurveCP.

Natürlich hängt Ihre Entscheidung weitgehend davon ab, was Sie tun möchten und wie viel Zeit Sie damit verbringen möchten, das Problem zu lösen. PolarSSL hat einen Platzbedarf, der bis zu 30.000 betragen kann (typischerweise fast 100.000).

  • Genau mein Standpunkt. SSL ist sehr ressourcenintensiv und auf echten Betriebssystemplattformen bereits schwierig. Wenn irgend möglich, würde ich versuchen, dies auf einem eingebetteten System zu vermeiden. Auch Ihr Widerrufsrecht ist sehr gültig. Die Schlüsselverwaltung für eingebettete Systeme ist definitiv nicht trivial. Eigentlich ist es nie trivial, egal auf welcher Plattform. Aber eingebettet fügt einige subtilere Wendungen hinzu.

    – Udo Klein

    14. April 2013 um 13:01 Uhr


1382330cookie-checkArduino Due HTTPS-Unterstützung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy