Przechwytywanie rozmów GSM w praktyce – i pod Linuksem

  • Home
  • /
  • Blog
  • /
  • Przechwytywanie rozmów GSM w praktyce – i pod Linuksem

Data: 19 lipca, 2009

Rozmawiając przez telefon komórkowy zakładamy, że nasza rozmowa jest szyfrowana i nikt niepowołany nie jest w stanie jej podsłuchać. Niestety, okazuje się, że nie do końca jest tak różowo…

Standard GSM używa dość słabych mechanizmów szyfrowania transmisji, co oznacza możliwość przechwycenia i zdekodowania rozmów (w tym, przy dostępie do pewnych danych z karty SIM, również w czasie rzeczywistym). Potrzeba do tego jednak trochę wiedzy, odpowiedniego oprogramowania (tak, działającego pod Pingwinem 😉 ) oraz – niestety – dość drogiego sprzętu.

Co nie zmienia faktu, że da się to zrobić.

UPDATE: z przyczyn technicznych serwer LwB jest niedostępny, zapraszamy na mirror artykułu.

UPDATE2: „przyczyny techniczne” zwalczone, przepraszamy za usterki. 😉

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. rysiek pisze:

    No żesz psia krew. Jak trzeba podać tagi, by była szansa, że się dodadzą?

    W kilku ostatnich swoich postach próbowałem:
    1. oddzielone samymi przecinkami
    tag1,tag2,tag3
    2. oddzielone przecinkami i spacjami
    tag1, tag2, tag3
    3. oddzielone spacjami
    tag1 tag2 tag3

    ŻADNE nie dodały się poprawnie. So, what's the deal? Jest w ogóle jakakolwiek działająca metoda?

    I druga sprawa – adres. Jak wg. magicznego silnika wygląda poprawnie sformatowany adres? Bo że nie akceptuje https i nie akceptuje zakodowanych znaczków (jak w: http://lwb.elka.pw.edu.pl/trac/lwb/wiki/Przechwyt… to już wiemy…

    1. szatox pisze:

      jest metoda, włamujesz się na konto Michuka i wszystko działa.
      Ewentualnie czekasz, aż dostaniesz redaktora, w tedy inni będą włamywali się na Twoje w celu dodania tagów 🙂

    2. Sławek pisze:

      Pewnie trzeba oddzielić je dwukropkami -jak przy zmiennych wieloelementowych w powłoce 😉 .

    3. michuk pisze:

      Tagów nie dodasz jeśli nie masz redaktora. Bug, nie feature.
      Adres po prostu musi być httpowalny z klienta php. Jak zwraca 500 to nie zaakceptuje. Ot, takie dziwostki.

      1. pendeho pisze:

        A nie można tego naprawić?

    4. Ja cieszę się natomiast, że po zaglądnięciu do tego newsa, RSS nie skierował mnie jak to ma zwykle miejsce (75% przypadków) na 404… Jeśli artykuły muszą być moderowane, powinno być to robione przed publikacją – tak, aby nie zakłócać pracy czytającym.

    5. PiotrekK pisze:

      Serwer Bramy chwilowo nie działa. Zainteresowanych zapraszam na tymczasową stronę na wiki projektu Airprobe:
      https://svn.berlin.ccc.de/projects/airprobe/wiki/…

      Trzeba pominąć błąd sprawdzania certyfikatu jeśli ktoś nie dodał do przeglądarki certyfikaty ze strony http://www.cacert.org/.

  2. Budyń pisze:

    [1] Opisane wyżej, pod Windows, to Rivest i koledzy bodaj na AMD K6 zaprezentowali dobrych kilka lat temu.
    [2] http://www.spectrum.ieee.org/telecom/security/the…
    Załóżmy, że mamy "mocne", ale operatorskie/producenckie szyfrowanie między telefonem i BTSem. I po co ? 🙂 Można kupić albo specjalne telefony, a czasem zestawy do modyfikacji (czasem tylko soft) które pozwalają na szyfrowanie głosu _przed_ wsadzeniem go w sieć za pomocą własnych kluczy i algorytmów.

    1. szatox pisze:

      owszem, są komórki z funkcją szyfrowania rozmów. One powinny mieć lepsze algorytmy

      1. melhiore pisze:

        To bedzie dzialac jedynie kiedy OBIE komorki sa takie same – obie szyfruja itd. Jesli jedna z nich jest "normalna" to dostaniesz niezrozumialy belkot…

        1. szatox pisze:

          a czy to nie jest OCZYWISTE?
          No, chyba że masz mnie za idiotę. W takim razie przepraszam

        2. Budyń pisze:

          @melhiore

          O to właśniec chodzi 🙂 Gdyby tak z głową robiono, "Athens Affair" nie miałaby takiego zasięgu.

    2. PiotrekK pisze:

      Rives i Shamir zaprezentowali atak, który wymagał dużej ilości tekstu jawnego i przez to był niezbyt realny, ale nadal bardzo interesujący. Nie pokazali natomiast publicznie żadnego odbiornika, przy pomocy którego można by przetestować ten atak.

      Jeśli dobrze poszukać to teoretycznych ataków na A5/1 można znaleźć wiele, natomiast ja koncentruję się na zaprezentowaniu ataku działającego w realnym świecie. Ważne jest również żeby każdy zainteresowany mógł taki atak powtórzyć i zobaczyć, że w rzeczywistości działa.

      Praktyczny atak wymaga urządzenia do odbioru sygnału radiowego GSM. Co prawda można powiedzieć, że odbiornik GSM jest obecny w każdym telefonie komórkowym, jednak takich urządzeń nie da się zmusić by robiły to czego ja chcę. Dlatego bardzo istotnym krokiem było wykonanie działającego odbiornika, a artykuł na wiki Linuksa w Bramie dotyczy efektu jego działania.

      1. PiotrekK pisze:

        Heh, to był jednak Biryukov i Shamir :). O ile wiem Rivest nigdy tym się nie zajmował.

        1. rysiek pisze:

          Uwaga: PiotrekK jest jedną z osób odpowiedzialnych za oryginalny wpis na stronie LwB, jemu należą się laury 😉

        2. norbert_ramzes pisze:

          Mógłbyś nie tłuścić mi ekranu?

        3. anonim pisze:

          @norbert_ramzes: cool comment bro

        4. Budyń pisze:

          @PiotreKK

          Dziękuję za korektę 🙂 W rzeczy samej to o nich chodziło.

        5. btw, czemu nie można używać znacznika pre(formated)?

        6. przecież chyba da się uniknąć rozjeżdżania przez overflow:scroll albo hidden?

  3. Bananikus pisze:

    Rozmawiając przez telefon komórkowy zakładamy, ze nasza rozmowa jest szyfrowana i nikt niepowołany nie jest w stanie jej podsłuchać.

    Nie wydaje mi się. Jeszcze nie słyszałem, żeby ktoś uważał rozmowy przez gsm za bezpieczne. Tym bardziej, że na wielu filmach siedzą se goście w samochodzie i podsłuchują rozmowy kogo tylko chcą. 🙂

    Swoją drogą to ja nawet nie wiedziałem, że to jest jakkolwiek szyfrowane. U mnie w domciu tvn ledwo odbiera z tv naziemnej i często gdy go włączę zamiast dźwięku z tvnu słyszę rozmowy telefoniczne, więc skoro są szyfrowane to jak to jest możliwe?

    1. x202 pisze:

      Ponieważ odbierasz NMT z ~450MHz, a to jest nieszyfrowane.
      Możliwe, że jest to wina wzmacniacza, który zakładam, ze masz w antenie. Przy bliskim nadajniku i wysokim sygnale przesterowywuje sie i stacja powiela się na róznych częstotliwosciach (w tym koło fonii TVNu?)

      1. Budyń pisze:

        W powielanie uwierzę, ale nie w podsłuchiwanie -> jeszcze w TV musiałby się automagicznie cyfrowy kodek zainstalować…

        1. Budyń pisze:

          My bad, mój komentarz powyżej oczywiście do GSMu, a nie NMT.

        2. norbert_ramzes pisze:

          http://pl.wikipedia.org/wiki/NMT

          Do transmisji mowy w systemach NMT 450 oraz w NMT 900, zastosowano analogową modulację FM

          W analogowej telewizji, wizja jest przez FM a fonia przez AM…

        3. PiotrekK pisze:

          w telewizji jest na odwrót właśnie: wizja jest przesyłana przy pomocy jednowstęgowej modulacji AM z wyciętą falą nośną, a dźwięk po FM 🙂

        4. norbert_ramzes pisze:

          Heh. Kiedyś zajmowałem się naprawą tv jak to było opłacalne (kiedy to było?)…

        5. Ha! Ja Ci nie dalem zarobic! Walilem jantara w lewy bok i obraz sam wskakiwal na srodek, ba, nawet kolory mu wracaly! 🙂

        6. norbert_ramzes pisze:

          Miałem kiedyś (ładne pare lat temu) taki motyw: siedzę u kumpla, a w tym samym pokoju jego matka ogląda tv. W którymś momencie obraz zaczął szaleć i pojawił się 'śnieg' – kobieta krzyknęła do mnie m.w. tak:
          – Norbert, specu! Ile chcesz za naprawę tv?
          – posiadacie herbatę w kuchni?
          – tak…
          – podchodzę do tv i z plaszczaka w lewy bok – zaczął działać lepiej niż wcześniej. Po czym mówię: to idź i mi zrób! 🙂

          Sorry za OT ale nie mogłem się powstrzymać.

      2. No niby jest mozliwe ale NMT nie działa od września ubiegłego roku. A radiolinie tepsy na NMT zostały już w 100% wymienione na GSM. Więc to nie NMT…

    2. Neonique pisze:

      Nie wydaje mi się. Jeszcze nie słyszałem, żeby ktoś uważał rozmowy przez gsm za bezpieczne.

      Chyba każdy kto nie rozumie skrótu GSM.

    3. karakar pisze:

      Podejrzewam, że nie słyszysz rozmów telefonicznych tylko przez CB radio.

  4. szatox pisze:

    wpis ciekawy. Było oczywiste, że przechwytywanie rozmów GSM jest możliwe, ale wychodzi na to, że jedynym utrudnieniem jest dostęp do sprzętu. Z czym chyba powinien sobie poradzić każdy radioamator.

    A, tak przy okazji, klucz szyfrujący działa na tracie kom-kom, czy kom-BTS? W jaki sposób druga końcówka połączenia dowiaduje się jakim kluczem jest szyfrowana transmisja? Może na dodatek nie jest potrzebna karta SIM, bo dane potrzebne do zdekodowania strumienia również da się podsłuchać?

    1. PiotrekK pisze:

      Szyfrowane jest tylko połączenie radiowe. Dalej rozmowa jest nieszyfrowana i czasem idzie w takiej postaci nie tylko przez sieć naszego operatora, ale i przez sieci innych operatorów np. po łączach TPSA. Obie strony generują sobie ten sam klucz z pary Ki+RAND. Ki po stronie stacji ruchomej znajduje się w karcie SIM, a po stronie sieci w centrum uwierzytelniania. Prawdopodobnie klucz sesyjny Kc da się podsłuchać wewnątrz sieci operatora. Jednak jeśli ktoś miałby dostęp do tej sieci to nie musiałby podsłuchiwać rozmowy na łączu radiowym.

  5. xeros pisze:

    Szkoda, że w prezentacji nie wychwycono klucza sesyjnego Kc metodą "brute force" zamiast stosować kartę SIM podsłuchiwanego telefonu. W ten sposób można by lepiej pokazać skalę zagrożenia.

    1. rysiek pisze:

      pracujemy nad tym; mamy zapisaną jedną rozmowę i próbujemy rozkodować ją, bruteforce'ując klucz. Nasz soft i sprzęt ma "sprawność" około 200MHz (w sensie, wykonuje 200 mln sprawdzeń w ciągu sekundy).

      Możliwych kombinacji jest 2^54 = 18,014,398,509,481,984. Czyli przemielenie ich przy tej sprawności zajmie:
      (2^54)/200000000/3600/ = 25,020 godzin.
      …czyli 1042 dni z małym hakiem. Jak złamiemy klucz, dam na pewno znać, ale prawdopodobieństwo, że będzie to w tym roku jest 1/3… 😉

      A tak na serio, oczywiście te 200MHz to założenie na potrzeby wyliczeń, i to bardzo mocne, bo oznacza, że nasza hipotetyczna kombinacja sprzęt + soft jest w stanie wykonać:
      1. generowanie nowego klucza (czyli dodanie 1 do poprzednio sprawdzonego… 😉 );
      2. próbę zastosowania klucza do rozmowy;
      3. sprawdzenie wyniku
      200 milionów razy na sekundę. Standardowy pecet ma ok. 2000MHz procesor. To by wymagało, by kroki 1, 2 i 3 były wykonywanie wszystkie w 10 taktach. Chyba, ze masz serwerfarmę. 🙂

      1. dodd pisze:

        Czyli jednak szyfrowanie nie jest aż takie słabe, chyba że istnieje jakaś lepsza metoda niż bruteforce.

        Słabe szyfrowanie dla mnie to takie, które można złamać na zwykłym PC w kilka minut, np. WEP albo CSS (ten od DVD).

        1. norbert_ramzes pisze:

          WEP zwykle zajmuje więcej niż kilka minut.

        2. szatox pisze:

          więcej niż kilka minut zajmuje czekanie na legalnego klienta w przypadku sieci na zadupiu. Jak są klienci, to cała operacja bez problemu mieści się w 5 minutach – naturalnie zależy to od siły sygnału, a więc i ilości utraconych pakietów.

          Samo łamanie WEP na podstawie podsłuchanych pakietów mieści się zwykle w 1s, czasem zajmuje kilka, ale to nie jest problem.

          Rysiek: dołącz do BOINC 🙂 Może znajdzie się kilka osób chętnych do udostępnienia swoich zasobów.

        3. > Czyli jednak szyfrowanie nie jest aż takie słabe, chyba że istnieje jakaś lepsza metoda niż bruteforce.

          O ile pamiętam, jest taka metoda, oparta na tzw. „rainbow tables”. Potrzeba sporo miejsca na dysku do przygotowania tablic i trochę RAM-u, a reszta idzie migiem.

      2. Można wiedzieć z jakiej konfiguracji sprzętowej korzystacie? Do takich zabaw doskonale nadawałoby się ps3.

      3. BoBsoN pisze:

        Rozumiem, że zasadę 80:20 stosujecie? 🙂 (pokrycie ~20% przestrzeni losowej daje ~80% prawdopodobieństwa na trafienie)

        1. Ło$ pisze:

          Jesteś pewien, że zasada Pareto ma tutaj zastosowanie? Wydaje mi się, że klucze powinny równomiernie pokrywać dopuszczalny zakres więc 20% pokrycia da 20% szans na trafienie. Miło by było gdyby ktoś bliżej ze statystyką zaznajomiony naświetlił temat 😉

        2. BoBsoN pisze:

          Dawno temu zdaje się także na LN/OSn widziałem rozważania na temat kryptografii opartej o liczby pierwsze. Autor twierdził właśnie, że zwykle do złamania szyfru wystarcza pokrycie 20% potencjalnej przestrzeni kluczy. Także z chęcią poczytam coś więcej na ten temat.
          Masz rację, że matematycznego punktu widzenia – 20% pokrycia daje 20% szans na trafienie. Ale prawdopodobnie jak się doda do tego psełdolosowość aktualnych systemów randomizacji, to może się okazać, że ta zasada ma szansę działać i w tym przypadku.

      4. bard pisze:

        1042 dni na jednym pececie? przy użyciu 20 maszyn schodzimy do 50 dni, a to już całkiem realne wartości. A używając takiej mocy obliczeniowej jaką udało się pozyskać projektowi seti można by to złamać w czasie rzeczywistym. Także panowie – zróbcie nowy wygaszacz, wmówcie ludziom że prognozujecie zmiany pogodowe spowodowane globalnym ociepleniem – a nieograniczona moc obliczeniowa bedzie do waszej dyspozycji.

      5. A jakie działania tworzy telefon przy tworzeniu klucza, może by tak odwrócić się dało?

  6. Nicolass pisze:

    A nie lepiej zamiast CPU użyć np. GPU od NVIDIA i ich CUDA? Bardzo ładnie się tym czymś łamie WiFi z szyfrowaniem, więc do komórek też się pewnie nada.

    1. Neonique pisze:

      Właściwie to ten GPU mógłby nawet pracować równolegle z CPU.
      Zastanawia mnie też czy zastosowanie FPGA mogłoby cokolwiek pomóc?

    2. szatox pisze:

      a jeszcze lepiej GPU bez cudów nvidii 🙂
      Jak by się to dało napisać przenośnie pomiędzy grafami różnych producentów…

      1. Noctivivans pisze:

        http://pl.wikipedia.org/wiki/OpenCL

  7. Ech, znowu podwórkowi chakierzy… Kopiowanie starych, cudzych rozwiązań + newsy na ten temat…

    1. rysiek pisze:

      Jak rozumiem słowa te idą wprost od Zawodowego H4x0ra, z kilkunastoma prezentacjami na Black Hat i innych konferencjach bezpieczeństwa i pokaźnym dorobkiem 0-dayów, rajt?

      A tak na serio: doskonale zdaję sobie sprawę, że nie jest to nic straszliwie odkrywczego i nowego. Jakby było – na BlackHat właśnie byśmy jechali. Ale jest to na tyle ciekawe, że wydaje mi się, że może warto innym o tym powiedzieć (i, jak widzę, 8 osób się ze mną już zgodziło) – w polskim necie nie widziałem jeszcze żadnego opisu tej procedury.

      OSNews i LN ma tę piękną zaletę, że możesz "wykopać" artykuł. Ale nie musisz. Nie interesuje cię – nie wykopuj.

      Zrobiłeś ostatnio coś ciekawego? Stworzyłeś coś, co może zainteresować innych? Nie musi być niezwykle odkrywcze, wystarczy jakieś howto. W jakikolwiek sposób włożyłeś swą pracę, czas lub wiedzę do wspólnego dorobku jakiejkolwiek społeczności?

      Tak? Pochwal się, chętnie się dowiem, przeczytam i poszerzę swoje horyzonty.

      Nie? To siedź cicho i nie gdacz, gdy inni znoszą jajka. Choćby i były małe.

      P.S.
      ja wiem… nie karmi się trolli. ale ja czasem nie potrafię.

      1. norbert_ramzes pisze:

        ja wiem… nie karmi się trolli

        Ale trolle da się przekarmić (tak aby pękł) 🙂

      2. BlackHat? BlackHat jest przereklamowany… Piszesz o zrobieniu czegoś dla ludzi – ten art jest dla kogokolwiek przydatny? Nie jest. Ja się nie muszę niczym chwalić, ważne że jestem i robię swoje.

        1. Pies pisze:

          Przydatne? Nie. Może być dla niektórych ciekawe? Tak. Wystarczy, tym bardziej, że trzyma jakiś poziom.

        2. jakub pisze:

          piszesz:
          "ten art jest dla kogokolwiek przydatny? Nie jest"
          proste pytanie: skąd wiesz, że ten art nie jest dla KOGOŚ przydatny?
          podpowiedź: Jakikolwiek by nie był twój punkt widzenia, nie możesz wiedzieć za kogoś, co mu jest przydatne, a co nie.

        3. DeBill pisze:

          Propozycja zmian na OSnews.pl:
          Od dzisiaj przed dodaniem newsa trzeba przesłać jego treść do LV. Jeśli LV stwierdzi, że dla kogoś informacja może być 'przydatna' można umieścić ją na OSnews.pl. Jeśli nie, to można dać sobie spokój.

          Pozdrawiam.

      3. jakub pisze:

        Ty go nie nakarmiłeś, ty go strułeś. eot z mojej strony.

      4. jellonek pisze:

        ztcp okolo 2005 roku żydzi pokazywali w jaki sposób łamali/deszyfrowali/dekodowali zapisaną transmisję rozmowy GSM w czasie 20h, tak więc nieco mniejszym niż wasze 20kh na obecnym sprzecie 😉
        gdzies na google video powinien byc zapis tej preznetacji 😉

  8. xeros pisze:

    Zastanawiam się czy skoro rozmowa jest już zapisana to czy nie można przenieść się z wykonywaniem podanych kroków w całości na PC bez użycia tej "200MHz" maszyny? Sądziłem, że ta maszyna potrzebna jest tylko do przechwycenia danych z komunikacji między komórką a BTS-em. Przy wykorzystaniu zwykłego kompa, np. 1-rdzeniowego ~3GHz lub 2-rdzeniowego >=2GHz to nawet, gdyby miał wykonywać coś jeszcze to i tak zysk na czasie byłby spory.
    Ciekawe czy jakiś "smartfon" z Symbianem lub Linuksem nie dałby rady zastąpić tego drogiego urządzenia do przechwycenia rozmowy. Teoretycznie to sprzętowo ma chyba wszystko co trzeba, a wydajność takich telefonów też już jest duża.

    1. rysiek pisze:

      ekhem. te "200MHz" dotyczyło sprawności całości, czyli software + hardware. 200 milionów razy na sekundę generowany i sprawdzany jeden klucz

      dlatego dalej pisałem, że na procku 2GHz to by oznaczało, że algorytm bierze 10 taktów na wygenerowanie i sprawdzenie jednego klucza (co jest po prostu nierealne).

    2. norbert_ramzes pisze:

      w całości na PC

      Jak masz coś innego po maską niż x86 to czemu nie?

  9. tomekh pisze:

    news ciekawostka… i tylko ciekawostka…

  10. Jarosław Pelczar pisze:

    Może mi ktoś powiedzieć gdzie tu jest użyty drogi sprzęt ? 1000$ z kawałkiem to nie są jakieś duże pieniądze.

    1. szatox pisze:

      za antenkę? Nie, to nie jest dużo. To jest w pizdu i trochę.

      Ja mam kartę wifi za 50 zł. Dostępne tryby to managed, ad-hock, ap, monitor(+packet injection). Na dodatek może pracować we wszystkich trybach jednocześnie, byle tylko na jednym kanale.
      Opisana skrzynka ma prawdopodobnie tylko tryb monitor (bez PI), a kosztuje (przy aktualnym kursie dolara) 'zaledwie' 3kPLN.
      3000/50=60
      IMO dość znaczna dysproporcja. I to wszystko bez uwzględnienia dodatkowych opład podbijających cenę elektroniki w pl.

      1. moher pisze:

        Na pewno wiesz czym jest USRP(2) i jakie ma możliwości? Po tym co napisałeś mam pewne wątpliwości (porównanie z kartą wifi).

        1. Jarosław Pelczar pisze:

          1000$ nie chodzi drogą, ale to nie są jakieś gigantyczne pieniądze poza zasięgiem zwykłego Kowalskiego. Jeśli sprzęt kosztuje np. poniżej 10000zł to jak osobie prywatnej zależy to sobie taki sprzęt zorganizuje.

        2. maciek pisze:

          tem bardziej, że do "jednego eksperyment" osoba prywatna tematem zainteresowana może sprzęt… wypożyczyć. Nawet i za 10 tysi i droższy 😉

      2. Budyń pisze:

        Antena radaru do F-22 (nie radar) kosztuje 10 mln USD.
        W cenach bodaj z 2000 roku 😛

  11. Może zamiast tego drogiego sprzętu, dało by się wykorzystać modem gsm/gprs?

    1. Dałoby się, tylko najpierw musiałbyś się dostać do firmware modemu. A jeśli chodzi o niego to nawet Openmoko nie może zapisywać wszystkich zmian w changelogu(sic!), bo byłoby to łamanie prawa. Nie mówiąc już o udostępnianiu źródeł.

      1. Potrzebna jest ingerencja w firmware? Nie wystarczyło by napisać sterownika? Nie czytałem na czym polega ta metoda. Link mi nie działa.

        1. PiotrekK pisze:

          Tak, potrzebna jest ingerencja w firmware bo żaden modem nie ma czegoś takiego jak tryb monitora znany z kart WiFi. Potrzebna jest możliwość bezpośredniego sterowania układami przetwarzającymi sygnał, a ja na razie nie trafiłem na informacje by z którymkolwiek modemem GSM dało się coś takiego zrobić.
          Z drugiej strony w sytuacji gdy producenci sprzętu GSM nie chcą dawać mi dostępu do szczegółów działania ich urządzeń, fajnie było mieć możliwość powiedzenia im "bez łaski" :).

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.