dastapov: (Default)
[personal profile] dastapov
Заказной пост для [livejournal.com profile] netch, [livejournal.com profile] aefimov и [livejournal.com profile] andrew_dashin: "Я так понимаю, что у каждой sim-карты есть свой ID, по котрому определяют что это именно та самая карта. Волнует меня вот что: могу ли я подменить программно этот ID?" и "Каналы сетей действительно шифрованы или это сказки?"

Короткий ответ: у каждой SIM-карты действительно есть уникальный ID, называемый IMSI (International Mobile Subscriber Identity). Теоретически (при использовании программируемых или инженерных SIM-карт) его можно изменять. Однако, IMSI не является authentication token-ом - для того, чтобы определить "что это та самая карта", используется challenge-response протокол. В качестве секретного ключа используется длинное секретное число, которое хранится в SIM-карте так, что его невозможно считать и/или изменить. При определенной доле удачи его можно попытаться вычислить и сделать дубликат SIM-карты, но если не повезет - можно лишиться SIM-карты.

Длинный ответ:

В процессе производства SIM-карт производитель заносит в ROM каждой карты случайное число, называемое "Ki" (Key for identification). Это число будет служить секретным ключем для данной SIM-карты. Когда SIM-карты доставляются мобильному оператору, с ними передаются данные о Ki каждой новый SIM-карты. Эти данные (в виде пар (IMSI, Ki)) заносят в "центр аутентификации" мобильной сети (AuC).

Когда мобильный телефон пытается зарегистрироваться в сети, его IMSI передается в AuC, который передает обратно случайное число (RAND). Дальше SIM-карта и AuC параллельно выполняют одно и то же вычисление: (SRES, Kc) = A3/A8(RAND, Ki), где "A3/A8" - название стандартных алгоритмов вычисления SRES (Signed RESponse) и Kc (Key for ciphering) соответственно.

Телефон передает вычисленное SIM-картой значение SRES обратно в AuC, который сравнивает его со своим SRES. Если результаты совпали, то SIM-карта - подлинная.



Вычисленное значение Kc сохраняется в AuC/HLR/VLR и энергонезависимой памяти SIM-карты до следующей регистрации карты в сети и используется для шифрования голосового траффика, идущего по радиоинтерфейсу. Насколько я помню, расшифровкой занимается BSC и дальше (по наземным каналам) голос идет оцифрованным, но нешифрованным (кажется, кодек называется gsm 06.10).

Почему так тяжело клонировать SIM-карту?
Во-первых, у SIM-карты нет интерфейса, по которому можно непосредственно считать или изменить "Ki". Есть интерфейс, позволяющий выполнить алгоритм A3 или A8, но он защищен от попыток собрать достаточно данных для вычисления Ki путем перебора (brute forceing-а) - если слишком часто вызывать эти функции в течении короткого интервала времени, то SIM-карта заблокируется (приведет сама себя в негодность), после чего ее останется только выкинуть. Для успешного брут-форсинга нужно около 20000-40000 вызовов, и то - при условии, что в SIM-картах используется стандартный алгоритм A3 или несущественно отличающиеся его разновидности.

Кроме того, большинство операторов используют свои собственные алгоритмы вместо стандартного A3, не публикуя принципы их работы.

В сумме это приводит к тому, что клонировать SIM-карту возможно, но очень-очень тяжело.

Литература:
Page 1 of 4 << [1] [2] [3] [4] >>

(no subject)

Date: 2006-11-09 01:05 pm (UTC)
From: [identity profile] dotcypress.livejournal.com
Очень интересно, наконец таки в моей френдленте появилось что то отличное от программирования, юмора и дыбра! :)

Про СМС расскажите пжалста, какой там протокол, и почему сообщение ограничено 160 символами?

(no subject)

Date: 2006-11-09 01:44 pm (UTC)
kastaneda: (Default)
From: [personal profile] kastaneda
Есть глупый вопрос. (Подозреваю, что Гугль всё знает, но не скажет, пока я ему не сформулирую правильный* поисковой запрос). От 20К до 40К запросов - это интересно. А можно детальнее про порядки цифр? Размерность SRES, Ki и Kc какова?

* Пример неудобного поискового запроса. Для решения уравнений 3-й степени используется формула Кардано (и это многие знают), а уравнения 4-й степени решаются при помощи формул, которые названы в честь вывевших их итальянского математика Луиджи Феррари. Пришлось мне как-то искать в сети формулу Феррари, но Гугль упорно настаивал на том, что мне нужны автогонки :)

(no subject)

Date: 2006-11-09 01:46 pm (UTC)
From: [identity profile] filonov.livejournal.com
Однако клоны карт я наблюдал неоднократно, а преложения услуг по их клонированию еще чаще.

(no subject)

Date: 2006-11-09 02:04 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Я ж и говорю - клонировать возможно. Я знаю (но называть, пожалуй, не буду) операторов, карты которых клонируются "на ура", и операторов, клоны карт которых в дикой природе не встречались. Кто сильнее заморочился - того и меньше клонируют.

По поводу предложения услуг - тут вообще вопрос тонкий. Я не раз встречал в сети предложения услуг по генерации (за мелкую WMZ-мзду) кодов карт пополнений или схем девайсов или волшебных вкладок из фольги, которые приводят к тому, что "все ваши разговоры становятся БЕСПЛАТНЫМИ!". То, что подобные девайсы в принципе не могут работать, не означает, что на них нельзя поднять немножко денежек :)

(no subject)

Date: 2006-11-09 02:06 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Я вот неоднократно встречал предложения по лечению "от всего", снятию порчи и прочим интересным вещам :)

(no subject)

Date: 2006-11-09 02:06 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
опередил)

(no subject)

Date: 2006-11-09 02:10 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Ki - 32 знака. Подозреваю, что SRES и Kc - аналогично.

Детальные обо все можно прочитать тут: http://vb.kievsat.com/forumdisplay.php?f=46 (добавил в литературу)

(no subject)

Date: 2006-11-09 02:16 pm (UTC)
From: [identity profile] akshaal.livejournal.com
из-за этого, блин, не работает такая полезная фича как мульти-сим... разве что самому собирать механический мультисим...

(no subject)

Date: 2006-11-09 02:17 pm (UTC)
From: [identity profile] filonov.livejournal.com
Это не тот случай. Я держал в руках MultiSIM с клонами сим-карт двух крупнейших окрестных операторов (не будем показывать пальцем), и одну из оригинальных сим-карт данного клона. Мы экспериментально изучали вопрос как себя будут вести ДВЕ одинаковых сим-карты в сети :)

Эксперимент показал что "кто последний встал, того и тапки", что в общем и следовало ожидать.

(no subject)

Date: 2006-11-09 02:17 pm (UTC)
From: [identity profile] igorsereda.livejournal.com
Ага, то есть теоретически можно у оператора украсть базу с Ki и сдублировать любую карту.

Интересно, почему не использовалось асимметричное шифрование. Чтобы private key, залитый в сим карту, не знал вообще никто, а у оператора был бы только public key.

(no subject)

Date: 2006-11-09 02:18 pm (UTC)
From: [identity profile] filonov.livejournal.com
Так ведь работает. Хотя возможно не везде и не у всех.

(no subject)

Date: 2006-11-09 02:26 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Альтернативный взгляд на проблему:

С другой стороны, это не позволяет ушлым дилерам клепать копии симок и продавать их на черном рынке. Честную симку - честному покупателю, а ее клон - кому-то на радиорынке. А потом честный покупатель платит за двоих. Думаю, возможность поиметь мультисим будет для него слабым утешением :)

(no subject)

Date: 2006-11-09 02:27 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
1. Именно.

2. А можно развить тему? Что-то я не вижу, как это будет работать?

(no subject)

Date: 2006-11-09 02:34 pm (UTC)
From: [identity profile] igorsereda.livejournal.com
Ну дык, как электронная подпись. Сеть передает в девайс challenge, он его шифрует с приватным ключом и передает обратно. Сеть расшифровывает с публичным ключом - если получилось, и получилось то что надо - значит подлинник. Подслушивание ничего не даст при хорошем алгоритме генерации challenge и достаточной длине ключа.

(no subject)

Date: 2006-11-09 02:44 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Для этого девайсу должен быть известен public key текущей сети/AuC-а (не забываем про роуминг) и средство проверить, что нас не дурят и не пытаются нам подсунуть левый AuC и провести против нас known plaintext attack :)

(no subject)

Date: 2006-11-09 02:48 pm (UTC)
From: [identity profile] filonov.livejournal.com
хлопотно и чревато.

(no subject)

Date: 2006-11-09 02:53 pm (UTC)
From: [identity profile] igorsereda.livejournal.com
Чего-то не понимаю, сорри. Просто в существующей схеме заменить Ki на public key и шифрование на дешифрование на стороне сети.

Девайс точно так же защищается от левых запросов как и в Вашем описании - ограничением по количеству операций в единицу времени. К тому же можно сделать ограничение - шифруем не абы что, а несколько десятков байт в определенном формате.

В любом случае, схема будет не менее устойчива к known plaintext attack, чем симметричное шифрование, не так ли?

(no subject)

Date: 2006-11-09 02:56 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
есть подозрение, это не было сделано потому, что асимметричное шифрование подразумевает изначально бОльшие вычислительные затраты, а выигрыш не так существенен, проще защищать базу оператора

(no subject)

Date: 2006-11-09 03:24 pm (UTC)
From: [identity profile] zverik.livejournal.com
+1, почему 160, а не, скажем, 254 или 255?

(no subject)

Date: 2006-11-09 03:28 pm (UTC)
From: [identity profile] zverik.livejournal.com
О, ещё вопрос! В какой-то из древних баек встретил момент, когда бравый рассказчик отдаёт злоумышленникам сгенерированный код карточки пополнения счёта на большое отрицательное число. Такие бывают? Есть ли доступные методы генерации таких кодов, чтобы наказывать разных вредных личностей? :)

(no subject)

Date: 2006-11-09 03:30 pm (UTC)
From: [identity profile] dotcypress.livejournal.com
Во во!!
Я бы еще понял если 127-128 :)
Хотя какой там unicode?! :))

(no subject)

Date: 2006-11-09 03:32 pm (UTC)
From: [identity profile] igorsereda.livejournal.com
С простыми, но очень большими числами :)

(no subject)

Date: 2006-11-09 03:37 pm (UTC)
From: [identity profile] igorsereda.livejournal.com
Их надо еще где-то хранить :)
Вот скажи сходу, если у тебя регистр K бит, и два числа по N*K бит, какой порядок сложности от N будет у алгоритма умножения одного на другое?

(no subject)

Date: 2006-11-09 03:50 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Каке еще затраты?
не скажу в абсолютных цифрах, но точно бОльшие, чем при симметричном алгоритме, согласны ?
И их должна выполнять симка.
вот именно

(no subject)

Date: 2006-11-09 03:57 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
по запросу клиента оператор никак не может такие действия производить. Если может технически, то только по запросу соответсвующих служб/etc. Почему не делает такие запросы наша доблестная милиция, вопрос выходящий за рамки топика :)
Теоретически такая возможность должна быть. На практике - надо еще и реализовать эффективную систему запросов такого рода (и иметь ее технически: база данных всех сот с точным географическим положением, etc.)
Понятно, что определение будет в любом случае неточным, от нескольких километров в городе до десятков в поле.
Page 1 of 4 << [1] [2] [3] [4] >>

Profile

dastapov: (Default)
Dmitry Astapov

May 2022

M T W T F S S
       1
2345678
9101112131415
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags