dastapov: (new)
[personal profile] dastapov
Привет.

Мне тут пишут про то, что Карстен Нол нарыл очередную дыру (и таки да!). Правда, почему-то присылают при этом бестолковые ссылки типа вот этой.

Так вот, бестолковые ссылки читать не надо. Надо читать либо первоисточник, либо журналистов, которые умеют копать и думать самостоятельно.

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

В современных SIM-картах, в какую не плюнь, есть процессор и память, и как не удивительно - обкоцанная среда исполнения Java. Кому хочется пикантных подробностей - ищите в гугле по словам JavaCard или ходите по ссылкам, которые я давал на pro-gsm. При этом помните, что JavaCard - это не только про SIM-ки, а про все SmartCard-ы вообще (например, кредитки или всякие проездные).

А что же исполняется в этом Java runtime-а? А что, что туда положит заказчик SIM-карты, то есть оператор. Это может быть, например, прикольное или дебильное анимированное меню или "каталог сервисов" или еще что-то подобное.

Единственный канал связи с "внешним миром" у этого софта лежит через телефон, то есть данные можно принимать или отправлять по SMS (в обе стороны), USSD (в обе стороны) или через cell broadcast-ы (только принимать). Вплоть до версии 3 в JavaCard Spec не было возможности открывать сокеты (читай - интернета не было), но в версии 3 интернет таки завезли. Как находящиеся в оборте симки разбиваются по версиям JavaCard Spec, которая в них реализована - мне с наскоку найти не удалось.

Почему я заговорил про каналы связи? А потому, что оператору хочется время от времени обновлять этот софт или закидывать ему какие-то данные. Делается это обычно через каналы связи, которые оператор полностью контролирует - через SMS, реже - USSD или cell broadcast. Почему именно SMS? Потому, что USSD должен инициировать сам пользователь (т.е. нельзя сделать push), а cell broadcast - без обратной связи (непонятно, сколько симок реально обновилось).

UPD: Меня поправляют USSD push таки бывает (но, как я понимаю, не везде).

Чтобы обновить софт, или как-то еще порыться в потрохах симки, оператор отправляет специальный подписанный SMS. Этот SMS перехватывается SIM Toolkit-ом, подпись проверяется, содержимое извлекается и с ним что-то делается.

Так вот, Карстен обнаружил, что можно послать кривоподписанный SMS и получить в ответ сообщение об ошибке, в котором будет криптографически подписанная симкой часть. Если для используется DES, то можно взять его и сломать при помощи rainbow tables и получить в результате правильный секретный ключ. А им уже можно подписать правильный вредоносный SMS и наворотить дел.

Очевидно, что этот способ работает при выполнении определенных условий:
* SIM Toolkit принимает служебные сообщения с произвольного номера ИЛИ есть возможность подставить произвольный номер отправителя
* SIM Toolkit отправляет сообщения об ошибке, в которых есть зашифрованная часть
* Для шифрования используется DES (а не AES или что-то другое)

Из доступных материалов пока непонятно, насколько большую статистику собрал Карстен (и собирал ли). Статья в Форбс утверждает (со ссылкой на него), что атаке подвержено "большое количество" карточек, выпускаемых Gemalto и Oberture. Учитывая объемы этих производителей, даже уязвимость 10% от выпушенных карточек может обернуться многозначными цифрами. Операторы и производители карточек говорят, что на самом деле у них все шито-крыто, и масштабы бедствия сильно преувеличены.

Правы, что характерно, могут быть и те и другие.

31 июля Карстен будет выступать на конференции Black Hat, где обещается демонстрация вживую. Интересно, будут ли в выступлении статистика по кол-ву уязвимых карт и ее обоснование.

UPD: Продолжение

(no subject)

Date: 2013-07-23 09:49 pm (UTC)
From: [identity profile] trizes.livejournal.com
Спасибо за пост.

(no subject)

Date: 2013-07-24 12:09 am (UTC)
From: [identity profile] volodymir-k.livejournal.com
> получить в результате правильный секретный ключ. А им уже можно подписать правильный вредоносный SMS

странно, что используется один и тот же ключ для 2 разных целей 2 сторонами

> насколько большую статистику собрал Карстен (и собирал ли).

1000 симок вроде

> атаке подвержено "большое количество" карточек, выпускаемых Gemalto и Oberture

а разве опсосы не могут фильтровать идущие по ним СМСы?
если такие спец смсы заблокировать на гейте... и на станциях...

(no subject)

Date: 2013-07-24 01:06 am (UTC)
From: [identity profile] roman-pro.livejournal.com
Я так понимаю проблема из-за использования старых алгоритмов и медленного обновления стандартов на эти дела?
Плюс видимо из-за ограниченных вычислительных мощностей для подписи используются симметричные алгоритмы (что-то типа HMAC), вместо честной ЭЦП на асимметричных алгоритмах типа RSA ?

(no subject)

Date: 2013-07-24 05:06 am (UTC)
From: [identity profile] fregimus.livejournal.com
Очень интересно, спасибо. Я и не предполагал, что в карточке столько всего!

Если можно вопрос, к чему были упомянуты сокеты? Ведь vulnerability, как я понял, связана с SMS.

(no subject)

Date: 2013-07-24 06:02 am (UTC)
From: [identity profile] legolegs.livejournal.com
Сокеты к тому, что из взломанной карты надо извлечь какую-то пользу.

(no subject)

Date: 2013-07-24 07:01 am (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Сокеты к тому, что кто-то бы о них обязательно вспомнил :) Вот я их и упомянул, и подчеркнул, что операторы их для обновлений не используют.

(no subject)

Date: 2013-07-24 05:57 am (UTC)
From: [identity profile] ziavra.livejournal.com
>ИЛИ есть возможность подставить произвольный номер отправителя

А какой в этом смысл? Ведь ответ тогда уйдёт на этот произвольный номер?

(no subject)

Date: 2013-07-24 10:19 am (UTC)
From: [identity profile] dil.livejournal.com
Так не случайный же, а произвольный. Там этот ответ те, кому надо, его и поймают.

(no subject)

Date: 2013-07-24 01:34 pm (UTC)
From: [identity profile] ziavra.livejournal.com
дак если есть доступ для получения смс на этом номере, то что мешает сразу с него и отправить?

или речь идёт о перехвате смс-ответов где-то на уровне канала?

(no subject)

Date: 2013-07-24 10:18 am (UTC)
From: [identity profile] dil.livejournal.com
А тут вот ещё товарищи интересуются, нашел ли кто-нибудь способ вылезти из песочницы в java-картах и прочитать защищенные области памяти?
Потому как в сочетании с вышеописанным это уже имеет практический смысл.
Ты случайно не в курсе?

(no subject)

Date: 2013-07-24 04:32 pm (UTC)
From: [identity profile] enternet.livejournal.com
Так вроде ещё лет 10 назад какой-то студент показывал - забивал доступную память карты своим кодом и грел чип утюгом. И, при наступлении сбоя в карте наблюдалась неплохая вероятность того, что переход управления из "ядра" происходил на его код. Со всеми доступными привилегиями.
Могу что-то наврать, читал 100 лет назад.

(no subject)

Date: 2013-07-24 04:38 pm (UTC)
From: [identity profile] dil.livejournal.com
А ещё броски напряжения использовались для взлома смарт-карт. Но это всё вероятностные события, запуститься может что попало и с произвольного места. А интересны стабильные способы.

(no subject)

Date: 2013-07-24 10:26 am (UTC)
From: [identity profile] arkanoid.livejournal.com
есть мнение, что реализация JCRE может иметь собственные уязвимости, которые позволят что-то вытащить из защищенных областей. хотя бы при физическом доступе к карте. вот это мне было бы, по очевидным причинам, действительно интересно.

offtopic:

https://twitter.com/tsw2k/status/359722399484223488 что, правда? ЗАЧЕМ?

(no subject)

Date: 2013-07-24 02:43 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Там речь про 10К чего? Попыток ввести PIN?

(no subject)

Date: 2013-07-24 02:56 pm (UTC)
From: [identity profile] arkanoid.livejournal.com
причем тут PIN? он говорит, SIM-карте разрешено регистрироваться в сети ограниченное количество раз. PIN вообще штука локальная. Ты дискуссию-то посмотри.

(no subject)

Date: 2013-07-24 03:14 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Что-то я пока не нашел, как легко вытащить из твиттера дискуссию. Но ограничение на кол-во регистраций - это да, это сильно.

(no subject)

Date: 2013-07-26 10:09 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Всегда было такое, пока был актуален COMP128-1
Его можно было сломать с помощью примерно 50к запросов на
генерацию триплетов.
Вот и начали как первую степень защиты
делать ограничение по счетчику запросов.

(no subject)

Date: 2013-07-28 11:35 am (UTC)
From: [identity profile] gelvaos.livejournal.com
Разрешите слегка поправить формулировку, ограничение не на регистрацию в сети, а количество команд аутентификаций на карту, т.е.
- Для 2G это команда RUN GSM ALGO
- Для 3G это AUTHENTICATE

Причем эти команды отправляются на карту не только при изначальной регистрации, а при совершении звонка, отправки СМС итд итп, настраивается это на стороне сети оператора.

Типичное значение этого authentication counter равно 100 000 и в среднем хватает на 3 года эксплуатации, но это сильно зависит от условий эксплуатации.
Edited Date: 2013-07-28 11:37 am (UTC)

Уязвимость в SIM-картах

Date: 2013-07-24 10:45 am (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] dil referenced to your post from Уязвимость в SIM-картах (http://securityblogru.livejournal.com/123989.html) saying: [...] via _adept_ [...]

Связь карт с внешним миром

Date: 2013-07-28 11:41 am (UTC)
From: [identity profile] gelvaos.livejournal.com
Дмитрий, позвольте вас слегка поправить про канал связи с внешним миром. Да действительно Connected режим JavaCard появился только в версии спецификации 3, но BIP/CATTP и OPEN CHANNEL из 11.14 существуют очень давно и работали прекрасно. Именно поэтому многие производители СИМ карт не очень торопятся предоставлять карты с 3ей версией JavaCard, так как ничего особенного нового в ней нет.

Profile

dastapov: (Default)
Dmitry Astapov

April 2017

M T W T F S S
     12
3 45 6789
10111213141516
17181920212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags