SSL in der ESP8266 (Arduino-Bibliothek) - Wie behandeln Zertifikat ändert?

Ich bin mit der Arduino-Bibliothek für den ESP8266.

Als für jetzt, um die SSL-Anforderung mit HTTPClient müssen Sie die SSL-Fingerabdruck.
Es gibt keine Möglichkeit, jedes Zertifikat akzeptieren im moment (mit Bibliothek Methoden).

Ich Frage mich, wie Ihr Jungs damit umgehen, denn der Fingerabdruck kann im Laufe der Zeit ändern.

Sollte ich meine server-fingerprint über HTTP von einem anderen Endpunkt und dann HTTPS verwenden? Oder gibt es vielleicht einen besseren Ansatz?

  • Should I get my server's fingerprint over HTTP from another endpoint and then use HTTPS keine. Da die HTTP-Verbindung abgehört werden kann und beliebige Daten gesendet werden können (denken: ARP-Spoof auf Angreifer-controller-HTTP(S) server), könnte ein Angreifer Ihnen seine eigenen Zertifikat Fingerabdruck, und dann würden Sie akzeptieren eine man-in-the-middled, die einem Angreifer die HTTPS-server-Verbindung, da hat es den richtigen Fingerabdruck. Auch, zu klären, welche Bibliothek und Methoden genau verwendest du akzeptieren, dass dieser "Fingerabdruck". Ich nehme an, es ist die signatureValue des cert.?
  • Die Art und Weise würden Sie in der Regel tun dies, indem Sie zwei Möglichkeiten: Entweder fügen Sie das root-Zertifikat der Domäne auf die ESPs-firmware, und dann lassen Sie es überprüfen, dass der server über ein Zertifikat verfügt, die ordnungsgemäß unterzeichnet von Ihrem root-cert. Die andere Möglichkeit wäre, dass nur eine bestimmte Gruppe von Zertifikat-fingerprints zu trauen. Beachten Sie auch, dass der ESP8266 ist Ressourcen eingeschränkt, so überprüfen RSA-Signaturen von mehr als 2048 bit schmerzt ganz schön (out-of-memory-Fehler). Erwägen Sie die Verwendung ECDSA-Zertifikate, elliptische-Kurven-Krypto ist viel schneller und hat kürzere Schlüssel.
  • Sie haben, um die firmware zu aktualisieren, wenn Sie nicht wollen, um die Gabel lib oder self-Niederlage der sec
  • Ich bin mit der Methode begin(String url, String httpsFingerprint = "") aus HTTPClient: links2004.github.io/Arduino/dd/d8d/.... Fingerprint == Thumbprint des cert. Können Sie wirklich abfangen Verbindung, wenn Fingerabdruck freigegeben ist? Konnte nicht der Angreifer einfach zeigen, dass mein Zertifikat? Wenn ich hinzufügen, dass das root-Zertifikat meiner ESP würde das problem verschwinden? Es würde immer noch funktionieren, nachdem der server das Zertifikat erneuert wird? Wie wird der Zugriff auf diese Zertifikate, öffentliche und private Schlüssel bei der Verwendung von AWS Elastic LoadBalancer?
  • Couldn't the attacker simply show my certificate Nein, wenn er lenkte Sie zu seiner TLS-server und versucht, Ihnen zu zeigen, Ihre echten server-cert, das TLS handshake nicht durch, da er nicht den passenden privaten Schlüssel, um Ihre cert, somit wäre ein scheitern in nach der ClientKeyExchange Schritt des TLS-Protokolls in Zusammenhang mit dem mastersecret. Das ist der ganze Punkt zu tun, die Authentifizierung mit einem cert. If I add that root-certificate? Noch nicht implementiert (github.com/esp8266/Arduino/issues/1851) would still work after certificate is renewed? ja, wenn auth von rootcert,Nein, wenn per Fingerabdruck
  • So scheint es, Sie konnte nur die "fügen Sie die Fingerabdruck-Methode", und handlich einer eventuellen änderung der Fingerabdruck selbst (ota-updates, backup HTTPS-server mit nie-ändern-cert, der Ihnen sagt, wenn die anderen cert hat sich geändert, oder was auch immer.)
  • Es sieht aus wie das hinzufügen von root-Zertifikaten ist bereits umgesetzt: github.com/copercini/esp32-iot-examples/blob/master/...

InformationsquelleAutor Defozo | 2017-03-10
Schreibe einen Kommentar