Ile cyfr potrzeba, by numer konta był unikatowy?

Temat (nie)unikatowych numerów kont pojawił się w tej dyskusji nt. tokenów (dead link, domena przejęta), a szerzej opisany jest w tym wpisie, ile cyfr potrzeba, by numer rachunku bankowego był unikatowy. Przyznam, że nie miałem zielonego pojęcia nt. algorytmu weryfikacji numeru IBAN, ale na chłopski rozum kolizje zdarzą się wszędzie. Stwierdziłem, że najlepsza metoda nauki to napisać skrypt do sprawdzania. Oczywiście w Perlu. Przy okazji wyszło mi, że Perl średnio sobie radzi z dużymi liczbami, a Python dobrze, ale dzięki temu znalazłem pięknego gotowca w postaci modułu do sprawdzania poprawności numeru IBAN.

Pierwsze, co rzuca się w oczy, to fakt, że tak naprawdę numer IBAN jest zamieniany na liczbę, a czy jest poprawny określane jest tylko na podstawie jednego testu – jeśli reszta z dzielenia tej dużej cyfry przez 97 wynosi 1, to numer jest poprawny.

Chwila zabawy programem i okazuje się, że dla 3 brakujących cyfr w dowolnym miejscu rachunku można wygenerować ok. 10 kolizji. Pewnie ma to coś wspólnego z faktem, że 97 jest liczbą pierwszą, a samo 97 mieści się w każdym tysiącu właśnie 10-11 razy, ale tutaj już by się matematyk przydał i zasady podzielności przez 97 (hasło do Google cechy podzielności przez 97 nic sensownego nie znalazło niestety).

Inna szansa, że nasze PL na początku numeru (które wraz z następującymi po nim dwiema cyframi jest przesuwane na koniec i zamieniane na liczby patrz algorytm weryfikacji numeru IBAN) jest na tyle pechowe, że powoduje taką przykrą przypadłość. Ale to łatwo sprawdzić – dzięki użyciu ogólnej biblioteki skrypcik do bruteforce’owania numerów IBAN powinien działać dla wszystkich krajów.

Póki co konkluzja jest taka, że aby numer był unikatowy, to trzeba podać wszystkie cyfry. Przy dobrym wietrze może się zdarzyć, że 1 można opuścić.

PS. Nie cierpię słowa unikalny. Dla mnie oznacza ono możliwy do uniknięcia. Zamiast niego możnaby używać słowa unikatowy. Niestety SJP traktuje je jako synonimy.

Szybki test Freenetu.

Jakoś tak się złożyło, że wpis Zala przypomniał, że zarzuciłem zabawę z Gnunetem (którego po prostu nie udało mi się w 5 minut na czuja uruchomić). Postanowiłem przyjrzeć się Freenetowi, który powinien być prostszy i popularniejszy. I którego do tej pory skreślałem ze względu na Javę.

Z prototą bym nie przesadzał – nie wiadomo, który plik wybrać (a w Debianie nie ma tego pakietu). Na stronie projektu plików do pobrania jest wiele, nie wiadomo, która wersja jest stabilna. Ostatecznie podążam dosłownie za wytycznymi z przykładu, tym bardziej, że liczba pobrań też jest największa.

Instalator brzydki, ale instaluje bez problemu. Z niefajnych rzeczy – bez pytania dodaje usługę Freenet do uruchomienia po reboocie.

@reboot   "/home/rozie/programs/Freenet/run.sh" start 2>&1 >/dev/null #FREENET AUTOSTART - 8888

Irytujące, szczególnie, że może warto wyrzucić na osobnego usera. Oczywiście, przeniesienie nie jest problemem, ale IMHO powinien zapytać, czy może dodać wpis. Na zakończenie drobny fail – pisze An uninstaller program has been created in: (tak, potem pustka). Brak informacji o tym, czy demon zostaje automatycznie włączony (tak, zostaje). Niezły wizard.

Prywatność. Widać, że twórcy dbają o prywatność w sieci – użytkownik proszony jest o korzystanie z oddzielnej przeglądarki do łączenia z demonem Freenetu. Jak najbardziej zasadne, bo w przypadku wspólnej przeglądarki nie będzie żadnego problemu z wywołaniem zwykłego URLa ze strony freenetowej, co w połączeniu z dostępem do ciasteczek itd. jest oczywistą metodą pozbawienia anonimowości. Tylko zwiedzam, więc olewam i poprzestaję na wywaleniu ciasteczek (w tym flashowych), ale jak najbardziej zasadne.

Następnie określa, na ile zależy mu na ochronie przed rządem, ISP oraz (wybieram opennet i normal)… osobami określonymi jako przyjaciele. Domyślnie mają oni (lub malware na ich komputerach) sporą możliwość naruszenia prywatności (wybieram high). Kolejne pytanie jest o pliki tymczasowe i pobrane. Do wyboru 4 poziomy zabezpieczenia, w tym takie, które wyglądają na bezpieczne (oczywiście jeśli nie ma błędów w implementacji/backdoorów) nawet bez szyfrowanego systemu plików/katalogu. Najbardziej paranoidalny tryb oznacza trzymanie klucza tylko w pamięci (do testu wystarczy normal), czyli dane tracone są bezpowrotnie chwilę po wyłączeniu maszyny (modulo wejście na swap, modulo bruteforce). Na koniec testu wybieram 5GB przestrzeni dyskowej do wykorzystania.

No i tu zaczyna się jazda. Zużycie procesora (PIII 1 GHz) utrzymuje się od tego momentu na ok. 40-50%, a pamięci RAM na 8,7% (z 1GB) i rośnie (maksymalnie widziałem 20%). Program pozwala ustawić limit RAM – domyślny limit RAM to u mnie 192 MB. W praktyce oznacza to, że procesor nie ma wytchnienia i będzie się włączał wiatrak. Do not like. Wychodzi, że łącze 32 KB powinienem wybrać, co czynię.

Szybkość działania jest tragiczna. Nawet prostą wiki otwierał długo. Kolejna rzecz, którą sprawdzam (i która otwiera się nieco szybciej, ale skojarzenia z modemem i wczesnym dzwonieniem na 0202122 silnie wskazane) to Freenet TEXTlink Index. Tu zdziwienie. Nawet sporo linków jest po polsku. Nie wiem na ile to zbieg okoliczności, a na ile odwzorowanie stanu faktycznego. Tematycznie dominuje metatematyka (tu: wolność, libertarianizm, linki freenetowe) oraz polityka i… chrześcijaństwo (zwł. polskie strony), które często pod politykę podpada. Bliższe przyjrzenie się treści i okazuje się, że śmierdzi trupem – większość stron aktualizowana w 2008, 2010 to święto. Do testowania pobierania plików nie dotarłem – skoro wolniejsze, niż wbudowane strony, to nie chcę nawet sobie tego wyobrażać.

W sumie nie wypada to za ciekawie. Bawiłem się około godziny – możliwe, że potem zużycie procesora spadnie (pobierał do lokalnego cache dane cały czas i szyfrował je), a prędkość wzrośnie, ale IMHO cały projekt dla hobbystów. W zwykłym użytkowaniu Tor znacznie szybszy, bardziej użyteczny (dostęp do wszystkich treści, nie tylko wydzielonego, osobnego skrawka Internetu), choć mniej bezpieczny i trochę inne zastosowanie, jednak.

Deinstalacja: katalog Uninstaller w głównym katalogu programu Freenet i java -jar uninstaller.jar Działa ładnie, usuwa wpis z crona i cały katalog. I w sumie to jedyny element programu, do którego nie mam zastrzeżeń.

Nie taki błąd straszny, jak go malują.

Dziś przeczytałem wpis na Niebezpieczniku o backdoorze w switchach. I z jednej strony ewidentny fail, a z drugiej błąd niezupełnie (czy też: nie tylko) tu leży…

  • Jaki administrator zostawia dostęp po SNMP włączony (niestety, sporo administratorów nie widzi w tym nic złego, zwłaszcza jeśli tylko RO jest)?
  • Jaki producent sprzętu ma w defaulcie włączone SNMP (niestety, wielu vendorów domyślnie włącza SNMP z domyślnymi community)?
  • Kto daje nieograniczony dostęp ze świata do klasy zarządzania swoich urządzeń?
  • Poznanie MAC mimo wszystko nie jest trywialne. Trzeba mieć dostęp albo po warstwie drugiej (ew. do odczytu tablicy ARP urządzenia, które ma dostęp po L2 do switcha), albo do wspomnianego SNMP.

Jasne, ludzie się mylą. Jasne, kwestię hasła serwisowego (padło pytanie, czy inne sprzęty mają coś takiego – chyba każdy sprzęt sieciowy ma możliwość przynajmniej resetu hasła przy podłączeniu się RSem, sporo ma hasła serwisowe – mam nadzieję, że tylko po RS dostępne). Jasne, taki zdalny backdoor nie powinien mieć miejsca. Ale czy to naprawdę dramat?

PS. Dziś spotkałem się z opinią (na szczęście od nikogo ode mnie z firmy), że trzymanie dokumentów firmy (nie najtajniejsze tajemnice, ale nie dane dostępne na publicznym WWW) na Google Docs to nic złego. W porównaniu z tym backdoor w switchu, którego można zneutralizować/zminimalizować to IMO pikuś.