Hurl byl vydán ve verzi 6.0.0. Hurl je nástroj běžící v příkazovém řádku, který spouští HTTP požadavky definované v textovém souboru.
Výsledek hlasování: Výchozím grafickým motivem Debianu 13 aneb Trixie bude Ceratopsian.
Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 5 Ultra.
Mobilní Datovka, tj. svobodná aplikace pro přístup k datovým schránkám pro zařízení s operačním systémem iOS a Android, byla vydána v nové verzi 2.2.0. Nově lze nastavit vlastní obrázky pro jednotlivé datové schránky pro jejich lepší identifikaci v seznamu schránek. Přidán byl editor vnitřních nastavení aplikace, který slouží jako přehled všech hodnot, které aplikace udržuje.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem letos věnovala 1,1 milionu dolarů na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Peníze byly rozděleny mezi Electronic Frontier Foundation (EFF), Public Knowledge, ARTICLE 19, Demand Progress, European Digital Rights (EDRi), Fight for the Future, The Markup, OpenMedia, Restore the Fourth, Signal, Surveillance Technology Oversight
… více »LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl vydán ve verzi 1.2.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Vypíchnut je import knihoven KiCadu. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Při mezinárodní operaci byla zablokována pokročilá služba pro šifrovanou komunikaci MATRIX, oznámil úřad pro evropskou justiční spolupráci Eurojust. K uzavření služby podle něj vedlo vyšetřování společného týmu, na němž se podílely francouzské a nizozemské úřady a který byl zřízen při Eurojustu. Službu podle něj využívaly kriminální živly. Tato služba MATRIX nemá nic společného s nadací Matrix a protokolem Matrix.
Národní filmový archiv spustil nový YouTube kanál Filmová klasika, který veřejnosti postupně zpřístupní vybrané české filmy. Nabídne především tituly, které obecenstvo v běžné nabídce televizí nebo VOD platforem nenajde. Dnes v 18:00 kanál odstartoval kultovním snímkem Kouř režiséra Tomáše Vorla. Divačky a diváci se pak každý týden budou moci těšit na dva nové filmy, které se na novém kanálu objeví vždy v úterý a v pátek. Spolu s Kouřem nabídla Filmová klasika ještě další desítku filmů ke zhlédnutí.
Příspěvek na blogu Raspberry Pi informuje, že Steam Link běží už i na Raspberry Pi 5. Nejnovější verze podporuje H.264 (1080p s 144 FPS) i HEVC (4K s 60 FPS a 1080p s 240 FPS).
Na čem aktuálně pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Pokud útočníkovi stačí způsobit odepření služby, má to celkem jednoduché. GSM je rádiová síť, takže z principu lze zarušit. Levné rušičky lze objednat z Číny, jejich stavba ze šuplíkových součástek také není příliš složitá. Nevýhodou je snadné odhalení.
Mnohem zajímavější je způsobení DoS odesláním malého množství „vhodných“ dat někam do sítě. Softwarová stránka implementace GSM je všelijaká a když spustíte na mobil nějaký běžný fuzzer (věc, která zkouší posílat různými způsoby rozbitá data a čeká, jestli na druhé straně spadne parser), najdete spoustu chyb. Přečtěte si například o projektu SMS-o-death (záznam přednášky), který zjistil, že spousta mobilů lze zablokovat SMSkou obsahující binární balast.
Je zřejmé, že na bezdrátovém principu není proto vhodné stavět kritické technologie, jako například zabezpečení budov posílající SMS notifikaci a volající policii přes GSM. Leč mnozí tak činí.
Dále se již budeme věnovat bezpečnosti přenášených dat.
Po telefonu si lidé říkají všelijaké citlivé informace. Bohužel u většiny dnes provozovaných sítí tečou někde u provozovatele data nešifrovaně. U GSM je šifrováno spojení mezi mobilem a BTS, ale infrastruktuře operátora jsou již data dostupná. Odposlechnout je může neposlušný zaměstnanec nebo složka státní moci (samozřejmě pouze na soudní příkaz ). Již z tohoto důvodu bychom si měli dávat pozor, co telefonu svěřujeme.
Pokud útočník nemá přístup do infrastruktury operátora a přesto by chtěl poslouchat, musí nějakým způsobem obejít či zlomit šifru, kterou je komunikace vzduchem chráněna.
Jedním z prvních útoků, které se objevily, byl tzv. IMSI catcher. Využívá toho, že mobilní telefon kryptograficky neověřuje identitu sítě, ke které se přihlašuje. Každý operátor v každé zemi má unikátní ID skládající se z MCC (Mobile Country Code, pro ČR 230) a MNC (Mobile Network Code, v ČR 01-03 pro známou trojku a 98 pro jednoho méně známého) a tyto informace jsou všemi BTS pravidelně ohlašovány do sítě. Mobil si ze SIM karty zjistí, kterému operátorovi patří, a k jeho nejsilnější BTS se přihlásí. Pokud žádnou „rodinnou“ BTS nenajde (typicky v zahraničí), zkusí si domluvit roaming.
Co se ale stane, pokud si spustíme vlastní BTS a nastavíme dvojici MCC a MNC na tu, kterou už nějaký operátor používá? Pokud zařídíme, aby oběť našeho útoku měla dostatečně silný signál (například směrovou anténou), ochotně se její mobil přihlásí na naši BTS. A protože šifrování přenosu iniciuje BTS, můžeme mobilu říct, aby šifrování vypnul, a pak si hovor v klidu poslechnout.
Problémy jsou dva: za prvé nefungují příchozí hovory a za druhé lze takový útok poměrně snadno odhalit. Překvapující je, že to nikdo nedělá. Totiž – indicií je několik:
Existuje projekt IMSI catcher catcher, který se snaží podle těchto indicií útok odhalit. Shodou okolnosti je implementován nad telefony Osmocom.
Zařízení vlastní například různé složky státní moci (zajímavý dodavatel). Ostatně i ta slavná Agáta je „jenom“ takový naspeedovaný IMSI catcher.
Opensource IMSI catcher se dá postavit nad OpenBTS. Je k tomu potřeba USRP a spousta času.
Především hrozba odhalení vedla k vývoji dalších typů útoků. Pro jejich pochopení ale budeme muset tušit něco málo o symetrických šifrách.
Symetrická šifra je funkce, která vezme nějaký tajný klíč a data, která chceme zašifrovat, vyrobí z toho nějaký nečitelný blob a pošle to. Na druhé straně se vezme ten stejný klíč a blob se jím dešifruje. Příklady symetrických šifer jsou AES, Blowfish, DES, A5/1, RC-4.
Některé symetrické šifry jsou blokové. Fungují tak, že vezmou blok dat (řádově stovky bitů) a klíč a vyplivnou zašifrovaný blok dat. Blokové šifry jsou například AES, Blowfish, DES.
Jiné symetrické šifry jsou proudové. Pomocí klíče se inicializuje generátor pseudonáhodných čísel a tímto generátorem se vygeneruje potřebné množství (proud) pseudonáhodných dat, kterým se říká keystream. Keystream se potom zXORuje s daty, která chceme zašifrovat. Příjemce si také inicializuje svůj pseudonáhodný generátor, nechá ho vygenerovat keystream a zXORuje s ním přijatá data. Vypadne na něj původní text. Proudové šifry (stream ciphers) jsou například RC-4 nebo A5/1 používaná v GSM.
Generátor keystreamu v A5/1 jsou tři posuvné registry, do kterých je na začátku nasypán klíč, a pak se začnou různě posouvat a míchat, výstupy z nich se vzájemně XORují a někudy z toho začnou padat pseudonáhodná data, keystream. Můžete se podívat na povedenou animaci principu na YouTube.
Šifra má tedy cosi jako vnitřní stav definovaný hodnotami proměnných v generátoru. Když ho získáte, můžete ho nasypat do svého generátoru, vygenerovat si stejný keystream a dešifrovat přenášenou zprávu. A5/1 lze navíc „backclockovat“ – s o něco vyššími nároky na výkon lze obrátit směr, kterým se posouvají bity v posuvných registrech, a po chvíli počítání získat i počáteční stav šifry a z něj klíč. Tedy zjištěním vnitřního stavu v jakémkoli okamžiku používání šifry jste schopni dešifrovat celou komunikaci.
Můžete si spočítat tabulku:
Vnitřní stav | Keystream |
---|---|
0x0000000000000000 | 0xabcdef12345678 |
0x0000000000000001 | 0x54632221afed03 |
0x0000000000000002 | 0x456dcd562b980e |
Když uvidíte ve vzduchu nějaká data a dokážete z nich extrahovat keystream, podíváte se do tabulky, zjistíte vnitřní stav šifry a máte vyhráno. Bohužel taková tabulka je poněkud velká. Triviálně 264 možných stavů × 64 bitů keystreamu na stav, přičemž se ukazuje, že keyspace je jenom nějakých 261, ale i tak je to v řádech EB (exabajt, tedy milion terabajtů).
Naštěstí lze použít time-memory tradeoff. Pomocí jistého triku si spočítáte menší tabulku, která bude obsahovat pouze vybrané vnitřní stavy šifry, ale zároveň bude obsahovat informace, které vám umožní chybějící data rychle dopočítat v okamžiku, kdy je potřebujete.
Velmi hrubě řečeno to funguje tak, že si zvolíte nějaký počáteční bod, použijete ho jako tajný stav pro A5/1 a vyrobíte keystream. Ten vhodně upravíte a použijete jako tajný stav pro další A5/1 a tak dále, až se dostanete do distinguished pointu. Ten může být definován třeba tak, že na konci je určitý počet nul. Počáteční bod a distinguished point uložíte do tabulky. Opakujete tak dlouho, až vám dojde místo na disku.
Počáteční tajný stav | Distinguished point (po mnoha iteracích) |
---|---|
0x0000000000000000 | 0xcd547853000000 |
0x0000000000000001 | 0x4512ebca000000 |
0x0000000000000002 | 0x3249bdcc000000 |
Když potom získáte nějaký keystream, použijete ho jako tajný stav a počítáte tak dlouho, až se dostanete do distinguished pointu. Ten si najdete v tabulce, podíváte se, jaký počáteční tajný stav na něj vedl, a dopočítáte zbytek řetězu. Víte, že článek řetězu těsně před vaším keystreamem je tajný stav, který vás zajímá.
Pomocí dalších optimalizací (nad rámec článku a znalostí autora) se dá zmenšit velikost tabulek zabráněním kolizí (merge), kdy máte nějaká data zbytečně víckrát. Hezky je to popsané v přednášce GSM: SRSLY? Podívejte se také na projektovou wiki. Útok momentálně implementuje projekt Kraken.
Na čtyřjádrovém Xeonu s 8 GiB RAM, grafikou Radeon HD 5900 a 2TB polem z rychlých 15kRPM SCSI disků lze cracknout A5/1 v řádu minut. Se SSD disky a čtyřmi grafikami se dá dostat na sekundy.
Když přenášíte nějaká data vzduchem a přijímač není v ideálních podmínkách, například je mezi železobetonovými domy, vlny se různě lámou a odrážejí, v některých místech se sečtou a v některých vyruší, na některých frekvencích se objevuje rušení atd. Proto je výhodné používat channel hopping – při přenosu se velmi rychle mění frekvence, na které se vysílá, a doufá se, že i když jeden kanál bude zarušený, ostatní budou fungovat dobře a dojdou alespoň nějaká data (z těch potom lze pomocí rozličných error correction a parit dopočítat zbytek). Případnému útočníkovi, který se snaží komunikaci odposlechnout, tohle ale může způsobit komplikace, protože se musí přelaďovat přesně stejně jako vysílač.
Můžeme se zaposlouchat, co se kolem nás ve vzduchu děje. Naladíme se na BEACON kanál nějaké blízké BTS a koukáme:
BTS: Jsem nejmenovaný operátor v České republice! BTS: Jsem nejmenovaný operátor v České republice! BTS: Jsem nejmenovaný operátor v České republice! BTS: Telefon s tmsi 123456 nechť skočí na kanál 8, timeslot 2! BTS: Jsem nejmenovaný operátor v České republice! BTS: Jsem nejmenovaný operátor v České republice!
TMSI (Temporary Mobile Subscriber Identity) je identifikátor, pod kterým mobil komunikuje s BTS.
Chtěli bychom slyšet i něco víc, tak se na výzvu k přeladění (v řeči GSM Immediate Assignment) naladíme na ohlášený kanál a poslechneme si ohlášený timeslot.
BTS: Telefone, mám tu pro tebe zprávu. Telefon: OK. BTS: Síla tvého signálu je 5 a tvoje time-advance je 1. Telefon: OK. BTS: Zapni šifrování. (dál už pokračuje nesrozumitelný balast)
Time advance je „náskok“, o který musí mobil začít vysílat dřív – když je daleko od BTS, než se k ní signál dostane, chvíli to trvá a netrefil by se tak přesně do timeslotu, který mu byl přidělen. Změření TA k různým okolním BTS a následná triangulace se dá použít k poměrně přesnému zaměření mobilu.
Tohle je ta komunikace, kterou jsme viděli ve Wiresharku v minulém článku.
K použití tabulek, které jsme si spočítali výše, potřebujeme keystream. Vzduchem ale létají jenom zašifrovaná data. Z principu šifry víme, že zašifrovaná data jsou keystream XOR nešifrovaná data. Z toho vyplývá, že nešifrovaná data XOR zašifrovaná data je keystream. Zašifrovaná data jsme právě odposlechli, nešifrovaná data zdánlivě nevíme, ale můžeme se pokusit je uhádnout. V GSM se totiž přenáší spousta vaty, například pokud BTS zrovna nemá co říct, pošle prázdný rámec (nazvěme ho NOP) vyplněný paddingem (0x2b, ASCII znak +). Předání SMS by mohlo vypadat třeba takhle:
NOP+++++++++++++++++++ Síla tvého signálu je 5 a tvoje time-advance je 1. NOP+++++++++++++++++++ Máš tu SMS s textem "uz kaprici pripluli?" NOP+++++++++++++++++++
ZXORujeme předpokládaný NOP s přijatými daty a výsledek se pokusíme cracknout. S trochou štěstí získáme klíč, kterým dešifrujeme zbytek zprávy.
Při hovoru se hopuje. Problém je v tom, že po kterých kanálech se bude skákat, se dohodne až po zapnutí šifrování. Takže:
Podle různých zdrojů je zřejmé, že několik implementací zmiňovaného útoku po světě existuje, některé klíčové části softwaru ovšem nejsou volně dostupné na Internetu. Kdyby tedy nějaký útočník chtěl provést pasivní odposlech, co by k tomu potřeboval?
Pro příjem pravděpodobně použije Osmocom telefony. Jsou malé, levné a mají nízkou spotřebu. Jeden stojí v přepočtu kolem 500 Kč a bude jich potřebovat 4-8. K nim budou potřeba sériové převodníky (4portový FTDI za 700 Kč), nějaký driver (Arduino, 350 Kč) a bižuterie kolem (USB hub, deska, krabička…).
Pro crackování je potřeba silný počítač. Pokud mu stačí offline crackovat SMS, bude potřebovat stroj s lepší grafickou kartou a 2TB storage. Pro real-time crackování je potřeba více grafických karet a 2TB SSD (kvůli co nejrychlejšímu seeku). To je asi nejdražší z celého zařízení, 2TB SSD může stát tak 40-50 tisíc korun.
Po softwarové stránce chybí:
Něco se dá vybagrovat z Airprobe, něco z OpenBTS a něco z aplikace mobile
pro Osmocom. Viz též Notes on sniffing a odkazovaný mail.
Jak vidíte, není to úplně triviální, ale s rozpočtem nižších stovek tisíc korun (méně, pokud jste nadšenci a nepočítáte svůj čas a/nebo pokud máte přístup na nějaký cluster, takže si nebudete muset počítač na provoz Krakena kupovat) se to dá.
Nejlepší by bylo upgradovat z 25 let starého GSM na nějaký modernější protokol. Bohužel ani 3G, ani UMTS na tom také nejsou s bezpečností zrovna růžově. Nejvíc by se mi osobně líbilo, kdyby operátor poskytoval IP konektivitu a já bych si přes to tuneloval šifrovaný VoIP (SIP přes TLS, RTP přes sRTP nebo ještě lépe zRTP), ale něčeho takového se asi hned tak nedočkám. Navíc po světě existují miliardy GSM telefonů a jejich výměna je v horizontu 5-10 let nereálná.
Šifra použitá v GSM je sice zlomená, i přes to lze ale útočníkovi její lámání všelijak znechutit. Útok, který jsme si popsali, využívá toho, že po síti létá spousta known-plaintextu v paddingu. Doporučení TS44.006 z roku 2008 definuje padding randomizovaný. I potom lze použít rámce, jejichž obsah lze tipnout (například rámec „System Infromation Type 5“ se silou signálu – telefon se nepohybuje zas tak rychle na to, aby to nešlo zjistit, nebo v krajním případě i zbruteforcovat), ale ty se posílají méně často a náročnost útoku tak velmi stoupá. Nicméně, ačkoli náhodný padding byl doporučen již v roce 2008, například v České republice ho zatím implementuje pouze jeden ze tří operátorů (nemůžu říct který).
Druhým kostlivcem ve skříni je málo časté překlíčování. Extrémem je jeden mobilní operátor, u kterého, pokud je mobil stále na stejné BTS, vydrží klíč několik dní. Překlíčování bohužel sežere trochu výpočetního výkonu a přenosové kapacity sítě, ale když se bude dělat dost často, útočníka opět znechutí.
Nicméně všechna tato opatření pouze posouvají náročnost útoku o několik řádů, z desítek a stovek tisíc do možná (desítek?) milionů korun. Jak se bude dostupný výpočetní výkon s časem zvyšovat, bude se crackování A5/1 stávat snazším a snazším. Proto je potřeba myslet na to, že s GSM nikdy neslyšíte hovor sami.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Je zřejmé, že na bezdrátovém principu není proto vhodné stavět kritické technologie, jako například zabezpečení budov posílající SMS notifikaci a volající policii přes GSM. Leč mnozí tak činí.Rejp do ecallu?
Nefungují mi příchozí hovory (to už prý mají nejnovější implementace IMSI catcherů nějak vyřešené, ale vůbec netuším, jak).Může mobil donutit BTS k nešifrování, nebo musí poslechnout inicializaci od BTS?
A5/1 lze navíc „backclockovat“ – s o něco vyššími nároky na výkon lze obrátit směr, kterým se posouvají bity v posuvných registrech, a po chvíli počítání získat i počáteční stav šifry a z něj klíč. Tedy zjištěním vnitřního stavu v jakémkoli okamžiku používání šifry jste schopni dešifrovat celou komunikaci.Hmm na tohle by to chtělo nedeterministický automat . Není to backclockování zbytečný, když už vnitřní bity známe? Hehe stejně nic se nevyrovná inicializací samejma nulama (nebo aspoň framecounter nulovej) .
Případnému útočníkovi, který se snaží komunikaci odposlechnout, tohle ale může způsobit komplikace, protože se musí přelaďovat přesně stejně jako vysílač. ... Buď nahrajeme celé pásmo a až crackneme klíč, doskáčeme si v tom zpětně. To vyžaduje drahé rádio, které dokáže celé pásmo zachytit.Jsem původně reagoval jenom na to první (je to moc daleko od sebe ). To se týče přesnosti to by snad problém být neměl (jako naladění PLL, to není jako ladění elektronkovýho rádia, kde byly táhla na jádra cívek!! :-O ). BTW jak velká prodleva je mezi výzvou o přeladění a samotným zahájením přenosu? Že by už mohl během výzvy začít přelaďovat druhej tuner (takovej doublebuffering). ... Nebo několik přijímačů sestavujících celé pásmo. Jinak šířka kanálu je jen 200kHz? To není problém, snad i bluetooth má mnohem širší pásmo (dokonce na náročnější/vyšší frekvenci). BTW bluetooth umí hopping taky .
K nim budou potřeba sériové převodníky (4portový FTDI za 700 Kč)ROFL převodník stojí víc než mobil? :-O
Nejlepší by bylo upgradovat z 25 let starého GSM na nějaký modernější protokol. Bohužel ani 3G, ani UMTS na tom také nejsou s bezpečností zrovna růžově. Nejvíc by se mi osobně líbilo, kdyby operátor poskytoval IP konektivitu a já bych si přes to tuneloval šifrovaný VoIP (SIP přes TLS, RTP přes sRTP nebo ještě lépe zRTP), ale něčeho takového se asi hned tak nedočkám.Šifrovaně můžeš tunelovat i přes současný kanál ne? Jenom místo zakomprimovanýho zvuku přímo do streamu z LFSR ještě zaXORuješ něčím tvrdším. BTW Co ten hack pomocí tý piko(mikro/nano?)BTS jak distribuoval zahraniční operátor?
BTW Co ten hack pomocí tý piko(mikro/nano?)BTS jak distribuoval zahraniční operátor?To bylo na 3G...
Rejp do ecallu?Ne ne, rejp do zabezpečovaček baráků.
Může mobil donutit BTS k nešifrování, nebo musí poslechnout inicializaci od BTS?Mobil poslouchá BTS. Ta pošle Ciphering Mode Command a když telefon nezačne šifrovat, tak mu IMHO přestane rozumět.
Hmm na tohle by to chtělo nedeterministický automat . Není to backclockování zbytečný, když už vnitřní bity známe?My si vycrackovali nějaký rámec zprostředka, ale chtěli bychom znát celou komunikaci. A taky bychom chtěli poslouchat následující komunikace, které se inicializují stejným klíčem, ale napajpuje se tam jiný framenumber (to je něco jako IV, akorát hodně slabý, protože se mezi transakcemi inkrementuje jen o málo).
Hehe stejně nic se nevyrovná inicializací samejma nulama (nebo aspoň framecounter nulovej) .Tak ony defaultně mají ty LFRS nuly… kdyby jich nebylo jenom 64 bitů, ale třeba 128, tak to není zas tak špatná šifra…
Jsem původně reagoval jenom na to první (je to moc daleko od sebe ). To se týče přesnosti to by snad problém být neměl (jako naladění PLL, to není jako ladění elektronkovýho rádia, kde byly táhla na jádra cívek!! :-O ).Ty jo, DCS (GSM 1800) má v ČR snad 70 MHz v jednom směru? To znamená I/Q ADC s 70 Megasamply. Nebo radši rovnou dva (uplink i downlink).
BTW jak velká prodleva je mezi výzvou o přeladění a samotným zahájením přenosu?Já měl za to, že je to 8 timeslotů, tedy 0,577 (?) ms. Ale vzhledem k tomu, že jak poslouchání, tak samotný GSM stack na Linuxu funguje přes USB, tedy milisekunda žádná míra, tak tam asi bude nějaký delay. Nebo se na začátku neposílá nic důležitého .
Nebo několik přijímačů sestavujících celé pásmo.To by šlo, ještě to nikdo asi nezkoumal. Když už jsou k dispozici výkresy krabičky (jak to říct diplomaticky?), která dokáže chytat 8 kanálů. To by jednu BTS dát mohlo.
Jinak šířka kanálu je jen 200kHz? To není problém, snad i bluetooth má mnohem širší pásmo (dokonce na náročnější/vyšší frekvenci). BTW bluetooth umí hopping taky .No poraď, zatím nejlevnější SDR je rtl-sdr s šířkou 2 MHz (když se to hodně ohulí, tak i 3 MHz) a rozsahem 64-1700 MHz, tedy na GSM1800 by se to muselo nějak downmixovat. Navíc BTS mají v ČR kanály přidělené tak, aby se to navzájem nerušilo, takže tam jsou díry → potřebuješ těch SDR hodně.
ROFL převodník stojí víc než mobil? :-ONa ten převodník dáš 4 mobily, ale i tak je to pálka…
Šifrovaně můžeš tunelovat i přes současný kanál ne?Blbě. S rozumným effortem do toho GSM narveš tak pár set bitů za sekundu maximálně.
Jenom místo zakomprimovanýho zvuku přímo do streamu z LFSR ještě zaXORuješ něčím tvrdším.To nejde. Na BTS se totiž zvuk rozbalí do PCM, infrastrukturou operátora putuje jako PCM a na druhé BTS se zase zkomprimuje GSM/EFR/AMR/jaksetozrovnamenuje a pošle. Při nějakém chytrém exploitnutí vlastností toho vokodéru by se z toko pár kb/s vytřískat dalo (takže nějaký nejmizernější speex tím protáhneš), ale to CSD/GPRS/EDGE vyjde fakt líp…
BTW Co ten hack pomocí tý piko(mikro/nano?)BTS jak distribuoval zahraniční operátor?To je UMTS/3G a odkazuju to v závěru (…zrovna růžové). To je fail nad faily, leč GSM pikocely se nedistribuují. Ale kdo má mikrocelu v baráku, pustit si Wireshark po těch drátech, co z toho vedou, by mohlo být zajímavé. Jen jestli tam není ipsec - pak by bylo potřeba hackovat přímo tu stanici…
28c3-4736-en-defending_mobile_phones_h264.mp4
):
Mobil poslouchá BTS. Ta pošle Ciphering Mode Command a když telefon nezačne šifrovat, tak mu IMHO přestane rozumět.Aha tak to asi ne, jsem myslel kdyby to bylo jako třeba telnet nebo analogový modem (ne master slave).
My si vycrackovali nějaký rámec zprostředka, ale chtěli bychom znát celou komunikaci. A taky bychom chtěli poslouchat následující komunikace, které se inicializují stejným klíčem, ale napajpuje se tam jiný framenumber (to je něco jako IV, akorát hodně slabý, protože se mezi transakcemi inkrementuje jen o málo).FN se inkrementuje nějak deterministicky? Jak se přenese první hodnota?
Tak ony defaultně mají ty LFRS nuly… kdyby jich nebylo jenom 64 bitů, ale třeba 128, tak to není zas tak špatná šifra…Jo ale kdyby byl klíč nulový i framenumber nulový, tak lfsr generuje jen samý nuly a přenáší se přímo enkódovaný zvuk/data .
Ty jo, DCS (GSM 1800) má v ČR snad 70 MHz v jednom směru? To znamená I/Q ADC s 70 Megasamply. Nebo radši rovnou dva (uplink i downlink).To vybereš z libovolného osciloskopu , navíc můžeš dát třeba několik 10MSps. P.S. Ještě možná spíš 140M dle nyquista-shanona-kotelníka .
Já měl za to, že je to 8 timeslotů, tedy 0,577 (?) ms. Ale vzhledem k tomu, že jak poslouchání, tak samotný GSM stack na Linuxu funguje přes USB, tedy milisekunda žádná míra, tak tam asi bude nějaký delay. Nebo se na začátku neposílá nic důležitého . ... To by šlo, ještě to nikdo asi nezkoumal. Když už jsou k dispozici výkresy krabičky (jak to říct diplomaticky?), která dokáže chytat 8 kanálů. To by jednu BTS dát mohlo.Aha takže přímo hnedka v dalším slotu, zajímavý. A ten ovladač přes linux řídí přímo vysílač? :-O Tak to je masakr . ... Nebo by se taky možná dala BTS přinutit přejít na jiný kanál pouhým zarušením . Což mě přivádí na otázku, co se stane, když začnou ve stejném timeslotu vysílat dva mobily? (nebo když se zaruší příjem změny frekvence)
No poraď, zatím nejlevnější SDR je rtl-sdr s šířkou 2 MHzSatelitní přijímač downmixuje tuším z >10GHz na ~1GHz, analogová televize má obrazovou mezifrekvenci 30MHz, takže stáhnout z 1.8G by to šlo horší je prostě ten AD převodník no, ale 100MSps se koupit dá (nebude to levný, ale zase to nebudou miliony).
Na ten převodník dáš 4 mobily, ale i tak je to pálka…A je to UART→USB? To by možná šlo z nějakýho PICu levnějc...
To nejde. Na BTS se totiž zvuk rozbalí do PCM, infrastrukturou operátora putuje jako PCM a na druhé BTS se zase zkomprimuje GSM/EFR/AMR/jaksetozrovnamenuje a pošle.Aha brrrblé. Zajímavý proč si zvyšuje trafic.
FN se inkrementuje nějak deterministicky?No, překvapivě o jedničku s každým frame . Vysílá se nešifrovaně na broadcast kanálu.
To vybereš z libovolného osciloskopu , navíc můžeš dát třeba několik 10MSps. P.S. Ještě možná spíš 140M dle nyquista-shanona-kotelníka .Hele postav to SDRko a lidi ti za to utrhaj ruce. Už jsme přemýšleli i o vysílání ve stylu Tempest nebo tadytoho týpka.
A ten ovladač přes linux řídí přímo vysílač? :-OSamotná demodulace se děje v DSP v mobilu, takže po sériáku už tečou jedničky a nuly, ale jinak je všechno ostatní na počítači.
Nebo by se taky možná dala BTS přinutit přejít na jiný kanál pouhým zarušením .BTS mají kanály alokované staticky (buňky musí být po krajině rozmístěné a spočítané tak, aby se to navzájem co nejmíň rušilo - takže se hladá uspořádání, kde každé dvě stejné frekvence budou co nejdál od sebe). Když jednu na chvilku zarušíš, mobil zkusí handover na vedlejší; když ji zarušíš na dýl, přijede bílá dodávka a začne se zajímat, co se stalo.
(nebo když se zaruší příjem změny frekvence)Nic, přeladíš se na vedlejší BTS. A když je to během hovoru, tak asi spadne :).
A je to UART→USB? To by možná šlo z nějakýho PICu levnějc...No jo, jenže tenhle UART nemá 115200, ale dvojnásobek .
Aha brrrblé. Zajímavý proč si zvyšuje trafic.Podle mě proto, že (pick one :)
No, překvapivě o jedničku s každým frame . Vysílá se nešifrovaně na broadcast kanálu.Takže se musí někde nejprve inicializovat a pak už můžou jet asynchronně. Pokud bych odchytnul rámec, tak mám další část klíče, ale to se asi bude posílat taky šifrovaně, že?
Hele postav to SDRko a lidi ti za to utrhaj ruce. Už jsme přemýšleli i o vysílání ve stylu Tempest nebo tadytoho týpka.AD9446 s 100MSps nebo si můžeš vybrat z klikatelné tabulky (+1 bod pro Analog Devices).
Samotná demodulace se děje v DSP v mobilu, takže po sériáku už tečou jedničky a nuly, ale jinak je všechno ostatní na počítači.Hmm takže by mohlo jít zpoždění USB maskovat jako větší timing advance.
BTS mají kanály alokované staticky (buňky musí být po krajině rozmístěné a spočítané tak, aby se to navzájem co nejmíň rušilo - takže se hladá uspořádání, kde každé dvě stejné frekvence budou co nejdál od sebe). Když jednu na chvilku zarušíš, mobil zkusí handover na vedlejší; když ji zarušíš na dýl, přijede bílá dodávka a začne se zajímat, co se stalo.Jedině, že bys měl směrovou anténu a věděl, že teďka vysílá mobil co chceš sledovat a rušičku zapínal jen v jeho kanálu a timeslotu. BTW teoreticky jestli se na začátku vysílání mobilu posílá synchronizační pole, tak bys možná mohl stihnout přeladit dřív než začnou data (kterej kanál bys zjistil pomocí spektrálního analyzéru).
No jo, jenže tenhle UART nemá 115200, ale dvojnásobek .UART modul v PICu má asi 8Mbps . BTW Pouze ty nejshitoidnější čipsety na PC maj 115200, už v 90. letech měly třeba ~912kbps.
Podle mě proto, že (pick one :)Nejspíš ta nedigitální síť, i když já bych vybral spíš to, že odposlouchávat kodek je složitější než PCM .
Takže se musí někde nejprve inicializovat a pak už můžou jet asynchronně. Pokud bych odchytnul rámec, tak mám další část klíče, ale to se asi bude posílat taky šifrovaně, že?Framenumber znáš - k získání klíče z generátoru ho totiž potřebuješ. Viděl jsi to video o A5/1? Nejdřív se do toho napajpuje klíč a pak framenumber. Když to backclockuješ, musíš v těch 22 cyklech vyndavat z těch registrů framenumber.
Hmm takže by mohlo jít zpoždění USB maskovat jako větší timing advance.Nejvyšší TA je 35 km, tedy 120 μs.
Jedině, že bys měl směrovou anténu a věděl, že teďka vysílá mobil co chceš sledovat a rušičku zapínal jen v jeho kanálu a timeslotu.To můžu namířit na mobil a gumovat mu BTSku.
BTW teoreticky jestli se na začátku vysílání mobilu posílá synchronizační pole, tak bys možná mohl stihnout přeladit dřív než začnou data (kterej kanál bys zjistil pomocí spektrálního analyzéru).Posílá se DATA-TRAINING-DATA, ale pravda, pomocí rychlého spektráku nebo pomalého spektráku a následného dohopování rádiem by se dalo zjistit, na kterých kanálech a timeslotech probíhá uplink. Teď ještě co s downlinkem, ale i tak může být půlka hovoru cenná. Taky lze zkusit extrahovat echo z mikrofonu a zrekonstruovat druhou půlku, i když GSM kodek je na tohle dost šmejdský.
Framenumber znáš - k získání klíče z generátoru ho totiž potřebuješ. Viděl jsi to video o A5/1? Nejdřív se do toho napajpuje klíč a pak framenumber. Když to backclockuješ, musíš v těch 22 cyklech vyndavat z těch registrů framenumber.Jo viděl, ale není tam napsaný odkud ho vezmu (možná, že to je v audiu, já to pouštěl bez zvuku :-/).
Nejvyšší TA je 35 km, tedy 120 μs.Kruci, pravda, to mám z toho, že píšu narychlo nepřihlášen . Jinak jestli bude komunikace používat interrupt přenosy, tak by to mělo být dost rychlý. GSM rámce maj na začátku 3 bity tail bity, takže máš cca 11us na detekci a přepnutí přijímače . BTW osobně bych se nedivil, kdyby první rámec po hopu byl pouze synchronizační/trénovací.
Je jen otázka času, kdy se na černém trhu začnou objevovat hotové krabičky na odstavení levných GSM zabezpečovaček.To zní jako zajímavý podnikatelský záměr :)
Tj. v okamžiku kdy BTS řekne "zapni šifrování", tak to pirátský vysílač přebije svým silným "pojedem bez šifrování"EE, BTS pak už očekává šifrovaná data a protože útočník nezná klíč, tak je ani nemůže transparentně dešifrovat. GSM mobil podle mě šifrování podporovat musí vždy, o (ne)použití šifry rozhoduje BTS. Respektive koukáním na příchozí spojení jsem nabyl toho dojmu, když komunikaci iniciuje mobil, může to být jinak. GSM zas tak moc nerozumím :).
01-03 pro známou trojku a 98 pro jednoho méně známéhoA co 99, tu ma preci CVUT FEL.
230 99 Vodafone Vodafone Czech Republic Operational GSM 1800 R&D Centre at FEE, CTU (educational, experimental)
A nešlo by zamezit hopingu, tak že zarušíš všechny přednastavené kanály sledované BTS a nechal bys jen jediný volný?Hopping se neinicializuje dynamicky podle zarušených pásem, ale prostě nějak a když to pak nevyjde, tak smůla.
A co metoda aktualizace SIM pomocí falešné BTS?Ono „se“ hlavně tvrdí, že mobil lze kombinací úmyslných backdoorů a děr donutit na dálku zapnout mikrofon a poslouchat.
a v případě potřeby by provedl úpravu HW/SW příušnice sledované osoby, protože jak už z televize víme, někteří komunikují po GSM v kryptované podoběTak doufejme, že u normálních chytrých telefonů (hmm, v současnosti asi jenom věci z OpenMoko a N900) se nedá exploitem GSM napadnout zbytek systému - AT rozhraní pro komunikaci s modemem je tak jednoduché, že tam snad nikdo žádný buffer overflow nezapomněl :). A protože šifrované hovory jsou data (normální SIP přes SSL a šifrované RTP), dá se ze strany operátora udělat tak maximálně DoS.
Ono „se“ hlavně tvrdí, že mobil lze kombinací úmyslných backdoorů a děr donutit na dálku zapnout mikrofon a poslouchat.Můj ne, teda pokud neobjevili způsob jak obejít zákony termodynamiky a zabránit mému mobilu, aby se soustavným vysíláním za pár minut vybil .
AT rozhraní pro komunikaci s modemem je tak jednoduché, že tam snad nikdo žádný buffer overflow nezapomněl :)To by ses možná (u non open výrobků) divil .
Ono „se“ hlavně tvrdí, že mobil lze kombinací úmyslných backdoorů a děr donutit na dálku zapnout mikrofon a poslouchat.
Něco na tohle téma bych strašně rád viděl, nedá se na to moc nic pořádně vypátrat.