Dysk spocznij!

Pamiętacie tekst Linux mordercą laptopów? Pamiętacie gwałtownie przyrastającą liczbę cykli parkowań głowicy dysku Waszego laptopa? Wygląda na to, że mamy w końcu poprawkę - wydaną jednocześnie dla wersji Hardy, Interpid oraz Jaunty. „Wydaną” to określenie nieco na wyrost, bo poprawiony pakiet wylądował póki co w repozytorium „proposed” każdego z wymienionych wcześniej wydań, więc proste sudo apt-get update niczego nie da. Trzeba najpierw uaktywnić to repozytorium a dopiero potem zaktualizować system. Zmieniony pakiet to acpi-support. Celowo nie podaję jak to zrobić - wolałbym żeby przy sources.list grzebali tylko ci, którzy wiedzą co robią.

Gdyby ktoś był tak miły i zechciał się podzielić swoimi wrażeniami po instalacji, byłbym zobowiązany. W tej chwili nie mam Ubuntu na laptopie, a ciekaw jestem, czy łatka załatwia sprawę. Ewentualne błędy warto jest również zgłosić w Launchpadzie.

OMG, it’s ROTATING!

Obrazek: jest rok 1992, czterech kolesi siedzi w pokoju o rozmiarach małej piwniczki, w powietrzu można powiesić sporą siekierę. Ich rówieśnicy obłapiają właśnie w pobliskiej dyskotece co łatwiejsze panny, dźwięki „Voyage, voyage” ledwo dobiegają na ósme piętro wieżowca. Jeszcze je słychać, bo już za chwilę zagłosi je Firefox (nie, nie przeglądarka - nastolatek taki). Firefox, Szwed z pochodzenia, przyłożył rękę do do czegoś, co już za moment, w tym małym pokoju, będzie przedmiotem zaciekłych debat i zawziętej analizy. „Jak oni to zrobili?”, „Jak wyciągnąć muzykę?”, „Jak zrobić coś podobnego?” Właściciel pokoju podłącza właśnie wszystkie kabelki do pudełka, które wygląda na przerośniętą klawiaturę. Najważniejszy kabelek biegnie do wieży. Już za chwilę się zacznie, już czuć w pokoju pełne napięcia wyczekiwanie…

Ta klawiatura to oczywiście Amiga 500, zaś Firefox, jako członek grupy grupy Phenomena przyłożył rękę do dema Enigma - produkcji, która w te letnie wieczory rozpalała kilku nastolatków daleko bardziej niż najzgrabniejsze koleżanki. Cóż, jak widać od samego początku nie byłem normalny.

Na Enigmę natrafiłem dziś zupełnym przypadkiem i postanowiłem się podzielić tą radością. Dla jednych młodość to płyty Beatlesów, dla mnie to kilkunastoletni dzieciak ze Szwecji, który nauczył się obsługiwać trackera.

Właściciel tej Amigi, tej wieży i tego pokoju czasem tu zagląda. Idę o zakład, że nim szarpnie wzruszenie, gdy to przeczyta. Liczę też, że w końcu się umówi na tą wódkę, którą sobie dawno temu obiecywaliśmy.

Na koniec najlepsze. Niespodzianka. Po latach do muzyki z „Enigmy” przysiadła legenda amigowej muzyki - Virgill. Dobry ów człowiek machnął taki remiks, że proszę siadać, drzwi zamykać. Zrywa beret i skalpuje na poczekaniu. Udostępniam go niniejszym, żeby nie narażać was na 140 MB musicdiska, do którego którego należy ten utwór. Autorów musicdiska, jak i samego Virgilla na wszelki wypadek przepraszam.

Tyson jest w formie

Jeżeli wydaje Ci się, że naukowcy to nudni jajogłowi smęcący coś o rzeczach, od których samych tylko nazw znacząco spada Ci ciśnienie, to powinieneś obejrzeć fragment wywiadu z Neilem deGrasse Tysonem. Jeżeli jesteś zakochany w nauce, tym bardziej powinieneś to obejrzeć. Dowiesz się jak wygląda śmierć w czarnej dziurze (i dlaczego określa się ten proces mianem „spaghettyzacji”) oraz gdzie nie powinno Cię być w piątek, trzynastego kwietnia 2036 roku. Do tego uśmiejesz się jak na najlepszym programie rozrywkowym.

Zapraszam.

Koniec

Musiałem o tym napisać, chociaż przede mną napisali już wszyscy zapewne: Apple udostępnia swoją bibliotekę muzyczną bez DRM. Niemal dwa lata temu pozwoliłem sobie podziękować Jobsowi za umowę z EMI. Od wczoraj dołączyły pozostałe wytwórnie sprzedające swoje nagrania via iTunes - poprzez tzw. „iTunes Plus” (because it sounds so much better than calling everything else “iTunes Minus.), czyli za $1.29 można kupić pozbawione DRM nagrania w lepszej jakości (w tej chwili jest to osiem milionów utworów, do końca marca dostępny w ten sposób będzie już pełny katalog).

Co to oznacza? Ano dokładnie to, że DRM w nagraniach audio właśnie umiera szybką śmiercią. ŻADEN sklep nie poradzi już sobie, oferując nagrania obłożone zabezpieczeniami - musi co najmniej udostępniać równolegle nagrania bez cyfrowej kłódki. Stąd już tylko krok do głosowania portfelem przez klientów - i do spadku cen. Czy ktoś w Polsce odważy się pójść w ślady Apple i próbować zdominować rynek nim zrobi to polskie iTunes? Prędzej czy później tu się pojawi.

Nie do końca rozumiem tylko dlaczego Apple nie przycisnęło Audible i dlaczego nadal sprzedaje ich zabezpieczone przed kopiowaniem audiobooki? Żeby jeszcze był wybór: nie, można kupić jedynie audiobooki od jednego dostawcy, chociaż wielu innych przebiera nogami żeby tylko dostać się do sklepu ze swoją „wolną” ofertą. Moja chata z kraja, że się tak wyrażę - audiobooki nigdy mnie nie kręciły, jestem wzrokowcem. Niemniej, jest to zastanawiające.

Teraz pora na kolejny ruch ze strony Jobsa - aktualizacja oprogramowania iPodów i iPhone’ów, a właściwie zmiana filozofii ich działania. Co to znaczy, że nie mogę sobie skopiować swojej muzyki z mojego urządzenia na inny komputer? Jestem w stanie zrozumieć dodawanie nowych utworów do biblioteki, ale kopiowanie ich „na zewnątrz”? Jeżeli w pamięci urządzenia siedzi muzyka pozbawiona DRM, to mogę sobie ją przenosić gdzie chcę, racja? Ucieszyło by mnie to daleko bardziej niż rozpoznawanie twarzy w iPhoto 09 czy Genius.

CA+MD5=FAIL!

Ludzie zajmujący się komputerowym bezpieczeństwem żyją w ciekawych czasach. Tak, to klasyczna już chińska klątwa. Najpierw okazało się, że udało się obejść WPA, teraz zaś na placu boju poległ algorytm MD5 a konkretniej - poległ pomysł jego wykorzystania przy tworzeniu skrótów e-certyfikatów.

Krótkie wprowadzenie do tematu for dummies: certyfikat elektroniczny to nic innego jak zestaw danych, który posiada ściśle określoną strukturę i cyfrową kłódkę. Ta kłódka to podpis utworzony z wykorzystaniem klucza kryptograficznego. Po co potrzebny jest certyfikat? Dokładnie po to, po co dowód osobisty - potwierdza tożsamość. Po co potwierdzać tożsamość w Internecie? Ano po to, żeby być pewnym, że na przykład strona, na której się logujemy (czyli wysyłamy do niej poufne informacje - nasz login i hasło) jest dokładnie tą stroną, której ufamy. Powiecie „jest adres w pasku przeglądarki, adres się zgadza!”. Problem polega na tym, że adres w obecnych czasach niewiele znaczy - istnieje sporo technik, które pozwalają na przekierowanie połączeń w sposób niezauważalny dla użytkownika. Adres się niby zgadza, ale serwer, na który wskazuje, to zupełnie inna maszyna. Konsekwencje wysłania jej loginu i hasła na przykład do konta bankowego powinny być oczywiste dla każdego.

Niezawodną metodą na potwierdzenie tożsamości serwera, z którym się łączymy są właśnie certyfikaty. Każda przeglądarka posiada wbudowaną listę autoryzowanych urzędów certyfikacji, którym bezgranicznie ufa. Ta lista to tak naprawdę zestaw kluczy publicznych wydanych przez tych wystawców. Urząd certyfikacji (CA) posiada parę kluczy - klucz prywatny i klucz publiczny. Klucz prywatny CA jest potwornie, potwornie wielką tajemnicą, klucz publiczny zaś może pobrać każdy - przeglądarki, jak już wspomniałem, mają wbudowaną listę kluczy publicznych od najważniejszych CA. Klucz publiczny służy do potwierdzenia, że certyfikat został podpisany kluczem prywatnym tego samego urzędu. Twoja przeglądarka przy łączeniu się ze serwerem z użyciem protokołu HTTPS sprawdza najpierw certyfikat wysłany przez ten serwer - pobiera z niego podpis wykonany kluczem prywatnym CA (któremu ufa, pamiętamy), po czym przy użyciu klucza publicznego (który ma na wbudowanej liście, pamiętamy) potwierdza, że podpis powstał przy użyciu klucza prywatnego wystawcy. W szczegóły wchodzić nie będę.

Wielkie pytanie brzmi: jak powstaje taki podpis? Uzyskuje się go przez zaszyfrowanie kluczem prywatnym certyfikatu - ale nie całego. Ze względów praktycznych z certyfikatu tworzy się tzw. „skrót” (hash) i dopiero ten skrót się szyfruje. Algorytmy odpowiedzialne za tworzenie tego skrótu powinny zapewniać, że niemożliwe jest utworzenie takich samych skrótów z różnych zestawów danych. Na przykładzie naszego certyfikatu - wystarczy zmienić w nim jedną literę a zmieni się cały skrót. Teoretycznie to zapewniają. Teoretycznie.

W praktyce jest tak, że zdarzają się w tych algorytmach tzw. „kolizje”, kiedy dzieje się to, co dziać się nie powinno - powstają identyczne skróty dla różnych zestawów danych (kłania się paradoks dnia urodzin). W jednym z najpopularniejszych takich algorytmów - MD5 - właśnie znaleziono taką lukę. Dlaczego jest groźna? Dlatego, że przy jej wykorzystaniu można wygenerować kolejne certyfikaty, już bez wiedzy CA. W naszym bankowym przykładzie - uzyskując niewinny certyfikat dla zupełnie innej strony, można wygenerować w pełni poprawny certyfikat uroczyście stwierdzający, że jesteśmy PKO BP, czy innym ING Bankiem Śląskim. Teraz wystarczy rozesłać maile, zawierające sfałszowane linki do naszego serwera udającego witrynę banku, na które kliknie jakiś tam procent odbiorców - przeglądarka ofiary nawiąże łączność, sprawdzi podpis CA na otrzymanym certyfikacie i radośnie zamelduje użytkownikowi, że wszystko jest w jak najlepszym porządku. Użytkownik zaloguje się i BUM! - mamy jego login i hasło.

Zabrzmiało groźnie? Na szczęście banki używają dodatkowych systemów zabezpieczeń, które chronią użytkownika przed utratą pieniędzy nawet wtedy, gdy ktoś zaloguje się na jego konto. Najczęściej jest to karta kodów jednorazowych, lub elektroniczny token generujący takie kody na poczekaniu - przed dokonaniem jakiegokolwiek przelewu trzeba wprowadzić kod potwierdzający transakcję. Dodatkowo, można zdefiniować dzienny limit kwoty, jaką można wyprowadzić z konta. Ktoś korzysta z usług instytucji, która nie wymaga podawania kodów autoryzujących transakcję? Wiać jak najprędzej, to was właśnie przede wszystkim dotyczy luka, o której tak się rozpisuję. Istnieje oczywiście sporo serwisów, które bankami nie są, ale które dla większości Polaków są bardzo istotne: na przykład Nasza Klasa czy Allegro. Następstwa przechwycenia loginu i hasła do nich mogą również skończyć się dość nieprzyjemnie.

Problem z MD5 dotyka rzecz jasna tylko tych, którzy logują się na strony podmiotów, stosujących certyfikat wygenerowany z użyciem MD5. Na szczęście to nie jest jedyny algorytm, jakiego można używać. Jest jeszcze SHA-1 i SHA-2. SHA-2 jest w tej chwili całkowicie bezpieczny, SHA-1 wydaje się mieć podobne problemy jak MD5, choć na razie nie jest jeszcze znany sposób ich praktycznego wykorzystania. Oficjalnie nie jest znany, dodajmy. Zrobiłem szybką przebieżkę po stronach opatrzonych certyfikatami i większość używa SHA-1. Z MD5 korzysta na przykład Dropbox.

Jest jeszcze jedna kwestia związana z tym atakiem: atakujący musi z góry przewidzieć treść certyfikatu, jeszcze przed jego wydaniem. Jedną z niewiadomych jest numer seryjny - powinien być losowy. CA, którego certyfikaty podrobiono popełnił szkolny błąd, bo używał certyfikatów numerowanych kolejno. Losowa zawartość pola przewidzianego na numer seryjny uniemożliwia w tej chwili jakiekolwiek podróbki.

OK, pora na najważniejsze: jak sprawdzić czy certyfikat, którego używa serwer, na który się logujemy wykorzystuje wadliwy algorytm? Jak sprawdzić czy numer seryjny jest generowany losowo? Przepis dotyczy Firefoksa i wykorzystuje certyfikat wygenerowany dla Naszej-Klasy.

Najpierw zaglądamy na bezpieczną stronę logowania najpopularniejszego serwisu w tym kraju. Klikamy menu Narzędzia → Informacje o stronie → Bezpieczeństwo a potem na przycisk „wyświetl certyfikat” i w nowo wyświetlonym oknie na kartę Szczegóły. Wśród pól certyfikatu wyszukujemy numer seryjny. Widzimy coś w ten deseń:

Pole wyglądające w ten sposób oznacza, że wystawca (w tym przypadku Thawthe, była firma Wiadomo Kogo) używa numerów seryjnych generowanych losowo. Dobrze. Teraz pora na algorytm, jakim generowany jest skrót.

Jak widać jest to SHA-1, czyli nie jest najgorzej, szczególnie przy losowym numerze seryjnym. Co zrobić gdy gdzieś zauważymy MD5 i „serial” w rodzaju „76421892″? Cóż, możemy napisać do właściciela serwera. Może pomoże.

Osoby zainteresowane tematem zachęcam do zajrzenia do opracowania autorów ataku na MD5. Osoby niezainteresowane mogą zechcieć zobaczyć jak wygląda blisko 200 sztuk PS3 spiętych siecią (procesory Cell wykorzystano w pierwszej fazie procesu wykrywania kolizji w MD5).