Jakie są konsekwencje zabezpieczenia Włączanie CURLOPT_SSL_VERIFYPEER i wyłączanie CURLOPT_SSL_VERIFYHOST?konsekwencje zabezpieczające wyłączenie CURLOPT_SSL_VERIFYHOST (libcurl/openssl)
Odpowiedz
CURLOPT_SSL_VERIFYPEER sprawdza, czy zdalny certyfikat jest ważny, to znaczy, że można zaufać, że został on wydany przez urząd certyfikacji można zaufać i że jest prawdziwa.
CURLOPT_SSL_VERIFYHOST sprawdza, czy certyfikat został wydany podmiotowi, z którym chciałeś rozmawiać.
Aby porównać go do rzeczywistego scenariusza, VERIFYPEER jakby sprawdzając, czy forma ID jest taki, który można rozpoznać (tj paszport z kraju ufasz, karta pracownicy spółki wiesz .. .). VERIFYHOST jest jak sprawdzanie faktycznego nazwiska na karcie, z kim chciałeś rozmawiać.
Jeśli nie używasz VERIFYHOST (poprawna wartość to 2, a nie 1, btw), wyłącza weryfikację nazwy hosta i otwiera drzwi do ataków MITM: każda osoba posiadająca ufundowany przez Ciebie identyfikator może podszywać się pod kogokolwiek w obrębie zestaw zaufanych identyfikatorów, np każdy z ważnym paszportem może udawać, że jest kimkolwiek innym z ważnym paszportem.
- 1. ActiveScaffold nitki zabezpieczające
- 2. opcje PayPal cURL (CURLOPT_SSL_VERIFYPEER i CURLOPT_SSL_VERIFYHOST) wydaje
- 3. Konsekwencje tego przepełnienia bufora?
- 4. Warunkowo zabezpieczające trasy (przepływ rejestracji użytkownika)
- 5. Wyłączenie urządzenia
- 6. Wyłączenie TinyMCE
- 7. Jak włączyć obsługę CURLOPT_SSL_VERIFYHOST = 2 w moim systemie OS/PHP
- 8. Wyłączenie Textarea z CSS
- 9. Wyłączenie przycisku w JavaFX
- 10. Wyłączenie Firefox Bezpieczeństwo Ostrzeżenie
- 11. Wyłączenie rozgałęźnika Qt
- 12. zatrzymanie i wyłączenie zasilania
- 13. Wdzięczne wyłączenie wątku
- 14. Wyłączenie mongosów do aktualizacji
- 15. Poltergeist - wyłączenie ostrzeżenia JQMIGRATE
- 16. Prosta opcja WYŁĄCZENIE RSYNC?
- 17. Nodemon - wyłączenie plików
- 18. Wyłączenie wszystkich ostrzeżeń gcc
- 19. wyłączenie formularza symfony2
- 20. Wdzięczne wyłączenie GenServer
- 21. Wyłączenie Python nosetests
- 22. Wyłączenie flagi enum
- 23. Jakie są konsekwencje usunięcia konta użytkownika?
- 24. Konsekwencje niestandardowych znaczników HTML w dyrektywach AngularJS
- 25. Jakie są konsekwencje tego fragmentu javascript?
- 26. Konsekwencje Dynamiczne przepisywanie funkcji w javascript?
- 27. Jakie są konsekwencje nie wywoływania libusb_exit()
- 28. Wyłączenie STM32 IWDG podczas debugowania
- 29. Łatwy sposób na wyłączenie UITextField?
- 30. Kendo ui - wyłączenie przeciągania okna
Dziękuję za wyczerpującą odpowiedź. To doprowadziło mnie do kolejnych szybkich pytań: mam stronę internetową z ważnym certyfikatem SSL https: //www.example.com (cn = www.example.com tak, jak powinno). Kiedy odwiedzam stronę internetową za pośrednictwem jej adresu IP, to pokaże mi błędy certyfikatu (ponieważ cn nie pasują), usunięcie SSL_VERIFYHOST rozwiąże ją, ale otworzy ją na ataki MiTM. Jakie jest prawidłowe rozwiązanie tego problemu? (zezwól na połączenie przez adres IP BEZ pokazania błędów). Zastąpienie całej metody weryfikacji za pomocą CURLOPT_SSL_CTX_FUNCTION tylko w celu sprawdzenia, czy określony adres IP pasuje do CN? – user1782427
Dlaczego chcesz się połączyć z adresem IP? Czy jest to certyfikat z własnego urzędu certyfikacji (lub samopodpisany)? – Bruno
Mam 2 serwery (1.1.1.1 i 2.2.2.2), DNS na przykład.com zawiera 2 rekordy A (z tych adresów IP). Klient losowo wybiera jeden z nich i łączy się z adresem IP, a nie nazwą hosta. Chciałbym, aby openSSL zadzwonił do mnie, gdy sprawdza pole nazwy wspólnej, aby móc porównać wspólną nazwę certyfikatu z example.com, jeśli jest to w porządku, zaakceptuję certyfikat. Nie widziałem, że libcurl obsługuje to, więc zakładam, że muszę napisać własną implementację. Certyfikat dla example.com jest zaufanym certyfikatem Verisign. – user1782427