Security – ostatnie różności (zabezpieczenia moBILETu ponownie).

Wczorajszy dzień jakoś tak obfitował w wydarzenia związane z bezpieczeństwem, że postanowiłem to podsumować.

Po pierwsze, po dyskusji z netu na ten temat, postanowiłem się przyjrzeć moBILTowi. W sumie po raz kolejny bo i na zabezpieczenia patrzyłem (i to dwa razy). Przy dyskusji zeszło oczywiście na temat jak oni to sprawdzają (jak pisałem, sprawdzają źle) oraz jak mogą sprawdzać. Oczywiście najdoskonalsza wersja, to sprawdzenie online (odpytanie bazy o fakt skasowania danego biletu). Ponieważ twierdziłem, że jakby napisanie fake’owej aplikacji było proste (grafiki są – jak pisałem – dostępne, cudów tam nie ma, zwykła Java ME i trzy semi statyczne ekrany), to na pewno studenci (taki gatunek człowieka, co to nigdy kasy nie ma, dostęp do wiedzy i czas ma (chyba, że akurat pije, co mimo braku kasy zdarza się często, albo sesja), więc do skutecznego kombinowania pierwszy) by to zrobili. I że pewnie jest algorytm, który na podstawie cyfr/kodu z biletu pozwala zweryfikować prawdziwość biletu offline.

Nie ukrywam, że pozazdrościłem Niebezpiecznikowi opisu hackowania karty IKEI w celu dostania kawy, więc był czas, kawa, motywacja…

Bliższe przyjrzenie się ujawniło, że to, co brałem za QR code, to raczej Aztec code. Na dodatek odwrócone kolory ma (nie doczytałem, czy oryginalny Aztec na to pozwala, na wiki wszystkie są odwrotne). Ale Neoreader czyta to. Po przeczytaniu okazuje się, że twórcy nie ułatwili kontrolerom pracy – nie ma żadnego unikatowego ID zaszytego w tym kodzie. Jest tylko dokładny timestamp kasowania biletu. Opieram się wyłącznie na screenach dołączonych do instrukcji na stronie (dead link) – wyglądają na prawdziwe.

Niestety, inaczej niż w przypadku Niebezpiecznika, ludzie zawiedli. Apel na blipie pozostał może nie tyle bez odpowiedzi (odezwały się 2 osoby, z czego tylko jedna mogłaby pomóc), co bez danych. Pozostali znajomi nie odezwali się jak na razie z danymi, więc zostałem tylko ze swoimi danymi. Szybka analiza wykazuje, że są tak naprawdę 3 dane brane pod uwagę. Dokładny czas kasowania, numer ze strony pierwszej, bieżący numer ze strony drugiej i… tyle. Przy czym numer ze strony pierwszej jest stały (być może dla danego użytkownika, typu usługi, regionu) w trakcie jednego dnia. Natomiast bieżacy numer to po prostu inkrementowane ID w bazie (też nie wiem, czy dla danego typu usługi i regionu, czy transakcji globalnie, ale wiem, ile przyrasta dobowo).

Szybkie odświeżenie wiadomości z pracy magisterskiej i naklepanie prostego AG (algorytmu genetycznego) w Perlu nie przyniosło rezultatu w postaci znalezienia korelacji między datą danego dnia, a numerem ze strony pierwszej, choć na oko wygląda, że taka może istnieć (Perl i algorytm wolne i nie do końca przemyślane). Tak naprawdę czekam na więcej danych, w szczególności chcę porównać, czy dany numer jest stały dla wszystkich użytkowników (i usługi) w danym dniu. Jeśli jest, to ewidentny błąd twórców moBILETu – nawet jeśli nie ma algorytmu, to wystarczy, że jeden student skasuje bilet w danym dniu i przekaże numer innym. I nie da się zweryfikować offline, na podstawie sumy kontrolnej czy czegoś takiego, czy to autentyczny bilet…

Po drugie, za sprawą wpisu u Marcina Kasperskiego dowiedziałem się, że wbrew temu, co mówili sceptycy, słynną Nokię 1100 da się wykorzystać do przechwytywania SMSów z kodami jednorazowymi do transakcji. Czarny scenariusz się sprawdza – kody SMS nie są bezpieczne, istnieje metoda na oszukanie czytnika kart chipowych… Nadchodzą niedobre dni dla banków internetowych?

Po trzecie, atak phishingowy na Lucas Bank (dead link). Tu lekka lipa ze strony banku, bo korzystajac z formularza kontaktowego na stronie nie możemy wprost zgłosić takiego zdarzenia. Co więcej, wymagane jest podanie adresu email. A korzystając z tego formularza wyrażamy zgodę na przysyłanie spamu przez bank. Słowo kretyn w stosunku do osoby, która to wymyśliła nie oddaje w pełni tego, co chcę wyrazić…

UPDATE: Szybkie sprawdzenie z mobiletem kumpla pokazuje, że numer ze strony pierwszej jest stały w obrębie danego dnia dla wszystkich użytkowników (danej usługi, w danym regionie, kupujących dany typ biletu).

Opera mini 5 beta 2.

Jakiś czas temu pisałem o becie Opery mini 5 i nie byłem zachwycony. Niedawno ukazała się kolejna beta. Zachęcony przez groszka postanowiłem dać jej szansę.

Oficjalnie mój telefon (Nokia 3110c) nadal nie jest wspierany, ale daje się zainstalować betę przez wejście na m.opera.com/next – warte odnotowania, bo przy innych sposobach strona usilnie stara się wiedzieć lepiej, co chcę dostać i bety w wersji drugiej pobrać nie pozwala.

Nadal widać, że program robiony jest z myślą o większych ekranach, ale są też pozytywy. Po pierwsze, działa stabilniej od poprzedniej wersji – nie wysypała się ani razu, chociaż faktem jest, że nie używałem zakładek. Po drugie, mój ukochany mobile view jednak istnieje (chyba, że dodali teraz). Co prawda, jak większość opcji, ukryty jest w jakiś dziwny sposób (ogólnie w porównaniu z czwórką spaprane menu jest; mogłem nie znaleźć poprzenio), zmienione jest też przewijanie klawiszami (to, co kiedyś było jedną linią, teraz oznacza page down), ale idzie się przyzwyczaić.

Nie mam wrażenia, że jest szybciej, niż w wersji 4, ale szybkość jest OK. W mobile view strony wyświetla poprawnie, nie zauważyłem problemów ze stabilnością. Krótko mówiąc, działa na tyle dobrze, że jest obecnie moją podstawową przeglądarką. Choć czwórki na wszelki wypadek nie kasuję.

IKEA, the bookkiller.

Jakiś czas temu u MRW poruszony został temat niszczenia książek. Z mojej strony padła teza, że IKEA też „zabija” książki, bo ładuje je jako zapychacz na półki w sklepach (znaczy wystrój). Jako, że IKEA postrzegana jest jako twór piękny, czysty i szlachetny, pojawiły się głosy (janekr 2009/12/23 08:35:04, gfedorynski, 2009/12/23 13:47:54; szkoda, że Blox nie ma linków bezpośrednio do komentarzy), że to nie książki, tylko atrapy.

Przyznam, że trochę mnie to zaskoczyło, bo chociaż wyglądały mi na normalne, szwedzkie książki, to nigdy nie otworzyłem żadnej i nie sprawdziłem, choć przyznam, że miałem plan poproszenia o taką książkę/kupienia jej w kasie, w czasie, gdy uczyłem się szwedzkiego (byłoby to niezłe dojście do używanych szwedzkich książek w Polsce). Ale nie poprosiłem, więcej, nawet nie wyjąłem książki z regału. Postanowiłem sobie, że sprawdzę, jak jest naprawdę przy okazji najbliższej wizyty w IKEI.

Okazja nadarzyła się niedawno. Pierwszy rzut oka – normalne książki, widać, że nie same grzbiety, widać, że mają strony (akurat niektóre leżały na płask, nie pionowo na półce)… Na atrapę nie wyglądają – różny stopień zużycia (bardziej na końcówki serii leżące w różnych miejscach). Ale sprawdzić trzeba dokładnie, bo może takie lepsze atrapy… Książki. Normalne, szwedzkie książki. Setki. Dla niedowiarków zdjęcie na końcu wpisu (sorry za jakość, Nokia 3110c ma beznadziejny aparat).

Jeśli chodzi o tezę, że „może ktoś je przeczyta” – sorry, no bonus. Sklepy IKEI są rozrzucone po całym świecie, nie ma co ukrywać, szwedzki jest bardzo mało popularnym językiem (nawet wliczając podobieństwo norweskiego i duńskiego) poza Skandynawią, więc nie ma co liczyć, że ktoś z kupujących będzie testował fotel oddając się lekturze (co innego, gdyby książki były w lokalnym języku; swoją drogą zachowania ludzi w tym sklepie nie przestają mnie zaskakiwać – niektórzy przychodzą tam „mieszkać” – siedzą w kuchni, leżą na łóżku, siedzą na sofach – jak w domu).

Podsumowując: IKEA „zabija” książki (prawdziwe książki, żadne atrapy) i redukuje je do roli wystroju. A przynajmniej trafiają na zesłanie, z którego szansa powrotu do „życia” jest minimalna.

Książka w IKEA