Ech... chciałem o tym napisać, ale zrezygnowałem, bo i tak nikt nie przeczytałby mojej paplaniny o bezpieczeństwie i szyfrowaniu danych. Ale skoro prosicie:
Gdy logujecie się na forum, to przeglądarka przesyła wasz login i hasło w formie niezaszyfrowanej, przez co wasz dostawca internetu, jak i wszystkie węzły pośrednioczące w transmisji danych są w stanie bez problemu je przechwycić. Oczywiście chodzi tutaj tylko o moment logowania, bo potem hasło jest już hashowane przez mój serwer i dalej jest bezpiecznie. Podczas przesyłania hasła postanowiłem wymusić protokoł https, który został zaprojektowany do pełnienia m.in. dwóch funkcji: szyfrowania danych oraz sprawdzania autentyczności serwera. (serwer obsługuje protokół https już od dość dawna, ale dopiero od ok. tygodnia wymuszam go podczas logowania).
Szyfrowanie danych to prosta sprawa, mój serwer wysyła przeglądarce klucz publiczny, przeglądarka nam odpowada swoim kluczem publicznym (tzw. ssl handshake) potem dane są szyfrowane, tylko i wyłącznie mój serwer jest w stanie zaszyfrować dane tak, by pasowały do mojego klucza publicznego, a przechwycenie i odczytanie takich danych przez węzły pośredniczące jest (prawie) niemożliwe.
Istnieje również zagrożenie, że ktoś postawi serwer, który będzie udawał te forum (sklonuje wygląd, zrobi formatki logowania, itd.) W momencie, gdy użytkownik próbowałby się zalogować, przesłałby swoje dane logowania do osób trzecich. I tutaj z pomocą przychodzi sprawdzanie autentyczności. Każdy certyfikat SSL jest podpisany innym certyfikatem SSL. Komputer sprawdza taki sznureczek certyfikatów, aż ostatecznie trafia do serwera, któremu bezwzględnie ufa (np. comodo.com) - wtedy wiadomo, że certyfikat pochodzi z zaufanego źródła i jest autentyczny, nikt się pod niego nie podszywa. Podpisanie certyfikatu kosztuje w okolicach 500zł na rok.
Certyfikat SSL, który jest stosowany na tym serwerze jest wygenerowany przeze mnie, całkowicie darmowy, "self-signed" (podpisany samym sobą), przez co przeglądarki krzyczą, że pochodzi z niezaufanego źródła, mimo to szyfruje dane jak należy Tak więc prosiłbym się nie sugerować komunikatami, że certyfikat nie jest zaufany, tylko go zaakceptować. Dzięki temu będziecie mieć pewność, że nikt nie przechwyci waszego hasła.
Niebezpieczeństwo przechwycenia loginu i hasła jest tylko podczas logowania. Wszystkie pozostałe strony można przeglądać po protokole nieszyfrowanym (http), mimo to zalecam pozostać na https przynajmniej przez okres, w którym jesteście zalogowani - np. żeby nikt nie przeczytał waszych wiadomości PW.
pozdrawiam,
admin keeshii