Ich erwäge ein IoT-Gerät, das mit oder ohne Internetzugang mit meinem lokalen Netzwerk verbunden ist (Standardeinstellungen, kein VPN, kein NAT, keine DMZ). Mein Gerät wird als HTTP-Server ausgeführt, der einen RPC-Mechanismus mit Authentifizierung und Autorisierung bietet. Es bewirbt sich mit mDNS und ich spreche mit meiner mobilen App oder meinem RaspberryPi.
Es scheint, dass die Norm in der IoT-Entwicklung darin besteht, gegenseitiges (bidirektionales) SSL zu haben. Bedeutet das, dass One-Way-SSL meinen Verkehr nicht sichern kann? Warum?
Anmerkungen:
- Ich verstehe die technischen Unterschiede zwischen Einweg- und Zweiweg-SSL, ich verstehe nicht, warum Einweg (fast) nie in der IoT-Produktion berücksichtigt wird.
- Ich verstehe, dass es schwierig ist, gegenseitiges SSL für ein lokales Gerät zu haben: Sie müssen den öffentlichen Schlüssel und das Zertifikat des Servers für den Client freigeben und umgekehrt. One-Way hingegen scheint einfacher zu sein (erfordert keine Benutzeraktion).
- Einige massenproduzierte Geräte wie Philips Hue hätten lieber einen offenen und ungesicherten lokalen http-Endpunkt als eine Einweg-SSL-Verschlüsselung. Warum sollte man diese Wahl treffen?
- Ich erwarte, dass diese Frage nicht meinungsbasiert ist. Entschuldigung, wenn dies der Fall ist.
Im Allgemeinen ist TLS für viel mehr als x.509 geeignet, aber viele Implementierungen beschränken es auf nur x.509.
x.509 ist eine Technik für ein sicheres indirektes Vertrauen. "A" vertraut "B", wenn "B" ein Zertifikat hat, das von "C" signiert ist, und "C" von "A" als vertrauenswürdig eingestuft wird. Das funktioniert auch im wirklichen Leben; Sie vertrauen jemandem, den Sie nicht kennen, wenn ein Brief von einer vertrauenswürdigen Person unterschrieben vorgelegt wird. Vielleicht sehen Sie die Falle: Wenn der Brief sagt, geben Sie bitte eine Tasse Kaffee, die Sie Ihrem Auto nicht geben werden. Daher sind die zusätzlichen Informationen im Zertifikat auch für den Umfang des Vertrauens relevant. Aus diesem Grund enthält ein Server normalerweise seinen DNS-Namen oder seine IP-Adresse im Zertifikat. Im Allgemeinen können Sie unterschiedliche Informationen angeben (z. B. "Wohnzimmerlampe"), aber viele Implementierungen sind auch zumindest vorkonfiguriert, um das DNS / IP-Material zu verwenden / zu überprüfen. Und das alles funktioniert nur, wenn sich jemand um das Vertrauenswürdige kümmert. "
Wenn Sie Zeit damit verbringen können, überprüfen Sie Ihre Implementierung, wenn sie auch PSK-Verschlüsselungssuiten bietet. Wenn nicht, können Sie möglicherweise die "Validierungsprüfung" des Serverzertifikats anpassen. Aber es erfordert viel Lesen, um eine gute Lösung zu finden. Und manchmal bietet die verwendete TLS-Implementierung das einfach nicht.
quelle