You are viewing [info]_adept_'s journal

dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Комментарии к презентации "GSM – SRSLY?", продемонстрированной на 26C3 
6th-Jan-2010 04:18 pm
После выступления Карстена Нола (или Ноля? в оригинале он Karsten Nohl) на конференции 26C3 я получил множество писем и комментариев с просьбой его прокомментировать. Так как выступление было 30-го декабря, сделать я это могу только сейчас.

Исходные материалы:
Что я думаю по поводу их исследования в целом - я уже писал раньше.  Короткий пересказ: "чтобы реально слушать разговоры, нужно помимо собственно нахождения уязвимостей в A5/1 решить еще ряд сугубо инженерных проблем (например, радиоперехват, frequency hopping), до которым криптографам нету дела, вот и нету публичных демонстраций работающих решений. [...] Пока что мне кажется, что Карстен сотоварищи [...] рассчитывают rainbow tables для алгоритма, [...], работающего на "идеальном шифропотоке"".

Каково мое мнение теперь, после просмотра выступления: если коротко, оно не изменилось. Пруфлинки из mailing-list проекта о том, что дела обстоят именно так: раз, два, три, и в особенности тред, начинающийся с этого сообщения (кстати - я был не прав, помехи они у себя учитывают, но пока делают относительно них достаточно оптимистичные предположения).

Дальше - мои мысли-комментарии по самому выступлению.

Что рассказывали докладчики (тезисы):
  1. Как использовать OpenBTS, airdump и wireshark для создания IMSI catcher-а
  2. Как они рассчитывают rainbow tables, как именно выглядит их атака, и каких успехов на поприще рассчетов они достигли
  3. Как (теоретически) все это можно использовать для прослушивания разговоров
Что вызвало у меня удивление:
  • Говоря об аутентификации абонента в сети, несколько раз повторялась фраза "GSM really has lots and lots of layers of registration, it's really complicated". Непонятно, о чем это они
  • Докладчики утверждают, что SIM-карта легко может запретить телефону показывать, что он работает в режиме шифрования A5/0 (т.е. без шифрования вообще) и что большинство SIM-карт в обороте - именно такие. Им, мол-де, стоило больших трудов найти и купить на eBay SIM-карту, которая "не такая". Я не дам зуб, что этого сделать нельзя, но тщательное грепанье текста GSM 11.11/GSM 11.14/GSM 03.20 (и более новых их версий для 3G) не дает даже намеков на подобную функциональность. Поиск на сайте 3gpp.org тоже не дал ничего. Мне кажется, что товарищи "несколько преувеличивают". Кто может прокомментировать?
    UPD: это действительно возможно, я написал отдельный пост на эту тему.
  • У докладчиков вызвывает удивление то, что телефон кеширует имя оператора, передаваемое в рамках cell broadcast. В то время как эта функциональность хорошо описана в GSM-спеках. Соответственно, у меня вызывает удивление то, что это вызывает удивление у них :)
  • Докладчики сетуют: "наша OpenBTS имела баг, и вместо сообщения "в регистрации в сети отказано" сначала посылала сообщение "этот телефон украден", после чего телефоны отключались, некоторые не включались потом до хард-ресета снятием батарейки". А что это за такое сообщение? И как SIM выключает телефон, если в GSM 03.20/GSM 11.11/GSM 11.14 нет описания интерфейса для этого?
  • Докладчики говорят: "мы настроили нашу базовую на частоты GSM-900, который вообще не должен использоваться в Северной Америке, и - прикиньте! - iPhone все равно приконнектился к нашей базовой (смех в зале)". Да-да, лучше прошить в телефон сведения о том, где какие диапазоны используюся, и через год разгребать проблемы с роумингом.
После этих пассажей у меня возникло впечатление, что авторы читали GSM-спеки в чьем-то неполном пересказе.

Что вызвало удивление у докладчиков, но имеет хоть какое-то объяснение с моей точки зрения:
  • Докладчики говорят: "вот, когда мы тестировали свой IMSI-catcher (я писал про это тут и тут), был какой-то чужой соседский iPhone, который как прицепился один раз к нашей фейковой базовой, так и продолжал к ней цепляться, что бы мы не делали. Мы не можем это объяснить, имхо это баг в айфоне". Докладчики настраивали свою базовую так, чтобы она использовала MCC=01 и MNC=01 (тестовая страна, тестовая сеть). Могло ли быть такое, что этот айфон - в роуминге, с manual carrier selection, и его пользователь случайно подтвердил выбор сети (01, 01), когда айфон первый раз к ней подключился? Если так, то это объясняет, почему потом этот айфон ломился в эту сеть, как заведенный.
  • Докладчики сетуют, что прошивки телефонов тестируются "for compliance to GSM specs, and are not tested for failure", соответственно, в случае глючной базовой (например, OpenBTS, которую они допиливали для своих нужд) телефоны, бывают, вешаются. Мне же кажется, что такое положение вещей - это распространенная практика (смотрим на Wifi, Bluetooth и - в меньшей мере, конечно - на TCP/IP), и ничего такого архиужасного или GSM-специфичного в этом нет
С чем я могу согласится:
  • Докладчики сетуют на то, что, хоть телефон и может по косвенным признакам определить, что он с большой вероятностью "обрабатывается" IMSI catcher-ом, никакой индикации пользователю не делается, а можно было бы.
Часть рассказа, посвященная rainbow tables, была традиционно хороша. Если коротко, то все у них хорошо :)

Далее, докладчики сказали, что всего за $1500 можно из USRP, OpenBTS, asterisk и airprobe собрать готовый комплект для прослушивания разговоров. Деталей не было, обещали сделать наглядную демонстрацию.

Демонстрация не состоялась. Я намерено не буду комментировать заявление о том, почему она не состоялась.

Соотвественно, с моей точки зрения, со времени последнего заявления товарища Нола продемонстрированный (а не заявленный-теоретический) прогресс заключается в том, что они просчитали здоровый кусок rainbow tables. Про проблемы с frequency hopping-ом, мониторингом полного диапазона частот, и т.п. никто пока не думает.

Ну, можно и дальше ждать спек программно-аппаратного комплекса для прослушивания :) Но, думается мне, не в этом году ...
Comments 
6th-Jan-2010 03:00 pm (UTC)
"Говоря об аутентификации абонента в сети, несколько раз повторялась фраза "GSM really has lots and lots of layers of registration, it's really complicated". Непонятно, о чем это они"


Могу только предположить, что имелась ввиду все таки 3G сеть, где алгоритм аутентификации является Milenage. В этом случае да, аутентификация производится не только сетью карты, а также картой сети.



"Докладчики утверждают, что SIM-карта легко может запретить телефону показывать, что он работает в режиме шифрования A5/0 (т.е. без шифрования вообще) и что большинство SIM-карт в обороте - именно такие."


С моей точки зрения довольно бредовое заявление. Возможно они имели ввиду следующее:
В спецификации 51.011 в описании файла EF Kc, который хранит ключ шифрования и его порядкоый номер есть следующее замечание по поводу 9го байта:

TS 24.008 [47] defines the value of n=111 as "key not available". Therefore the value '07' and not 'FF' should be present following the administrative phase.

Но 24.008 четко это определяет как:

Ciphering Key Sequence Number
The purpose of the Ciphering Key Sequence Number information element is to make it possible for the network to identify the ciphering key Kc which is stored in the mobile station without invoking the authentication procedure. The ciphering key sequence number is allocated by the network and sent with the AUTHENTICATION REQUEST message to the mobile station where it is stored together with the calculated ciphering key Kc

То есть файл является только хранилищем.


6th-Jan-2010 08:04 pm (UTC)
"Докладчики утверждают, что SIM-карта легко может запретить телефону показывать, что он работает в режиме шифрования A5/0 (т.е. без шифрования вообще) и что большинство SIM-карт в обороте - именно такие."

Good! Но давайте зайдем с другого конца. Если что-то подобное имеет место быть как это будет выглядеть на телефоне? Что можно увидеть, считать с симки что-бы подтвердить или опровергнуть это,
6th-Jan-2010 10:33 pm (UTC)
Если я правильно помню то, что говорилось на видео, то они подавали это так: "Вот у нас есть несколько симок разных операторов. Мы суем их в телефон, телефон цепляется к OpenBTS, в одном случае "замочек" на экране есть, а в девяти - нет. Это заговор!"
7th-Jan-2010 10:18 am (UTC)
Это корректная проверка. И поведение действительно странное.
А вот объяснение сомнительное. Интересно симки каких операторов под подозрением.

Впрочем странное поведение знака "замочек" я видел и сам на своей Нокии.
"открытый замок" появляется на секунду и гаснет. МТС-Москва, чаще всего такое в метро. Как это согласуется с работой GSM я не понимаю, но допускаю что это Жжжж не спроста.
7th-Jan-2010 08:16 am (UTC)
Не-не, в видео они явно говорят, что спич только про GSM, а 3G мельком упоминают потом в сессии вопросов-ответов.
6th-Jan-2010 03:08 pm (UTC)
"Докладчики сетуют: "наша OpenBTS имела баг, и вместо сообщения "в регистрации в сети отказано" сначала посылала сообщение "этот телефон украден", после чего телефоны отключались, некоторые не включались потом до хард-ресета снятием батарейки". А что это за такое сообщение? И как SIM выключает телефон, если в GSM 03.20/GSM 11.11/GSM 11.14 нет описания интерфейса для этого?"

Возможно они имели ввиду REFRESH - Full из 11.14.


6th-Jan-2010 04:15 pm (UTC)
Ух ты! Я узнал про существование OpenBTS. Ты игрался с ним? Какое железо к нему надо прикрутить и где это железо взять? Я страшно хочу поиграться с такой штукой.
19th-Jan-2010 04:07 pm (UTC)
Нужна USRP + опорный генератор на 52МГц. USRP можно купить у производителя: http://www.ettus.com/ или у перепродавца в Европе: http://olifantasia.com/gnuradio/usrp/usrp_prijzen_en_eigenschappen.html
Но дешевле всего привезти из Штатов с собой или с оказией.
Опорный генератор можно купить у нас. Первая партия кончилась, вторая партия планируется на конец февраля. Для начала можно и без него жить, но стоит внимательно изучить вот это: http://gnuradio.org/redmine/wiki/gnuradio/OpenBTSClocks

Если будешь в Москве - можно поиграться с нашим железом.
19th-Jan-2010 04:56 pm (UTC)
Ага, это я уже читал, что без генератора плохо жить.

А сколько стоит вот так вот поиграться поставить БСку, для семьи, для дома? :)
21st-Jan-2010 05:42 am (UTC)
Собственно нужна USRP1+RFX1800+часы, USRP+RFX=$950+доставка+налоги, часы в базовой конфигурации будут стоить около $150+доставка+налоги. Доставка и налоги зависят от вашей честности и изворотливости, так что считайте сами.
Тут я указываю одну RFX, так как люди говорят, так можно. Мы используем классическую конфигурацию с двумя RFX:
http://gnuradio.org/redmine/wiki/gnuradio/OpenBTSDesktopTestingKit

Да, если не обладаете навыками SMD пайки, то вам потребуется или друг, который умеет, или деньги, чтобы модифицировать USRP для работы с часами и т.д. Если намерения серьёзные - пишите мне, может быть мы поможем.

ЗЫ Коменты все на почту отсюда не приходят, так что могу не заметить ответа. Можно писать мне на Alexander точка Chemeris на gmail.com
21st-Jan-2010 12:22 pm (UTC)
Понял. Не, интерес несерьезный - просто интересно были прикинуть порядок. Спасибо :)
21st-Jan-2010 12:36 pm (UTC)
Да не за что.
Вообще проект достоен серьёзного интереса. В рунете откуда-то популярна идея о том, что это "проект с неясными коммерческими перспективами" - я всё никак не найду время написать пост на эту тему с объяснениями, почему это мнение не верно.

О, теперь и правда коменты приходят на почту.
21st-Jan-2010 05:53 am (UTC)
А теперь может быть и будут коменты на почту приходить. Посмотрим.
6th-Jan-2010 04:48 pm (UTC)
Ну, мониторинг полного диапазона при SDR-е не выглядит чем-то очень ужасным. Для диапазона порядка 40Mhz спокойно слушают весь диапазон на железе, собранном не коленке буквально из чего попало. 900Mhz потяжелее, конечно, но там не надо слушать от нуля :)
6th-Jan-2010 06:44 pm (UTC)
А из этого диапазона в 40 Mhz сколько каналов пишут одновременно?

Для GSM-900 надо мониторить 127 каналов, для GSM-1800 - еще 374 (я считаю uplink и downlink вместе).
6th-Jan-2010 06:54 pm (UTC)
А из этого диапазона в 40 Mhz сколько каналов пишут одновременно?
Все. Полный спектр 0-40Mhz. Ну, чуть-чуть не от нуля, конечно. Гонится всё, просто сплошным потоком. А уж что софт будет выделять — тут сколько проца хватит. А процы нынче мощные, да и параллелится эта задача чудесно.

127 каналов — это, грубо говоря, 256 FFT параллельно в реальном времени. Ну, надо смотреть что такое потянет. Ясно, что на коленке такое не собирается (как миниуим — нельзя сразу с антенны гнать в АЦП, надо понизить частоту как следует аналоговыми средствами, АЦП на 900Mhz это, мягко говоря, черезчур), но выглядит реалистично. DSP, FPGA…
7th-Jan-2010 08:15 am (UTC)
У них, как я понимаю, получается такая вот дилемма:
1)Либо успеваем писать и декодировать все, но уже не получается собрать аппаратную часть на коленке, и бюджет - килобаксы
2)Либо успеваем писать много чего на аппаратуре, собранной на колене - но тогда декодировать будем сильно потом (на чем-то более сильном)
3)Либо успеваем писать и декодировать, но только один канал

Причем все это пока "на бумаге" - реально ни одного из вариантов не реализовано, только проекты.
19th-Jan-2010 04:31 pm (UTC)
На моём далеко не топовом Core 2 Duo 6300 @1.6GHz один трансивер OpenBTS ест 5-10% одного ядра. Так что собственно декодирование не проблема, пока мы работаем с одной вышкой.
Одной USRP достаточно, захватить или uplink, или downlink.
Так что два компа - один на up, один на down и вперёд. Бюджет - 2*950$ на две USRP плюс компы. Получается совсем не дорого.

А относительно скоро могут появиться и альтернативы USRP. В частности, железо для OpenBTS разрабатываем и мы, а оно может использоваться и для перехвата, SDR всё-таки. Так же этим именно для перехвата занимается Harald Welte, а может и кто-то ещё. Так что ждите, лёд тронулся, не сегодня, так завтра..

PS Интересно, а мне коменты на почту так будут приходить?
5th-Jan-2012 01:39 pm (UTC)
ну для прослушки одного телефона наверное все каналы и не нужны.

Пред прыжком телефон сообщает базе куда он прыгает? или у него есть какой-то ID разговора и он просто пихает пакеты с этим ID в любой канал в свободный таймслот, а база уже все пакеты у себя сортирует ?

но в общем полное декодирование и не нужно получается, декодировать нужно вызов абонента по пейджингу и его переговор с базой
потом декоддировать канал разговора
если телефон с канала спрыгнул - частично декодировать все каналы (поиск своего абонент, содержание не интересно) пока не найдёшь своего

8th-Jan-2012 09:14 pm (UTC)
А теперь попробуйте применить этот совет в случае, если вычислительной мощности не хватает для декодирования в режиме реального времени. Телефон _уже_ прыгнул, а мы _еще_ не знаем, куда. И если не будем писать все подряд - пропустим (постфактум) что-то интересное.
10th-Jan-2012 10:18 am (UTC)
1) если телефон сообщает, куда он прыгнул - то у нас не будет потери вообще, если мы принимаем все частоты сразу и не надо перенастраивать приёмник.

2) если у нас хватает мощности на *частичное* декодирование - декодировать часть заголовка пакета, определить от нашего телефона какой из пакетов - потери не будет.

3) если не успеваем даже с частичным декодированием, то чтобы просмотреть полдесятка самых лучшх частот должно хватить 2-3 таймфреймов. В секунжах это не так и много.
10th-Jan-2012 11:25 am (UTC)
Поскольку мы перешли от конкретики к умозрительным построениям, хочу задать вопрос: сколько, по-вашему, частот надо слушать, чтобы "принимать все частоты сразу" для GSM-900 и GSM-1800? Сколько для этого понадобится приемников?
10th-Jan-2012 11:55 am (UTC)
Выше упоминали про 5 частот, которые телефон Noika определял как желательные к использованию.
Так что предположим 10.

Но выше было написано "2)Либо успеваем писать много чего на аппаратуре, собранной на колене", так что с приёмом и записью видимо проблем нет
10th-Jan-2012 02:07 pm (UTC)
А теперь смотрим сюда: http://mobilz.h1.ru/to.htm

Так что совсем не 10.
25th-Jan-2012 10:15 pm (UTC)
Дальше читать сюда: http://users.livejournal.com/_adept_/118372.html

Полностью пассивный перехват пока не получается. Полуактивный - уже вполне.
2nd-Mar-2010 12:07 pm (UTC)
я думаю все же меньше.
сколько в одной точке ты сейчас можешь услышать каналов?
а сколько из них пригодны для телефона?

когда я с нетмонитором на 6310 игрался ну первые пять еще можно понять, остальные -- нереально хуже, что бы телефон на них переключился непонятно что должно произойти. ну и не слышал он ничего подобного 500 каналам за раз
7th-Jan-2010 01:29 pm (UTC) - Предупреждение о ракете поступит прямо на ваш мобильн
http://www.zman.com/news/2010/01/07/64586.html

В этот момент программа тыловиков полностью овладевает вашим телефоном и задействует все "пыхтелки, гуделки и сопелки" вашего телефона, чтобы предупредить о грозящей опасности.
7th-Jan-2010 03:22 pm (UTC) - Re: Предупреждение о ракете поступит прямо на ваш мобил
Это вопрос, утверждение, ссылка "на посмотреть" или ссылочный спам? :)

Меня позабавило, как скромный SMS из первого абзаца в третьем превратился в "овладевает вашим телефоном" и "пыхтелки, гуделки".
7th-Jan-2010 03:26 pm (UTC) - Re: Предупреждение о ракете поступит прямо на ваш мобил
Принцип рассылки смс удивил. Ну и овладевание телефоном порадовало.
11th-Jan-2010 08:27 am (UTC)
насколько я понимаю, резюмируя всё вышесказанное, задача доклада - привлечь денежный мешок?)
11th-Jan-2010 09:41 pm (UTC)
Лінк на слайди уже не живий :(
12th-Jan-2010 08:23 am (UTC)
Спасибо, fixed.
12th-Jan-2010 02:14 pm (UTC) - Тут еще говорят
Anonymous
Не прошло и двух недель, как KASUMI тоже вскрыли, и сетуют, что предыдущий MISTY был лучше.

http://threatpost.com/en_us/blogs/second-gsm-cipher-falls-011110

Боимся? :-)
16th-Jan-2010 04:16 am (UTC) - вопросы
Anonymous
Хмм.. ну если возникли вопросы, то почему бы не задать их автору презентации?
Адрес на слайдах есть, английский герр Нол вполне понимает.
16th-Jan-2010 02:46 pm (UTC) - Re: вопросы
Мне достаточно было почитать mailing list - там задаются сходные вопросы.
19th-Jan-2010 03:43 pm (UTC)
"имя оператора, передаваемое в рамках cell broadcast"
Можно ссылочку на спеки? Когда я копался с передачей имени оператора в OpenBTS, то смог найти имя оператора только в MM Information собщении (GSM 04.08 9.2.15a), а ни в одном броадкасте не нашёл. Буду рад, если ткнёте, что я пропустил.

"Про проблемы с frequency hopping-ом, мониторингом полного диапазона частот, и т.п. никто пока не думает."
Думают. Этот вопрос обсуждается в рассылке.

"Ну, можно и дальше ждать спек программно-аппаратного комплекса для прослушивания :) Но, думается мне, не в этом году ..."

Если без хоппинга, то можно собрать и в этом году. Если с хоппингом - может и не так скоро, потому что пока нет рабочего софта для дешфировки в этом случае. Это тоже обсуждалось в рассылке.
8th-Feb-2010 11:09 pm (UTC)
Из примечательного обсуждения безопасности GSM в рассылке OpenBTS, инициированном самим Столлменом. Силвэйн отвечает на мой прямой вопрос:

> Do you know where exactly in the Specs this "feature" is described?

It's in the MS requirements: GSM 02.07 Normative Annex B.1.26.
It's also mentionned in GSM 02.09 Section 3.3.3

> I'm also interesting in a way to detect whether given SIM have this
> feature turned on or off. Then I can test all SIM cards I have from
> all different operators here.

The configuration bit in question is described in GSM 11.11 Section
10.3.18, the OFM bit, which is the LSB of the third byte of EF_ad (
3F00/7F20/6FAD )

Я ещё сам в спеки не заглядывал, правда. Пока не до того..
This page was loaded May 28th 2012, 11:38 am GMT.