2010-06-20 23 views
5

W modelu zabezpieczeń HTTPS najsłabszym elementem jest lista zaufanych ośrodków CA w przeglądarce. Istnieje wiele sposobów na to, że ktoś może dodać CA do listy, że użytkownicy zaufają niewłaściwemu facetowi.Jak zapobiec atakowi HTTPS po stronie serwera?

Na przykład publiczny komputer lub komputer w firmie. Administrator może zmusić Cię do zaufania wystawionemu przez siebie urzędowi certyfikacji, może to być bardzo niebezpieczne dla serwera proxy HTTPS z przekaźnikiem HTTPS. W rezultacie będą mogli wyświetlać komunikat, login i hasło nawet w przeglądarce, informując o tym, że korzystasz z zaufanego połączenia SSL.

Co w takim razie może zrobić programista aplikacji internetowych, aby chronić użytkownika, a także system?

+1

Aby zainstalować zaufany główny certyfikat CA, należy uzyskać dostęp do komputera użytkownika. Po uzyskaniu dostępu do komputera istnieje dużo łatwiejszy sposób kradzieży danych niż instalacja certyfikatu, więc ten scenariusz nie jest tak naprawdę ważny pod względem przydatności zabezpieczeń SSL. SSL to raczej ochrona przed atakami typu "man-in-the-middle", w których użytkownik po prostu wyszukuje ruch przesyłany przez kabel bez bezpośredniego dostępu do komputera użytkownika. – TheCodeKing

Odpowiedz

4

Jako programista aplikacji WWW niewiele można na ten temat zrobić.

Ten problem należy załączyć w dalszym ciągu stosu.

Jeśli ktoś w połowie drogi na całym świecie chce:

się. Umieść fałszywego urzędu certyfikacji na czyimś komputerze

b. Wydanie certyfikatu dla domeny pod tym numerem CA

Podszywać się pod swoją witrynę

d. Wskaż lokalny wpis DNS dla swojej domeny innemu adresowi IP

W żadnym z powyższych kroków nie jest zaangażowana twoja aplikacja ani nie skonsultowano się z nią, więc jest to miejsce, w którym ważna jest dobra administracja sieci i bezpieczeństwo.

Poza tym może istnieje uzasadniony powód, aby ktoś zrobił to lokalnie w swojej osobistej sieci. Kim jestem, aby ich powstrzymać?

To jest zasadniczo to, co robią korporacyjne filtry proxy sieci Web i są one w ich prawach do robienia tego.

Jeśli chodzi o powstrzymywanie kogoś, kto jest złośliwy przed podjęciem powyższych kroków, jest to coś, co należy umieścić na komputerach użytkowników komputerów klienckich.

+0

Niektóre z ostatnich pytań http://stackoverflow.com/questions/19993696/is-there-any-way-to-access-ssl-certificate-details-using-javascript wskazują na możliwe obejście tego problemu. Ten projekt https://github.com/digitalbazaar/forge może pomóc JavaScriptowi w odczytaniu informacji o protokole SSL, może pomóc w uzyskaniu alertu w przypadku niezgodności nazwy wydawcy CA. –

1

Teoretycznie jeśli terminal użytkownika jest własnością przeciwnikiem, już stracone i nic nie można na to poradzić - jeśli przyjdzie co do czego mogą filtrować swoje środki zaradcze lub nawet zeskrobać i naciąganie cała strona.

W praktyce można robić rzeczy, aby praca przeciwnika była trudniejsza, ale to wyścig zbrojeń. Najprawdopodobniej będziesz musiał użyć tego samego rodzaju środków zaradczych, które złośliwe oprogramowanie wykorzystuje przeciwko skanerom - ponieważ z punktu widzenia przeciwnika Twoja strona zachowuje się złośliwie, starając się nie dopuścić do przesłonięcia! - i wiedz, że wszystko, co robisz, może i będzie szybko zwalczane, jeśli twój przeciwnik będzie się troszczył.

Możesz na przykład otwierać gniazda lub używać XmlHttpRequest z JavaScript lub apletów, ale nie możesz powstrzymać swojego przeciwnika przed aktualizacją filtrów, aby usunąć wszystko, co dodasz.

Możesz uzyskać więcej kilometrów, emitując polimorficzne dane wyjściowe lub używając innych technik inżynierii wstecznej, więc wydaje się, że dwa trafienia w witrynie nie generują podobnych kodów/zasobów wysyłanych do przeglądarki.Jest to ogromna ilość pracy, ale daje przeciwnikowi łamigłówkę do żucia, jeśli chce grać człowieka w środku.