?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Аутентификация в сети GSM 
9th-Nov-2006 02:50 pm
Заказной пост для netch, aefimov и 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-карту возможно, но очень-очень тяжело.

Литература:
Comments 
9th-Nov-2006 02:26 pm (UTC)
Альтернативный взгляд на проблему:

С другой стороны, это не позволяет ушлым дилерам клепать копии симок и продавать их на черном рынке. Честную симку - честному покупателю, а ее клон - кому-то на радиорынке. А потом честный покупатель платит за двоих. Думаю, возможность поиметь мультисим будет для него слабым утешением :)
9th-Nov-2006 02:48 pm (UTC)
хлопотно и чревато.
10th-Nov-2006 08:08 am (UTC)
Видя ситуацию изнутри, позволю себе не согласиться :)
10th-Nov-2006 05:54 am (UTC)
Я держал в руках карточку на которую были залиты московский МТС, казанский МТС и московский билайн.
Симка выглядела необычно (без маркировок).
Человек говорил, что Мегафон не получалось залить, но это вопрос времени.
(история лета 2005 г. с тех пор что-то могло измениться).
10th-Nov-2006 11:59 pm (UTC)
Так это какой-нибудь Silver card был, небось. Ссылка по теме: http://smartcard.spb.ru/multisim.html
11th-Nov-2006 09:09 am (UTC)
Ммм...
А в чем разница?
11th-Nov-2006 11:42 am (UTC)
Это я к тому, что программируемые смарт-карты очень часто продаются без маркировки, просто белый или цветной пластик без опознавательных знаков. Или опознавательные знаки находятся за пределами той части, которая вырезается в качестве SIM-карты.
11th-Nov-2006 02:45 pm (UTC)
Так почему _adept_ пишет, что симку скопировать нельзя?
берешь и заливаешь на ту самую карточку...
--
Тут камрады говорят, что все несколько сложнее.
На такие карты можно скопировать симку но не любую. Новое поколение карт от этого защищено.
--
Субъективно: "то что один человек построил - другой всегда разобрать сможет" (с) /Х.Ф. "Формула любви"/.
Т.е. там защита от интенсивного чтения, а не чип как Rainbow iKey
11th-Nov-2006 03:02 pm (UTC)
Давайте тогда синхронизировать определения.

Когда я говорю "нельзя", я имею в виду, что не существует способа гарантировано со 100% качеством получить дубликат произвольной SIM-карты за приемлимое время и с приемлимой стоимостью процесса (понятно, что если растянуть удовольствие на 10000 лет или взять электронный микроскоп и срезать слоями, то можно клонировать все, что угодно).

Когда говорят, что карта "защищена от копирования", имеют в виду, во-первых, защиту от интенсивного обращения к A3/A8 (я так понимаю, что именно это имеется в виду под словами "интенсивное чтение", т.к. читать собственно Ki напрямую нельзя). Во-вторых - использование оператором собственного алгоритма A3/A8. Больше никакой иной защиты, препятствующей созданию клонов. у сим-карты нет.

Почитайте тред http://vb.kievsat.com/showthread.php?t=589 , там упоминаются детали и подробности, если интересно.

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

11th-Nov-2006 11:31 am (UTC)
Ну так для того, чтобы "склонировать" карту в MultiSIM, как раз и необходимо вычислить Ki.
11th-Nov-2006 12:18 pm (UTC)
Ну да, там как раз этот процесс довольно подробно описывается, но не указано, почему для некоторых карт Ki подобрать так и не удается. Вероятно, именно из-за несовпадения алгоритма в карте и в подбирающей программе. Хотя про блокирование карты там ничего не написано :)

Вопросы:
1) правильна ли мысль, что оператор для всех карт использует одинаковый алгоритм в качестве A3? Может ли так быть, что оператор хранит у себя в базе не пары (IMSI, Ki), а тройки (IMSI, Ki, разновидность_A3), что позволило бы одновременно использовать карты с разными алгоримами?

2) Пара (SRES, Kc) в процессе аутентификации передается от телефона к базовой станции в шифрованном виде или в открытом? Если в открытом, то это, фактически, позволяет ее перехватить и расшифровать разговор. Вообще, было бы интересно узнать о шифровании данных в эфире. Как служебных, вроде передающихся в процессе регистрации телефона, так и собственно SMS и разговоров.

3) Насколько я понял, в GSM асимметричное шифрование вообще не используется. Это связано только с тем, что во времена разработки стандарта мощности процессоров в смарткартах не хватало для асимметричных протоколов, или были еще какие-то причины?
Сейчас-то уже есть карты с аппаратной реализацией RSA, например.
11th-Nov-2006 12:44 pm (UTC)
1. Абсолютно правильная мысль, именно такие тройки там и хранятся. Для краткости изложения я такие детали опускал.

2. Передается только SRES, Kc считается обоими сторонами отдельно и независимо. В gsmsty.pdf приведены базовые сведения о том, как именно шифруется траффик в эфире.

3. Тут я могу только догадываться, что именно недостаточная мощность была основной преградой, но наверняка - не знаю.
This page was loaded Oct 16th 2019, 4:37 am GMT.