EpicWEB.plwebdesign, programowanie, phat lewt!

o autorze / projekty / kontakt

Bezpieczeństwo / CSS / Epic Loot / Flash / Fsck Up / GFX / Google / Gry / Hosting / HTML / JS MySQL / OS / Other / PHP / Praca / Techblog / Web

Ostatni projekt: ddrpl.com

O (nie) bezpieczeństwie haseł raz jeszcze.

Akurat tak się złożyło, że musiałem dzisiaj zalogować się na konto u jednego z większych hostingodawców, na które ostatni raz logowałem się jakieś 5-6 miesięcy temu. Logowanie jak logowanie - wpisuję login, wpisuję hasło ... nie działa?

Szybko w pamięci przeleciałem standardową listę nastu haseł, których używam. Skrzyżowałem je z różnymi wariacjami na temat loginu, połączyłem kilka haseł by wytworzyć prawdopodobnie to, które użyłem - nic. Następny przystanek, poczta!

Szybko udało mi się wyszukać mail z danymi technicznymi do konta - ftp, login, hasło ... "takie jak podane w momencie rejestracji". No nic - wracamy na stronę i wypełniamy formularz przypomnienia hasła. Klik klik, link w mailu, klikamy, ustawiamy nowe hasło, klik ... "hasło musi składać się z przynajmniej 8 znaków, dwóch dużych liter, jednej małej i jednego znaku specjalnego". Ok ... tego się nie spodziewałem.

Niby jest to dobra praktyka - zwiększa bezpieczeństwo danych etc. Do co ważniejszych informacji sam używam hasła z prawie 20 znaków (bruteforce może trochę potrwać), nie słownikowego (random) bez żadnych "ciągłości", z cyferkami etc. Niestety, bez dużych liter. W takim wypadku mam dwa wyjścia. Albo sobie hasło zapiszę gdzieś, żeby za pół roku nie kombinować, albo zmienię co trzeba i znowu je zapomnę. Ja mogę zapomnieć - Kowalski pewnie zapisze.

Zapisze na kartce, zapisze na poczcie, zapisze w notatniku on-line. Tym samym Kowalski, który używa na co dzień silnego hasła musi sobie nowe "silne" hasło gdzieś zapisać zmniejszając jego bezpieczeństwo. Ja rozumiem, że oni robią to w trosce o mnie - ale czy nie wystarczy, jeżeli pojawi się stosowny komunikat, że "hasło jest zbyt słabe by je zastosować". Szczególnie takie rozwiązanie śmieszy mnie w połączeniu ze wskaźnikiem trudności hasła poniżej, który pokazuje mi "trudne 4/5".

Pozostaje mi mieć nadzieję, że będę pamiętał o tych paru dodatkowych literkach dodanych do hasła. A jak nie, to za 5-6 miesięcy znowu przyjdzie mi wypełnić formularz przypomnienia.

4 komentarze | Bezpieczeństwo, Hosting, Techblog 28 września / 18:25:24
URL Trackback

CRON na Home.pl

Home.pl jest jednym z nielicznych, popularnych, usługodawców, którzy udostępniają usługę CRON. No, prawie - jest to ich implementacja, która polega na okresowym wywoływaniu plików PHP, Perla, Pythona lub CGI - dzięki temu możemy zaimplementować np. automatycznie rozsyłający się newsletter etc.

W swojej dokumentacji Home.pl stwierdza:

Środowisko uruchomieniowe skryptów jest identyczne ze środowiskiem, w jakim uruchamiane są skrypty na serwerach wirtualnych. W praktyce wywołanie takie niewiele różni się od zwykłego wywołania GET po protokole HTTP.

Dla mojej małej główki równa się to z czymś takim:

telnet mojadomena.pl 80
GET /cron-hourly.php HTTP/1.1
Host: mojadomena.pl
Connection: Close

Co się jednak okazuje? Panowie z Home poszli na łatwiznę i nawet o tym nie wspomnieli - otóż CRON po prostu skanuje FTP w poszukiwaniu odpowiednich plików i wywołuje je przez interpreter CLI.

Efekt? Zmienna $_SERVER['HTTP_HOST'] ma złą wartość - zamiast mojadomena.pl znajdziemy tam home.pl - i tak, dowiedziałem się o tym "the hard way" kiedy nagle dostałem maila, który zamiast z adresu info@mojadomena.pl przyszedł z info@home.pl

Update - okazuje się, że problemem nie jest zła informacja w HTTP_HOST, ale jej .. brak. A w tym wypadku Home sam dodaje swoją domenę do adresu. Poniżej przykład wysyłanych informacji (wysłane print_r($_SERVER) na mój adres (zamieniłem login serwera na "LOGIN" w celu ochrony prywatności):

To: btm@anfo.pl
Subject: Cron na home
From: info@home.pl

Array
(
    [QUERY_STRING] => 
    [REQUEST_METHOD] => GET
    [REMOTE_HOST] => localhost
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => /
    [SERVER_SOFTWARE] => IdeaCron
    [SERVER_PROTOCOL] => HTTP/1.0
    [GATEWAY_INTERFACE] => CGI/1.1
    [PATH] => /bin
    [TMP] => /tmp
    [TMPDIR] => /tmp
    [SERVER_ID] => LOGIN@home
    [SERVER_NAME] => LOGIN.home.pl
    [SERVER_ADMIN] => LOGIN@home.pl
    [SCRIPT_NAME] => /cron-5min.php
    [SCRIPT_FILENAME] => /cron-5min.php
    [REQUEST_URI] => /cron-5min.php
    [PATH_INFO] => /cron-5min.php
    [PATH_TRANSLATED] => /cron-5min.php
    [PHP_SELF] => /cron-5min.php
    [REQUEST_TIME] => 1253531102
    [argv] => Array
        (
        )

    [argc] => 0
)
13 komentarzy | CSS, Hosting, PHP, Techblog 21 września / 11:10:03
URL Trackback