Właśnie zdałem sobie sprawę, że ataki typu man-in-the-middle SSL są znacznie częstsze niż myślałem, szczególnie w środowiskach korporacyjnych. Słyszałem o kilku przedsiębiorstwach, które mają przezroczysty serwer proxy SSL. Wszyscy klienci są skonfigurowani do zaufania certyfikatu tego serwera proxy. Zasadniczo oznacza to, że pracodawca teoretycznie może przechwytywać nawet ruch szyfrowany za pomocą protokołu SSL bez wyskakujących ostrzeżeń w przeglądarce. Jak wspomniano powyżej, klienci pochodzą z zaufanym certyfikatem. Można to ujawnić jedynie poprzez ręczne sprawdzenie poprawności używanego certyfikatu.
Wydaje mi się, że pracodawca wykorzystuje swoją wyższą pozycję do szpiegowania ruchu SSL pracownika. Dla mnie powoduje to, że cała koncepcja SSL jest niewiarygodna. Z powodzeniem przetestowałem podobną konfigurację za pomocą mitmproxy i byłem w stanie odczytać komunikację między klientem a moim serwerem bankowości elektronicznej. To informacje, których nikomu nie należy ujawniać.
Zatem moje pytanie jest raczej proste: jak mogę zweryfikować łańcuch zaufania po stronie serwera? Chcę się upewnić, że klient korzysta z certyfikatu mojego serwera i tylko jednego łańcucha zaufania. Zastanawiam się, czy można to osiągnąć dzięki konfiguracji SSL Apache? Byłoby to wygodne, ponieważ można je łatwo zastosować do wielu aplikacji. Jeśli nie jest to możliwe, czy ktoś wie, jak to zrobić w PHP? Czy masz jakieś inne sugestie?