2016-07-27 46 views
-2

Wir müssen einen Weg finden, die Daten von den IoT-Geräten zum Cloud-Server zu schützen. Wir verwenden MQTT für die Nachrichtenübermittlung.TLS oder IPSec mit AES für IoT-Sicherheit

Da wir STM32 in unseren IoT-Geräten verwenden, scheint TLS keine praktikable Lösung zu sein, da auf der STM32-Karte nur sehr wenig ROM (ca. 60K) zur Verfügung steht.

Und wir verwenden GPRS als die Kommunikation. Es unterstützt auch nicht TLS.

Aber da AES allein nicht ausreicht, denke ich über die Verwendung von IPSec für die Sicherheit der Transportschicht nach.

Kann jemand einen Vorschlag zu den folgenden Fragen geben?

1. Gibt es eine Möglichkeit, TLS in der Umgebung mit begrenztem ROM zu verwenden?

2. Kann IPSec in einer solchen IoT-Umgebung verwendet werden?

3. Ist IPSec + AES ausreichend oder andere Sicherheit, die wir berücksichtigen müssen?

Antwort

0

IPSec ist eine Tunneling-Technologie - das bedeutet, dass Sie zwei Tunnel-Endpunkte benötigen: ein einzelnes IoT-Gerät und eines in der Cloud (oder besser in der Cloud, an die Sie die Daten senden). IPSec-Endpunkte sind von dem, was ich nicht sehr häufig weiß.

Daher wäre TLS die empfohlene Lösung. Ich habe keine Erfahrung, wie viel ROM eine TLS-Implementierung benötigt, aber Sie sollten in der Lage sein, die Größe zu verringern, indem Sie die TLS-Bibliothek selbst kompilieren. Die meisten TLS-Bibliotheken sind nur groß, weil sie 4 SSL/TLS-Versionen und Dutzende von Verschlüsselungscodes unterstützen müssen.

Deaktivieren Sie alle nicht verwendeten Modi (SSL, TLSv1, TLSv1.1) und Verschlüsselungen. Sie müssen prüfen, welche Chiffren von Ihrem Cloud-Service-Provider unterstützt werden und diese entsprechend in der TLS-Bibliothek anpassen. Am Ende solltest du nur TLSv1.2 behalten und man kann zwei Chiffren sein.

+0

Wir verwenden GPRS als die Kommunikation. Es unterstützt auch nicht TLS. Sollten wir in diesem Fall nur AES verwenden? –

+0

Es tut mir leid, aber was Sie nehmen, ist Unsinn (es sei denn, Sie sprechen nicht über das weltweit verwendete Standard-GPRS). GPRS bietet einen IP-Kanal und auf jedem IP-Kanal können Sie eine TCP-Verbindung und somit auch eine TLS-Verbindung aufbauen (da eine TLS-Verbindung nur eine TCP-Verbindung mit verschlüsseltem Inhalt ist). Und wenn Sie UDP anstelle von TCP verwenden müssen, können Sie stattdessen D-TLS (für UDP) verwenden. – Robert

+0

Danke für die Korrektur. Ja, GPRS unterstützt TLS. Was ich nicht klar gemacht habe, ist, dass wir derzeit MQTT verwenden, das GPRS nicht unterstützt. Wenn wir TLS verwenden, müssen wir https anstelle von MQTT verwenden. Irgendwelche Vorschläge dazu? –