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.

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ś.

Pojutrze wybory.

Ponieważ na Blipie ciężko przekazać całą myśl spójnie, to jeszcze raz poruszę kwestię, którą już kiedyś poruszałem, czyli jak nie głosować w wyborach.

Czemu ktoś miałby nie głosować? Powodów jest wiele. Weźmy taki brak przekonania co do kandydata. Iść aby iść, kiedy ma się do tego tak luźny stosunek, że można rzucać kostką/monetą i na tej podstawie skreślać zdecydowanie nie warto. Bez sensu przysparza się w takim przypadku pracy komisjom, zużywa się więcej kart i napędza się to wszystko. Takie typowo konsumpcyjne i bezrefleksyjne podejście jak dla mnie.

Oczywiście, głosowanie przeciw kandydatowi też jest powodem do głosowania, ale z głosowaniem przeciw mamy raczej do czynienia w drugiej turze. Nieoddanie głosu w pierwszej też wpływa na wynik, zwłaszcza może wpłynąć na to, czy będzie druga tura, ale zakładam, że czytają ludzie myślący i mający tego świadomość, a nie tylko podniecający się TV.

Kiedy jeszcze nie warto głosować? Padł argument, że zawsze znajdzie się kandydat z którym mamy „najbardziej zbieżne” poglądy. No nie zawsze, moim zdaniem, ale nawet jeśli, to niekoniecznie „największa zbieżność” jest wystarczającą motywacją do tego, żeby telepać się kilkaset km. Zaświadczenia do głosowania to świetna sprawa, ale tylko w teorii. W praktyce, jeśli pracuje się w innym mieście, to załatwienie zaświadczenia to przejazd tych kilkuset km w dzień powszedni. W praktyce – koszt przejazdu to zawsze będzie i dzień urlopu (urzędnicy państwowi mają wyborców – a w zasadzie petentów ogólnie – w dupie i nawet w głupią jedną czy dwie soboty w miesiącu urzędy nie są czynne, choćby nawet w skróconych godzinach). Szczególnie przy takich niespodziewanych wyborach upierdliwe, bo przy planowanych można po prostu wcześniej pomyśleć i wziąć zaświadczenie z wyprzedzeniem.

Dlatego nie ma się co dziwić niegłosującym.

A w ogóle, jeśli prawdą jest to, co wyczytałem w gazecie niedawno, że obywatele polscy mieszkający na stałe za granicą mogą głosować w dowolnym obwodzie, za okazaniem stosownego zaświadczenia, to mamy do czynienia ze sporą dziurą bezpieczeństwa. Przecież takie osoby niezupełnie nielegalnie mogą głosować w różnych komisjach. I pewnie nikt tego nie sprawdza (a może ktoś był w wyżej niż pojedynczy obwód wyborczy w hierarchii i wie, jak jak to wygląda na wyższych szczeblach, czy dane dopisanych osób są jakoś sprawdzane pod kątem dublowania się na szczeblu wojewódzkim/krajowym)?

PS. Dla jasności – akurat będę jechał te kilkaset km, m. in. po to, by zagłosować (znaczy termin wyjazdu przesunął się od dzień). Ale tylko dlatego, że – wyjątkowo – jakiś kandydat został upatrzony, którego popieram trochę bardziej. W przeciwnym wypadku z czystym sumieniem bym nie poszedł głosować.

PS2. Uprasza się o nieagitowanie w komciach. Szczególnie, że jest ta parodia ciszy wyborczej. Ale i tak zostaną uznane za spam (patrz zasady).

Jak mieć bezpieczne hasło i nie popaść w paranoję?

Za sprawą włamania na Wykop wywiązała się dyskusja o hasłach. Pisali o tym groszek (dead link), kUtek, Zal i generalnie z żadnym zaprezentowanym podejściem do końca nie mogę się zgodzić.

Jak dla mnie wszystkie te zabawy ze skrótami itp. są nie do przyjęcia. Albo hasło jest takie, że trzeba je pamiętać (czyli umieć wpisać z głowy), albo można sobie pozwolić na jakiś portfel haseł (i wtedy nie ma się co bawić, tylko można wygenerować losowe). Hasłami losowymi nie ma się co zajmować – mają być długie i możliwie losowe.

Pozostają hasła do zapamiętania. Tu trzeba rozróżnić serwisy krytyczne (także maile, na które mamy ustawione przypominanie haseł) i resztę. Krytyczne łatwo wyróżnić – możliwe większe straty finansowe, wycieki prywatnych danych itp. Pierwsza sprawa, to – jeśli to tylko możliwe – do serwisów krytycznych chronimy także login. Po co? Prosta sprawa, jeśli ktoś będzie chciał nam zrobić kuku, to nie ma co ułatwiać mu sprawy. Plus, niektóre serwisy (zwł. banki) mogą blokować po określonej ilości nieudanych logowań, więc źli ludzie mogą nam uprzykrzyć życie już samą znajomością loginu.

Poza tym, do serwisów krytycznych mamy możliwie mocne, nieschematyczne hasła, które pamiętamy, logujemy się możliwie tylko z zaufanych maszyn i w sposób bezpieczny (nie plain text), nie 20 zakładek na innych portalach otwartych w tym czasie. Jeśli zdarzy nam się logowanie awaryjne z niezaufanej maszyny/niebezpiecznym protokołem – jak najszybciej wymieniamy hasło (z bezpiecznej maszyny). Reszta w rękach admina serwisu. No może jeszcze nie chwalimy się zbytnio, które serwisy są dla nas krytyczne. 😉

Reszta, czyli serwisy niekrytyczne. Tak naprawdę zwykły użytkownik może zrobić tylko trzy rzeczy. Pierwsza, absolutnie konieczna: nie stosujemy takich samych haseł. Przy akcjach jak ta z Wykopem i podobnych, w razie czego włamywacz uzyska dostęp do jednego serwisu. Po takich włamaniach zwykle włamywacz automatem sprawdza, czy można zalogować się z takim samym loginem i hasłem na inne portale (chyba, że darzy nas szczególną uwagą, ale to trochę inna sprawa).

Jeśli chodzi o hasła, reszta to sprawy wtórne – jeśli stosujemy schemat/schematy to po takim włamie włamywacz raczej nie będzie miał dostępu do danych z kilku serwisów (chyba, że darzy nas szczególną uwagą, albo jedna i druga baza wpadną w ręce kogoś, kto nas darzy). Oczywiście warto zmieniać hasła okresowo i mieć różne schematy/hasła, ale wygoda kłóci się z bezpieczeństwem.

Sprawa druga: ustawiamy przypominanie/zmienianie hasła na zaufanego maila. W razie włamu przyda się do odzyskania dostępu, choćby po to, żeby zamieścić sprostowanie.

Sprawa trzecia, nieoczywista. Nie ufamy niekrytycznym portalom. Koniec, kropka. Mogą być poziomy dostępu (jak na Joggerze) ale nie znaczy to, że zamieszczone na wyższym poziomie dane są/będą niedostępne dla innych ludzi. Można to traktować jako kosmetykę, ale pisanie tam rzeczy, których nie napisało by się na stronie głównej to proszenie się o potencjalne kłopoty. Generalnie im mniej prywatnych/wrażliwych danych na takich serwisach, tym lepiej.

Trzeba przyjąć, że włamy itp. na serwisy niekrytyczne będą się zdarzały – przy ich ilości jest to jedynie kwestia czasu. I raczej będą to ataki na bazę serwisu, niż na nasze konto (chyba, że ktoś darzy nas szczególną uwagą), dlatego hasło należy mieć nieoczywiste, długie (dodanie przedrostka w stylu abcdefg (oczywiście nie chwalimy się nim) drastycznie wydłuży czas łamania hasła, jeśli ktoś nas „polubi”, ale IMO nie ma co popadać w paranoję. Co tak naprawdę się stanie, jeśli ktoś skorzysta z naszego konta do Wykopu (i tylko z niego)?

Po wykrytym włamaniu oczywiście zmieniamy hasło. Jeśli stosujemy hasła schematyczne, z oczywistym schematem, należy zmienić schemat i wymienić wszystkie hasła objęte danym schematem. Tyle dobrych rad, praktyka pokazuje, że kompromis między użytecznością a bezpieczeństwem zawsze jest trudny. Dlatego polecam określenie krytycznych serwisów i naprawdę dbanie o bezpieczeństwo w ich przypadku. W przypadku niekrytycznych i tak pewnie lenistwo AKA użyteczność AKA wygoda weźmie górę…