Tym razem mam temat dotyczący bezpieczeństwa logowania do bloga, strony, panelu lub co sobie tam wymyślicie. Ostatnio logując się do swojego panelu admina, do którego domyślne logowanie odbywa się przez http. Pomyślałem że fajnie było by robić to dobrze i logować się po https. Hosting z którego korzystam ma z defaulta certyfikat wildcard którego można używać ale wtedy dostaje ostrzeżenia od przeglądarki. Ponierważ domena nie zgadza się z tą z certyfikatu. Zawsze można zaakceptować wyjątek ale to nie jest wyjście. Zacząłem szukać darmowych certyfikatów.

Długo nie szukając znalazłem https://www.startssl.com/, stronę na której można wygenerować sobie darmowy certyfikat na domenę i sub domenę. Rejestracja i wystawienie przebiega w sumie szybko bo w jakąś godzinę lub dwie centrum dostarcza do panelu podpisany certyfikat. O czym trzeba pamiętać że po zarejestrowaniu w przeglądarce instaluje się certyfikat logowania do panelu i trzeba go sobie zachować. Aby w razie potrzeby zalogowania lub ściągnięcia certyfikatu na konkretną domenę go mieć. Certyfikat jest wystawiany na rok i po roku możemy wygenerować nowy też za darmo. Ja oczywiście to zrobiłem a mój hosting po dostarczeniu certyfikatu zainstalował go w parę godzin. Efekty można podziwiać po wpisaniu https://techfreak.pl. W tym przypadku zobaczycie że https działa i nie wywala ostrzeżeń ale kłódeczka jest z żółtym trójkącikiem co oznacza że nie wszystkie elementy na stronie są bezpieczne. Jest to prawdopodobnie spowodowane tym że nie wszystkie liki zaczynają się od https. Cala reszta jest szyfrowana. OK, ale mi tylko chodziło aby ukryć login i hasło które jest wysyłane POST’em i można je przechwycić (np. jeśli staniemy się ofiarą ataku MiTM. Jak wykonać i jak bronić się przed takim atakiem pisałem jakiś czas temu: techfreak.pl/jak-bronic-sie-przed-atakiem-arpspoof) A tak wygląda przechwycony formularz logowania:

wireshark_sniff_POST

Powyżej widać że pakiet przechwycony wiresharkiem zawiera login i hasło. (Jak by co hasło było testowe;) Na tą chwile po wejściu https://techfreak.pl/wp-admin wszystko jest ok i mogę się spokojnie logować bo moje hasło jest przekazywane do serwera w zaszyfrowanej postaci. Czyli jest, tak jak chciałem. Ale zawszę muszę pamiętać żeby wpisać https przed stroną logowania. Na szczęście WordPress przychodzi z przydatnymi opcjami FORCE_SSL_LOGIN i FORCE_SSL_ADMIN dzięki którym wymusza używanie https. Wystarczy wpisać w wp-config.php dwie linie:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* To wszystko, zakończ edycję w tym miejscu! Miłego blogowania! */

Zresztą instrukcja jest tu: http://codex.wordpress.org/Administration_Over_SSL. Ok mam darmowy certyfikat, zwiększyłem trochę bezpieczeństwo swojej strony. Mam nadzieję że, nie tylko mi przyda się ta informacja. Jak by ktoś znalazł inne darmowe certyfikaty niech da znać w komentarzach.