Niebezpieczny świat.

Ostatnie wydarzenia coraz bardziej skłaniają mnie do – paranoicznego, przyznaję – wniosku, że żadne dane, niezależnie od tego jak zabezpieczane, nie są bezpieczne i prędzej czy później nastąpi ich ujawnienie. O ile tylko komuś będzie zależało.

Na początek – hasła. Niektóre portale, jak Allegro, trzymają hasła otwartym tekstem. Niezależnie od podjętych środków bezpieczeństwa, przy takim podejściu wyciek tych haseł jest IMHO kwestią czasu.

Wiele nie zmienia trzymanie skrótów (hashy) haseł. Ostatnio – poza małymi wyciekami polskimi typu JPwyciekły hashe haseł z Gawkera i niesolone hashe haseł z FSF. To drugie jest wielką porażką, bo mówimy o środowisku z – teoretycznie – wysoką świadomością dotyczącą bezpieczeństwa i spraw technicznych, a tymczasem korzystano z najsłabszej funkcji skrótu i w najgorszym wydaniu. Powinno być najlepiej, było najgorzej. Klasyczne szewc bez butów chodzi.

Zresztą, pomału można zacząć stawiać znak równości między wyciekiem hashy haseł (zwł. niesolonych), a wyciekiem samych haseł – crackery MD5 są coraz szybsze. Co prawda to tylko benchmark, ale najnowsza wersja crackera whitepixel, który podobno jest chyba obecnie najszybszy, sprawdza 33 miliardy (nie miliony, miliardy) kombinacji na sekundę (dla pojedynczego hasha). Na potężnym, co prawda (4 dwurdzeniowe GPU; 1,2 kW poboru prądu przy obciążeniu, 2700 USD w tej chwili), ale pojedynczym komputerze PC.

Inne funkcje skrótu też nie są wiele lepsze. SHA1 to wg tego benchmarku w tym momencie 390 milionów kombinacji na sekundę, oczywiście na pojedynczej maszynie. A przecież bez problemu można mieć tych maszyn więcej, i to za niewielkie pieniądze.

Ale nie tylko haseł się to tyczy. Dane, które nie powinny ujrzeć światła dziennego wyciekły z „wewnętrznego”, rządowego systemu. Oczywiście mowa o wikileaksowym Cablegate. Swoją drogą ciekawe, jak długo w tych okolicznościach w stanie nieujawnionym pozostanie polisa Wikileaks (dead link)?

Głośno też było o rzekomym backdoorze w OpenBSD, a konkretniej IPSEC, który miało zamieścić FBI 10 lat temu (celowo nie linkuję, AFAIK rozeszło się po kościach i backdoora nie było, ale nie śledziłem). Co nie jest takie niemożliwe, bo korzystając z różnych „dziwnych” właściwości matematyki, da się zmusić algorytm szyfrujący, by „wyciekał” klucze. W mało zauważalny sposób – na przykład 128 bajt zaszyfrowanej wiadomości, przexorowany przez arbitralny klucz, będzie ujawniał klucz, którym była szyfrowana cała wiadomość. Albo coś na podobnej zasadzie – sky – i wiedza matematyczna – is the limit.

I raczej nie wierzę w to, żeby programista – czy użytkownik, który zwykle nie ma wielkiej wiedzy matematycznej/kryptograficznej, był w stanie coś takiego zauważyć. Przykład tego widać było przy dziurze w OpenSSL w Debianie. Efekt był dość spektakularny – do każdego konta umożliwiającego logowanie SSH po kluczach można się było dostać przy – IIRC – maksimum 65 tys. prób (bo tylko tyle różnych kluczy było generowanych). Na dowolnym systemie. O ile tylko klucz publiczny użytkownika był generowany na podatnym Debianie.

Niedowiarkom przykład ciekawych właściwości matematycznych można łatwo i zrozumiale zaprezentować na przykładzie listy 18 ulubionych filmów. Oto test (przetłumaczyłem na polski, z wyjtkiem tytułów, polecam IMDB):

Zrób test i dowiedz się, jaki film jest twoim ulubionym. Ten prosty matematyczny quiz przewiduje, który z 18 filmów spodoba ci się najbardziej. Nie pytaj w jaki sposób, ale to działa!

  • Wybierz cyfrę z zakresu 1-9.
  • Pomnóż ją przez 3.
  • Do wyniku dodaj 3.
  • Otrzymany wynik ponownie pomnóż przez 3.
  • Zsumuj obie cyfry otrzymanej liczby. Wynik to numer twojego przewidzianego ulubionego film na poniższej liście:

Lista filmów:

  1. Gone With The Wind
  2. E.T.
  3. Blazing Saddles
  4. Star Wars
  5. Forrest Gump
  6. The Good, The Bad, and the Ugly
  7. Jaws
  8. Grease
  9. The Joy of Anal Sex With A sheep
  10. Casablanca
  11. Jurassic Park
  12. Shrek
  13. Pirates of the Caribbean
  14. Titanic
  15. Raiders Of The Lost Ark
  16. Home Alone
  17. Mrs. Doubtfire
  18. Toy Story

W zasadzie koniec mijającego roku widzę trochę na zasadzie do kogóż to włamano się dzisiaj? I to tylko patrząc na najgłośniejsze i ujawnione sprawy i dziury (taki wariant minimum dla administratora – trochę wypada się w security orientować)…

Korzystając z okazji – bo to ostatni wpis, życzę wszystkim użytkownikom komputerów (ze specjalnym uwzględnieniem adminów) w nadchodzącym Nowym Roku mniej dziur bezpieczeństwa i awarii.

UPDATE: Paranoje dotyczące postępującej szybkości łamania hashy studzi ten wpis o przechowywaniu haseł. Polecam.

Etyka AdBlocka?

Widzę, że ostatnio znowu głośno się zrobiło z powodu blokowania reklam AdBlockiem. W sumie wiele hałasu o nic, bo sprawa jest prosta – reklamy na stronach to dołączona, niezamówiona treść i transakcja wiązana. Jeśli czytam wpis na blogu, to nikt nie wymaga, bym przeczytał wszystkie wpisy, prawda? Jeśli czytam maile, to nikt nie wymaga ode mnie czytania spamu, prawda? Użytkownicy przeglądarek tekstowych i bez kompletu pluginów (flash) też pewnie korzystają „nieuczciwie”, bo mogą coś zablokować… Idiotyczne podejście.

Blokowanie reklam i inne sposoby zwiększania czytelności treści to nic złego, więc na moim komputerze mogę oglądać strony, które chcę, nie oglądać stron, których nie chcę. Mogę surfować po Internecie w trybie tekstowym, z wyłączonym Flash, zmienionym CSS, wyłączonym dźwiękiem, blokowaniem fragmentów stron, albo wyciętą literką a, jeśli mi się to zamarzy. Tak długo, dopóki to mój komputer i mój dostęp do Internetu. Jeśli ktoś dostarczy mi komputer i łącze za darmo i w warunkach korzystania będzie zapis, że do korzystania wymagane jest oglądanie czegoś tam (patrz FreeM), to będziemy rozmawiać inaczej (jacyś chętni?). Wszystko inne to zamach na wolność użytkownika Internetu.

Nie ma się co dać zwariować ludziom twierdzącym, że nasz komputer i łącze to nie do końca nasz komputer. Oni mają na względzie wyłącznie własny interes i przypuszczam, że reprezentują raczej firmy emitujące reklamy, niż właścicieli stron (no chyba, że uznamy SEO spamerów za właścicieli stron…). Podobnie jak przy prawach autorskich dotyczących muzyki – nie chodzi o interes artystów (muzyków), tylko o interes wytwórni.

Poza tym, większość stron obwieszonych reklamami jest zwyczajnie słaba. Ich jedyną „zaletą” jest dobre spozycjonowanie się w wyszukiwarkach i ew. chwytliwe tytuły. No i dostarczanie zysku właścicielom i pośrednikom. Jeśli ktoś naprawdę uważa, że warto docenić autora, to można skorzystać chociażby z Flattr, który póki co jest niestety mało popularny, a który jest prostym, uczciwym i świadomym sposobem na wynagradzanie autorów (niekoniecznie stron – każda twórczość może zostać wynagrodzona).

Tymczasem (sam emitując reklamy – kto chce, niech ogląda, kto chce, niech się wystawia, komu przeszkadza, niech blokuje; nie wnikam i szat nie drę, że komuś wygodniej bez reklam) polecam AdBlock Plus, moje filtry Adblock i dodawanie wszelkich inwazyjnych sieci i reklam. I mam nadzieję, że niebawem będzie moduł udający, że Adblocka nie ma.

A wszelkie rozmowy nt. etyki w kontekście AdBlocka i blokowania reklam w Internecie uważam za grube nieporozumienie. Jeśli ktoś żąda wynagrodzenia za treść, to robi płatny dostęp i tyle. Reszta jest darmowa i nie ma co się dać zwariować.

Optymalizacja MPD.

Jakiś czas temu znalazłem coś, co uważam za ostateczne rozwiązanie dla muzyki pod Linuksem. Ale, po pewnym czasie używania, stwierdziłem, że coś to MPD za duży apetyt ma na procesor. Przypomniał mi o tym sirmacik przy problemach z „charczącym” dźwiękiem, których powodem była różna częstotliwość muzyki i karty. Konkretnie – odtwarzanie Radio Baobab owocowało zużyciem procesora ok. 8-12% wg top (strumień ogg). Niby żaden dramat, bo laptop demonem szybkości nie jest, ale szybki test na mplayerze pokazał, że jemu wystarcza 3-5%.

Oczywiście mplayer to inna bajka – ma wykrywanie procesora podczas uruchomienia, a MPD takich wodotrysków niestety nie ma (strumienia PR 3, czyli Trójki też nie umie odtworzyć, niestety Trójka działa w MPD, wymagany odpowiedni format źródła i odpowiednia wersja MPD – w 0.15.12-1.1 nie działało, mimo zmiany formatu, w 0.15.15-2 z Debiana unstable działa). Zaczął się więc debug. Po pierwsze, trafiłem (nie po raz pierwszy) na świetną stronę opisującą tuning MPD. Po wypróbowaniu wszystkich praktycznie wszystkich sposobów na wyłączenie resamplingu, po braku jakichkolwiek efektów, byłem gotów na przekompilowanie MPD i bibliotek z włączeniem optymalizacji na PIII (bo karta – tania karta USB – uparcie działała w 48 kHz), ale…

Drugiego dnia dobrzy ludzie na IRCu zwrócili moją uwagę na niepozorny i zdecydowanie niewyeksponowany w owym czasie (czytaj: słowa o nim nie było) na wspomnianej stronie parametr samplerate_converter. Okazało się, że jest obecny i opisany w konfigu (cóż, tam nie szukałem, skoro jest dedykowana strona o tuningu). Okazało się, że po dodaniu w konfigu linii:

samplerate_converter            "internal"

MPD zużywa dokładnie tyle procesora, co mplayer – 3-5%. Różnica w jakości jest słyszalna, ale jeśli ktoś słucha głównie radia internetowego, na słabym sprzęcie audio i nie na słuchawkach to spokojnie i bezboleśnie daje się słuchać. Jeśli ktoś ma słaby sprzęt lub nie ma koprocesora, to wręcz nie ma wyboru. 😉

PS. Oczywiście dopisałem stosowny fragment na ww. wiki, w sumie wypada od tego zacząć, żeby sprawdzić, czy o resampling chodzi… Nawiasem, jeśli jest problem z dźwiękiem pod Linuksem, szczególnie w mpd czy mplayerze – przerywa, harczy, tnie, to prawdopodobnie też kwestia ustawień resamplingu. Ww. strona na wiki podaje przyczynę i sposoby rozwiązania.

Zamykają Delicious. I co teraz?

Branch Predictor donosi, że zamykają Delicious. I przyznaję, że mnie to martwi, bo po pierwsze korzystam z tego portalu (co widać w o mnie), pod drugie sama idea bardzo mi się podobała. Nie jest to co prawda lokalna wymiana linków (tylko) ze znajomymi, ale za to były tagi, byli inni ludzie, dobrze działało wyszukiwanie. A samo trzymanie bookmarków na zewnątrz, z dostępem z wielu miejsc (komórka, różne komputery) to świetna sprawa.

No ale trudno, będzie trzeba poszukać czegoś w zamian. Tymczasem pora pomyśleć o tym, jak zrobić backup linków z Delicious. Szybki gógiel zwraca 10 sposobów na backup linków z Delicious, a ja zwolennikom CLI polecam dodatkowo ten szybki sposób:

wget --no-check-certificate --user=username --password=password -Obackup.xml https://api.del.icio.us/v1/posts/all

Oczywiście przepis pochodzi z tego wpisu.

Teraz, mając backup, nie pozostaje nic innego, jak tylko znaleźć działającą alternatywę opartą o tagi (sugestie mile widziane) i pomyśleć nad importem.

Dodatkowo dobrze jest skorzystać z pierwszego sposobu ze wspomnianych 10 (Export to HTML format) – sposób nie tak dobry do importu, ale za to daje klikalnego gotowca do użycia w przeglądarce. Niestety, tagi są widoczne tylko w źródle strony.

 

Co się stało z Wikileaks?

Tak naprawdę ciężko w tej chwili ocenić, co się dokładnie stało i kto stał za poszczególnymi działaniami. Na pewno przeciek zwany Cabelgate namieszał w światku dyplomatycznym i medialnym. Można interpretować na różne sposoby skutki i to, co rzeczywiście się działo. Być może miało miejsce cyberstarcie (albo raczej cyberdemonstracja), na pewno była to próba wolności w Internecie. Zatem po kolei…

Fakty:

Wikileaks w ramach akcji Cabelgate postanawia opublikować treść niejawnych/tajnych depesz dyplomatycznych, pozyskanych z ambasad USA. Ich strona pada ofiarą DDoS (na razie będę korzystał z tej nazwy), trudno jednoznacznie określić przez kogo generowanego, także zwykli ludzie pomagali w DDoSie strony Wikileaks (artykuł jest po ostrej edycji, pierwotnie nawoływanie do opowiedzenia się po jednej ze stron przy pomocy wget wyglądało na opinię redakcji).

Dodatkowo, bez wyroku sądu, wprowadza się cenzurę różnego rodzaju (zlikwidowana domena), kolejne firmy likwidują konta bankowe organizacji Wikileaks i ich usługi. Założyciel Wikileaks zostaje aresztowany.

Z drugiej strony ludzie – niekoniecznie związani z serwisem Wikileaks – pomagają tworzyć mirrory strony, inne domeny przekierowujące na stronę Wikileaks. Zaczynają się odwołania do strony nie po domenie, tylko po adresie IP. Firmy, które wystąpiły przeciw Wikileaks (PayPal, Visa, Mastercard, Amazon) stają się celem Anonymous – niezorganizowanej, ochotniczej grupy (bardziej: masy, tłumu) internautów – w ramach Op Payback. Ostatecznie strony Wikileaks nie udaje się zablokować/zlikwidować.

Anonymous mają mało finezyjną metodę działania – uruchamiają LOIC i przeprowadzają DDoS na wybrane witryny. Mało finezyjne, ale skuteczne. Pytanie, czy określenie DDoS jest trafne, jeśli mamy do czynienia ze zwykłymi ludźmi korzystającymi ze swoich prywatnych łącz. IMHO jest to bardziej internetowy odpowiednik zgromadzenia się pod siedzibą firmy. Taka cyberdemonstracja. Bo tak naprawdę Anonymous wcale nie są anonimowi. Więcej o Anonymous i Op Payback.

Minimum dwa duże portale pomagały/nie utrudniały działania Wikileaks – Facebook, który nie zlikwidował WL konta i Google, które linkowało z wyszukiwarki do IP strony po likwidacji domeny, pytanie czy było to przypadkowe, czy celowe działanie.

Ostatni istotny fakt: Wikileaks nie udało się skutecznie „zatopić”, czyli „zniknąć”, nawet z „oficjalnego” Internetu. Bo skuteczna cenzura w „oficjalnym” Internecie spowodowałaby najwyżej przeniesienie się treści Wikileaks do „podziemnego” Internetu w stylu opisanego przeze mnie Freenet, GNUnetu czy – najpopularniejszego chyba – Tora. Ale nawet tego nie udało się osiągnąć. Nie została też ujawniona treść ubezpieczenia Wikileaks.

Co zostało osiągnięte?

Opublikowano dane dyplomatyczne, nie tylko USA, ale wielu innych krajów. Ale to głównie USA jest wściekłe. Ludzie mogli zobaczyć, co robią politycy, politycy – co robią ich odpowiednicy w innych krajach. Z jednej strony trudne do oszacowania (zostawiam politologom), z drugiej – taka sytuacja trochę (z punktu widzenia polityków) miała miejsce od zawsze, tylko to wyłącznie politycy decydowali, które informacje zebrane przez wywiad i kontrwywiad podać do publicznej wiadomości. Zwykli obywatele do tej pory nie mieli niezależnego dostępu do takich danych.

Obnażona została słabość istniejącego systemu DNS i jego podatność na manipulację (szczególnie ze strony USA). Obnażona została słabość, uległość i tendencja do politycznej poprawności(? – może chodziło o zwykłą pogoń za zyskiem, albo o powiązania/zależność od rządu?) firm (PayPal, Visa, Mastercard, Amazon). Oraz ignorowanie przez nie podstawowych wolności organizacji i obywateli. Bo zamknięcie kont bankowych i usług było samowolne, bez wyroku sądu (BTW ciekawe jak się to skończy – z dobrym prawnikiem w USA pewnie można sporo kasy wygrać po czymś takim). Co więcej, wszystko wskazuje na to, że aresztowany założyciel Wikileaks, Julian Assange, nie złamał żadnego z praw USA…

Dodatkowo, wrócił temat wolności słowa w Internecie, sposobów zabezpieczania neutralności sieci (słychać o rozproszonych, niezależnych DNS (dawniej link do http://dot-p2p.org/ – obecnie 404)). Może wpłynie to na sposób prowadzenia polityki i rządzenia? Szczerze mówiąc, uczciwy rząd i politycy nie ma się czego bać i może działać w sposób jawny dla obywateli, prawda? ;->

Z ciekawostek – na skutek rozłamu wewnętrznego w Wikileaks, powstała konkurencja dla portalu – Openleaks.

Upgrade Lenny do Squeeze – co poszło źle.

Ponieważ system po nieudanej aktualizacji już działa (w ogóle okazało się, że przyczyną „problemów z grubem” była w rzeczywistości najprawdopodobniej niedociśnięta taśma od stacji dysków) i mogę dostać się do swoich danych, to pora na konkrety i przestrogę.

Komunikat, który mówił o problemach z przejściem na dependency based boot przy upgrade z Lenny’ego do Sarge Squeeze i który może nie tyle zignorowałem, co chciałem zająć się nim po reboocie (bo zapisałem) wyglądał dokładnie tak:

Unable to migrate to dependency-based boot system

Tests have determined that problems in the boot system exist which prevent migration to
dependency-based boot sequencing:

insserv: warning: script 'K20atieventsd' missing LSB tags and overrides, insserv: warning: script
'atieventsd' missing LSB tags and overrides,

If the reported problem is a local modification, it needs to be fixed manually. If it's a bug in the
package, it should be reported to the BTS and fixed in the package. See
http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot for more information about how to fix the
problems preventing migration.

To reattempt the migration process after the problems have been fixed, run "dpkg-reconfigure sysv-rc".

Skrypt atieventsd pochodzi z flgrx, z którego nie korzystałem od migracji na Lenny’ego. Taka zemsta ATI/AMD zza grobu.

Ale co sobie powalczyłem, to powalczyłem (kolejne sprawności zdobyte: instalator nie jest taki świetny i ma głupie defaulty dla instalacji gruba – kto to widział, że przy instalacji wszystkiego na sdb i niczego na sda chce umieścić gruba na sda?; rescue mode daje radę). Okazało się, że CD-ROM też już nie działa – zasilacz od dawna był słaby i miał problemy z kręceniem dwoma dyskami, ale teraz doszło do tego, że i jednym nie kręci, jeśli CD-ROM jest podpięty. No chyba, że stacja dyskietek tak bruździła. Nie wiem, nie wnikam, działa – nie dotykam (ładne rymowane motto, swoją drogą).

UPDATE: Inna możliwa przyczyna, to własny – a nie dystrybucyjny – kernel. Dziś kolejna osoba miała problem ze swoim kernelem na Squeeze, identyczne objawy (pusty /dev), a na dystrybucyjnym działało OK. Instalacja linux-image-2.6-amd64 (lub linux-image-2.6-486 dla systemów 32-bitowych) przed rozpoczęciem upgrade’u do Squeeze wydaje się dobrym pomysłem. 😉 Zresztą jest to opisane w release notes procesu aktualizacji Lenny do Squeeze (wersja robocza; TBH nie czytałem przed aktualizacją – nie wiem czy był już dostępny – mea culpa).

Historia pewnego upgrade

Minęły prawie 2 lata odkąd zrobiłem upgrade tej maszynki do Lenny’ego. Stwierdziłem, że Squeeze, którego używam od dłuższego czasu jest dobry, przydałoby się parę nowych pakietów no i można przetestować jak ten upgrade wychodzi. KDE 3.5 też jakoś nie jest tym, co mi ostatnio pasuje (a pasuje mi LXDE), więc stwierdziłem, że parę dni wolnego to dobry moment, żeby zrobić upgrade.

Problem numer jeden, który uniemożliwił mi zalecaną wersję upgrade’u, to za mała ilość wolnego miejsca. 1 GB wolnego na /, po porządkach 1,3 GB. Zdecydowanie nie to, co tygrysy lubią najbardziej. Postanowiłem, że po prostu podmienię wpisy w sources.list z lenny na squeeze, zrobię wajig update; wajig upgrade a następnie wajig dist-upgrade. Wcześniej wywaliłem jeszcze javę i OpenOffice. Gołe dist-upgrade niestety nie mieściło się.

Update poszedł bez problemu, po nim kontrolny reboot. Wszystko ładnie działa. Pora zatem na dist-upgrade. Ten też w zasadzie przebiegł bezproblemowo. Jedyne co pojawiło się z dziwnych rzeczy, to ostrzeżenie, że nie może korzystać z dependency based boot, które skrypty przeszkadzają i gdzie szukać pomocy. Oczywiście zapisałem sobie te komunikaty, dałem OK. Update się zakończył, pora na reboot.

I tu zaczęły się schody. Przy próbie montowania /home z osobnej partycji, stwierdził, że /dev/hda3 nie istnieje i zaproponował uruchamianie w maintaince mode. Hm! Stwierdziłem, że pewnie kwestia kernela (mam własny), więc doinstaluję dystrybucyjny. Prawie się udało, niestety grub nie chciał się zaktualizować – brak dysków w /dev. Faktycznie ich nie było. Trochę powalczyłem ze skryptami startowymi, które były prawdziwą przyczyną zamieszania (bez większych sukcesów, namierzyłem jedynie nieuruchomiony hald) i stwierdziłem, że skoro / jest na osobnej partycji, to najszybciej będzie zainstalować system debootstrapem. Przy okazji zmigruję z ext3 na ext4.

Tylko jak uruchomić debootstrap, jeśli USB jest nieczynne (dziękujemy padniętym kondensatorom na płycie), a live nie ma? Przełożę dysk! Tak też zrobiłem. Niedługo później system był zainstalowany. Teoretycznie, bo aktualnie przy wejściu do gruba wykonuje malowniczy reboot.

Właśnie ściągam płytę instalacyjną. Mam nadzieję, że nagrywarka i czytnik są sprawne i że po zainstalowaniu instalatorem będzie się bootował.

Podsumowując: mam dość upgrade’ów, a konkretnie żonglowania sprzętem, na dłuższy czas, a już na pewno nie na sprzęcie, gdzie w prosty sposób nie można odpalić live. Najlepiej z USB.