Welche Sicherheits Folgen Aktivieren CURLOPT_SSL_VERIFYPEER und Deaktivieren CURLOPT_SSL_VERIFYHOST?Sicherheits Folgen CURLOPT_SSL_VERIFYHOST deaktivieren (Libcurl/openssl)
Antwort
CURLOPT_SSL_VERIFYPEER überprüft, ob der Remote-Zertifikat gültig ist, das heißt, dass Sie darauf vertrauen, dass sie von einer Zertifizierungsstelle ausgestellt wurde, denen Sie vertrauen, und dass es echt ist.
CURLOPT_SSL_VERIFYHOST überprüft, ob das Zertifikat an die Entität ausgegeben wurde, mit der Sie sprechen möchten.
Um es zu einem realen Szenario zu vergleichen, ist VERIFYPEER wie die Überprüfung, dass die Form von ID ist eine, die Sie (zB Pass aus einem Land, den Sie vertrauen, Personal-Karte von einem Unternehmen, wissen Sie erkennen .. .). VERIFYHOST ist so, als würde man den tatsächlichen Namen auf der Karte überprüfen, der mit dem übereinstimmt, mit dem man sprechen möchte.
Wenn Sie VERIFYHOST nicht verwenden (der korrekte Wert ist 2, nicht 1, BTW), deaktivieren Sie die Überprüfung des Hostnamens und öffnen Sie die Tür zu MITM-Angriffen: Jeder mit einer Form von ID, die Sie vertrauen, kann sich als jemand ausgeben eine Reihe von IDs, denen Sie vertrauen, z Jeder mit einem gültigen Pass könnte so tun, als wäre er jemand mit einem gültigen Pass.
- 1. sicherheits-safe csrf tokens für json rails anrufe deaktivieren?
- 2. Mehrere Sicherheits Realms
- 3. Axis Sicherheits-Header
- 4. Sicherheits-Audit-Dokumente. ISO 27001
- 5. Sicherheits-Toolkit für ASP.Net MVC
- 6. Wie CURLOPT_SSL_VERIFYHOST = 2 Unterstützung auf meinem OS/PHP zu aktivieren
- 7. Apache Cassandra - Folgen/Nicht folgen der Beziehung auf Twissandra Beispiel
- 8. Bestes Sicherheits-Framework für C# Desktop-Anwendungen?
- 9. Flex-Modul wirft Sicherheits-Sandbox-Verletzung
- 10. AIR - Google Maps API Sicherheits-Sandbox-Verletzung?
- 11. hawtio InstanceAlreadyExistsException type = Sicherheits name = RBACRegistry
- 12. Re-Spring-Sicherheits-Redirect-URLs umschreiben
- 13. Alternative Lösung für RSA-Sicherheits-ID
- 14. Flash-Sicherheits-Sandbox: crossDomain.xml funktioniert nicht
- 15. validieren Sicherheits-Setup mit Team Foundation Server
- 16. Frühlings-Boot-Frühling-Sicherheits-Session-Timeout
- 17. Problem beim Erstellen eines Sicherheits-Scoped-Lesezeichen
- 18. erlauben verweigern erinnern Flash-Sicherheits-Panel
- 19. Folgen Symlinks in SVN
- 20. Schienen keine folgen Link
- 21. Twitter folgen Url
- 22. cURL nicht Umleitung folgen
- 23. Links folgen mit BeautifulSoup4
- 24. D3 Form folgen Pfad
- 25. twitterlibphp - kann gar nicht folgen
- 26. wget: Folgen Sie nicht Weiterleitungen
- 27. Kivy seltsame Breite Eigenschaft Folgen
- 28. Welchen Delphi-Codierungsstandards folgen Sie?
- 29. Sollten webbasierte Anwendungen Webstandards folgen?
- 30. Welche Android-Entwicklungsblogs folgen Sie
Vielen Dank für die ausgearbeitete Antwort. Dies führte mich zu einer anderen schnellen Fragen: Ich habe eine Website mit einem gültigen SSL-Zertifikat https: //www.example.com (cn = www.example.com wie es sollte). Wenn ich die Website über ihre IP-Adresse besuche, werden mir Cert-Fehler angezeigt (weil die cn nicht übereinstimmen), das Entfernen von SSL_VERIFYHOST löst es, öffnet es aber für MiTM-Attacken. Was ist die richtige Lösung, um damit umzugehen? (Verbindung über IP-Adresse erlauben OHNE Fehler anzuzeigen). Ersetzen Sie die gesamte Validierungsmethode mit CURLOPT_SSL_CTX_FUNCTION, um zu überprüfen, ob eine bestimmte IP-Adresse mit einem CN übereinstimmt. – user1782427
Warum möchten Sie eine Verbindung mit der IP-Adresse herstellen? Ist es ein Zertifikat von Ihrer eigenen CA (oder selbstsigniert)? – Bruno
Ich habe 2 Server (1.1.1.1 und 2.2.2.2), die DNS für example.com enthält 2 A Datensätze (von diesen IP-Adressen). Der Client wählt nach dem Zufallsprinzip eine davon aus und verbindet sich mit der IP-Adresse und nicht mit dem Hostnamen. Ich möchte, dass openSSL mich anruft, wenn es das allgemeine Namensfeld überprüft, also kann ich den allgemeinen Namen des Zertifikats mit example.com vergleichen, wenn es okay ist, werde ich das Zertifikat annehmen. Ich habe nicht gesehen, dass libcurl dies unterstützt, also nehme ich an, dass ich meine eigene Implementierung schreiben muss. Das Zertifikat für example.com ist ein vertrauenswürdiges Verisign-Zertifikat. – user1782427