№.
|
Аппаратные
средства
|
Вид
секретной информации
|
1
|
Подвижная
станция (без SIM)
|
А5
|
2
|
Модуль
подлинности абонента (SIM)
|
A3; А8; IMSI;
Ki; TMSI/LAI; Kc
|
3
|
Центр
аутентификации (AUC)
|
A3;
А8; IMSI/Ki
|
4
|
Регистр
местоположения (HLR)
|
Группы
IMSI/RAND/SRES/Kc
|
5
|
Регистр
перемещения (VLR)
|
Группы
IMSI/RAND/SRES/Kc, IMSI/TMSI/LAI/Kc
|
6
|
Центр
коммутации (MSC)
|
А5,
TMSI/IMSI/Kc
|
7
|
Контроллер
базовой станции (BSC)
|
А5,
TMSI/IMSI/Kc
|
Для защиты Ki - кода применяется специальный
криптографический алгоритм COMP. Существует несколько версий этого алгоритма:
128 v.1 (используются большинством операторов сотовой связи); 128 v.2 (в России
используется компанией Мегафон); 128 v.3 (ратифицирован в 2008 года, но пока не
используется на территории России);128 MILENAGE (использование данного
алгоритма планируется при полном переходе на сети 3G, со второго квартала 2010
года компания МТС начала использование данного алгоритма для аутентификации
абонентов в сети).
В настоящее время, необходимо подчеркнуть, что,
несмотря на все эти меры защиты, применение оператором связи алгоритма COMP 128
v.1 не исключает использование краденых или клонированных SIM - карт. В
последующих главах будут рассмотрены основные уязвимости данной системы [18].
2.2 Принцип работы алгоритма COMP 128
По сути, COMP 128 является хэш-функцией,
формирующей 128 битное значение. Разрядность аргумента - 256 бит или 32 байта
(128 бит Ki + 128 бит RAND) [9]. 32 старших бита вычисленного значения берутся
в качестве SRES, а 64 младших бита в качестве сессионного ключа Kc. Тут же
необходимо подчеркнуть, что в качестве значения Kc используются биты с 74 по
127 с выхода COMP 128, за которыми следуют десять нулей [19]. Другими словами,
A5 закрыт лишь 54 битами энтропии. Что очевидно влечет преднамеренное
ослабление ключа, используемого для приватности разговора более чем в 1000 раз.
Пусть X [0..31] - 32-байтный вход алгоритма, где X [0..15] = Ki, а X [16..31] =
RAND. T0 [0..511], T1 [0..255], T2 [0..127], T3 [0..63] и T4 [0..31] -
секретные таблицы подстановки байтов (таблица 5).
Таблица 5 - Таблицы подстановки для итераций
таблица
|
число
элементов
|
размер
одного элемента (бит)
|
Т0
|
512
|
8
|
Т1
|
256
|
7
|
Т2
|
128
|
6
|
Т3
|
64
|
5
|
Т4
|
32
|
4
|
Алгоритм состоит из восьми раундов, в каждом
раунде присутствуют пять итераций. Каждая итерация заключается в поиске по
соответствующей таблице нужного коэффициента (T0 применяется для первой
итерации, T1 - для второй, и т. д.) и подстановке байт (Рис. 4). В конце
каждого раунда, за исключением последнего, происходит перестановка полученных
128 бит результата. После перестановки эти 128 бит подаются на вход следующего
раунда. Ниже приведено описание одного раунда в псевдокоде, а также на рисунке
5 приведена схема алгоритма COMP 128:
Рис. 4 - Схема подстановки байт для каждой из
итераций
// подстановкиi
= 0 to 4 do:j = 0 to 2^i - 1 do:k = 0 to 2^(4-i) - 1 do:
{= k + j*2^(5 - i)= s + 2^(4-i)=
(X[s] + 2X[t]) mod (2^(9 - i))= (2X[s] + X[t]) mod (2^(9 - i))[s]=Ti[x]
X[t]=Ti[y]
}
// образование бит из байт
for j = 0 to 31 do:k = 0 to 7 do:
{ [4*j+k] = the (8-k)th bit of byte
j
}
// перестановка(i
< 8) thenj = 0 to 15 do:k = 0 to 7 do:
{bit = (8 x j + k) x 17 mod 128k of
X[j + 16] = bit[next_bit]
}
Рис. 5 - Схема реализации схема алгоритма COMP
128
На каждом уровне присутствуют шестнадцать
объединяющих операций, каждая из которых преобразует два входных байта в
выходной байт.
Соответственно на каждой итерации выходной байт
зависит от двух входных байт. Два входных байта используются для определения
элемента в таблице подстановки. Этот элемент обновит выходной байт. Таблица
подстановки для N-ой итерации содержит 2(9 - N) элементов размером в (8 - N)
бит (Рис. 6).
Рис. 6 - Схема генерации выходных
байт
Следовательно, каждый из 32 выходных
байт последней итерации раунда имеет лишь 4 значимых бита. Поэтому в конце
итерации происходит выделение из этих 32 байт только значимых битов, что дает в
результате 16 байт (4 бита по 32), все биты которых значимые. Эти 16 байт
записываются в X [16 .. 31], и запускается следующий раунд алгоритма (в X [0 ..
15] значение Ki никак не меняется).
Такую структуру алгоритма
криптоаналитик Дэвид Вагнер назвал butterfly structure [19].
.3 Ограничения и недостатки
алгоритмов аутентификации в сетях GSM
Рассмотрев с теоретических позиций
процесс аутентификации в сетях GSM можно определить ряд его недостатков и
ограничений, которые дают злоумышленнику хорошие возможности для проведения
различного рода атак. Ниже приведены основные недостатки используемых в
процессе аутентификации принятых разработчиками решений:
односторонняя аутентификация.
SIM-карта не имеет возможности аутентифицировать сеть. Злоумышленник может
подменить сеть. Кроме того, возможна атака «человек в середине».
низкая сопротивляемость активным
атакам. GSM обеспечивает только безопасность доступа. Пользовательский трафик и
сигнальная информация между базовыми станциями передаются в открытом виде.
Дешифрование трафика между базовой станцией и мобильной станцией (сотовым
телефоном) (атака на A5) не представляет трудностей для современных ПК.
частичное выполнение аутентификации
алгоритмами А3/А8 (криптоалгоритмом COMP 128). COMP 128 являлся закрытой
криптосистемой, и это было причиной того, что он не подвергался тщательному
(открытому) криптоанализу и многие его слабые места не были обнаружены. После
утечки технической документации, выявилось множество его недостатков. Примерами
таких недостатков можно назвать неустойчивость к коллизиям и возможность
проведения частичной атаки (манипуляции информацией, «утекающей» с SIM во время
операций). сети не являются гибкими в отношении быстрого апгрейда
программно-аппаратного обеспечения, особенно это касается элементов обеспечения
безопасности (введение новых криптосистем). Алгоритм А5/3 и алгоритм
аутентификации и генерации ключей GSM-MILENAGE уже доступны, но не
распространены повсеместно. Их широкое использование планируется при полном
переходе на сети 3G.
3. Возможные сценарии атак на
систему аутентификации в GSM сетях
Как и в любой системе шифрования, в
системе безопасности GSM наибольший интерес представляет её стойкость к
дешифрованию, особенно, если, по крайней мере, один из алгоритмов уже взломан.
Ученые во всем мире единодушны во
мнении, что прослушивание, перехват и расшифровка данных, передаваемых по
радиоканалу в реальном времени на данный момент пока еще невозможны, независимо
от сокращения ключевого пространства. Но, вероятно, существуют другие способы
взлома системы, которые представляют действительную угрозу.
.1 Доступ к сигнальной сети
Алгоритм А5 обладает низкой
криптостойкостью к большинству криптоатак, начиная с атаки методом грубой силы
и заканчивая атаками, построенными на применении табличных методов. В настоящее
время предпринять лобовую атаку несложно, принимая во внимание доступное сейчас
оборудование. Однако алгоритм A5 достаточно стоек для предотвращения перехвата
в эфире и взлома шифрования в реальном времени. Тем не менее, в системе GSM
уязвимым участком является не только радиоканал между мобильной станцией и
базовой станцией, но и другие интерфейсы передачи данных в сети.
Передачи шифруются только между
мобильной станцией и базовой станцией. В сети оператора трафик передается
открытым текстом.
Если злоумышленник может получить
доступ к сигнальной сети оператора, он сможет прослушивать все передачи,
включая сами телефонные звонки, а также RAND, SRES и Kc. Сигнальная сеть,
используемая операторами GSM сети, абсолютно незащищена, если злоумышленник
получает к ней прямой, например, физический доступ. При другом сценарии
злоумышленник может атаковать регистр положения домашних абонентов определенной
сети. Если злоумышленник сможет получить к нему доступ, он сможет извлечь все Ki
абонентов данной сети. Однако регистр положения домашних абонентов обычно более
безопасен, чем вся остальная сеть, таким образом, он является менее очевидным
участком для проникновения.
Получить доступ к сети не
представляет особой трудности. Хотя все базовые станции обычно соединены
кабелем, у некоторых из них связь микроволновая или спутниковая. Получить
доступ к этой связи относительно просто при наличии соответствующего
оборудования. Очевидно, именно эта уязвимость используется при прослушивании мобильного
телефона с помощью имеющегося в продаже оборудования. Однако микроволновая
линия может быть зашифрована, поэтому прослушивать ее немного сложнее. Важно
то, намеривается ли злоумышленник взломать шифрование A5, обеспечивающее защиту
сеанса связи отдельного мобильного телефона, или шифрование между базовой
станцией и контроллером базовых станций, который служит общим узловым пунктом
между всеми базовыми станциями оператора для получения доступа к основной сети.
Также не надо исключать и возможность доступа к кабелю, идущему от базовой
станции. Это может быть реальной угрозой, и атаку можно проводить незаметно в
течение долгого времени, если делать это достаточно аккуратно. Прослушивание
информации, передаваемой между базовой станцией и контроллером базовых станций,
предоставит возможность злоумышленнику или прослушивать звонок, прослушивая
канал, или же он сможет извлечь сеансовый ключ - Kc, для прослушивания канала,
перехвата звонков в эфире и мгновенной его дешифрации. При известном Kc,
шифрование (и расшифрование) в реальном времени не представляет проблемы.
Не стоит исключать и другой подход.
Злоумышленник может выдать себя за ремонтного рабочего, проникнуть в нужное
здание и установить прослушивание. Он также может подкупить инженера, и тот
выдаст ему все Ki всех абонентов данного оператора связи.
3.2 Извлечение ключа из SIM
Вся модель безопасности GSM основана
на секретном ключе Ki. Если этот ключ скомпрометирован, будет скомпрометирована
и вся остальная система защиты. Как только злоумышленник извлечет Ki, он не
только сможет прослушивать звонки абонентов, но и переадресовывать счета за
звонки на счет настоящего владельца Ki, так как он может определить и
легального абонента. В сети GSM для избежания подобной ситуации предусмотрена
ловушка. Если два телефона с одним и тем же Ki включаются одновременно, сеть
GSM замечает это, производит запрос о местонахождении этих телефонов, замечает,
что один и тот же телефон находится в двух местах одновременно, и закрывает
счет, не давая возможность звонить ни злоумышленнику, ни законному абоненту. Но
этого не происходит, если злоумышленник заинтересован только в прослушивании
звонков абонента. В этом случае, злоумышленник может оставаться пассивным и
просто прослушивать звонок, оставаясь невидимым для сети GSM.
Ассоциация Разработчиков Смарт -
карт и исследовательская группа ISAAC обнаружили уязвимость в алгоритме COMP
128, которая позволяла извлекать секретный ключ, Ki, из SIM. Атака
предпринималась на SIM, к которой у них был физический доступ, однако, такая же
атака применима и в эфире.
Атака осуществлялась за счет анализа
большого количества триплетов Rand - SRES - Kc. Доступ к SIM был получен через
считыватель данных с SIM (Smartcard reader), соединенный с персональным
компьютером. С компьютера производилось порядка ста пятидесяти тысяч вызовов к
SIM, на каждый из которых карта генерировала SRES и сеансовый ключ Kc,
основанный на вызове и секретном ключе. Секретный ключ можно было вычесть из
отклика SRES путем дифференциального криптоанализа. Устройство для чтения
информации с SIM - карты, используемое для реализации атаки, производило 6,25
запросов к карте в секунду, что требовало около восьми часов для реализации
атаки. Ее результаты необходимо было тщательно проверить.
В настоящее время в открытой продаже
можно найти целый класс устройств, предназначенных для считывания информации с
интеллектуальных карт. При этом скорость обращения к SIM - карте в таких
устройствах значительно выросла. Также выросла и скорость отклика SIM - карт,
следовательно, в настоящий момент для вычисления IMSI и Ki, при условии
физического доступа к SIM - карте, использованная исследовательской группой
ISAAC [20] атака требовала бы приблизительно от четырех до шести часов.
Эта уязвимость также имеет
социальный сценарий (привлечение инженера). Можно предположить, что
коррумпированный GSM дилер клонирует SIM - карты таким образом и продаст
клонированные карты третьим лицам, которые хотят остаться неизвестными и не
желают покупать подлинные SIM - карты. Клонированная SIM - карта может также
быть продана кому-либо с целью прослушивания впоследствии его разговоров.
Коррумпированный сотрудник также может предоставить злоумышленнику SIM жертвы,
чтобы клонировать SIM и впоследствии прослушивать разговоры владельца карты.
Уязвимость, обнаруженная в алгоритме COMP 128, компрометирует всю модель
безопасности системы GSM и оставляет абонентов без защиты.
Более подробно данный вид атаки
рассмотрен в четвертой главе дипломной работы.
.3 Извлечение ключа из SIM - карты в
эфире
Исследователи SDA ISAAC уверены [19,
20], что такая же атака с клонированием SIM - карты может быть реализована и
использованием удаленного доступа. Практического подтверждения их предположение
не получило, так как оборудование, необходимое для этого, незаконно в США. Атака
в эфире основана на следующем. Требуется, чтобы мобильная станция откликалась
на каждый вызов сети GSM. Если мощность законного сигнала базовой станции
превышена нестандартной базовой станции злоумышленника, то он может
бомбардировать вызовами целевой мобильный аппарат и реконструировать секретный
ключ по откликам. Мобильная станция должна быть доступна злоумышленнику в эфире
все время, необходимое для атаки. Неизвестно, сколько времени продлится атака в
эфире, но можно предположить, что от восьми до тринадцати часов.
Для успешного проведения атаки
необходимо создать условия, при которых мобильный телефон будет производить
попытку аутентификации в сети через ближайшую соту, когда недоступен сигнал
законной базовой станции. Абонент может не заметить атаку, хотя тот факт, что
время работы телефона существенно сократилось, возможно, озадачит его. Атаку
также можно реализовать по частям: вместо того, чтобы атаковать в течение
десяти часов, злоумышленник может воздействовать на телефон ежедневно в течение
двадцати минут, пока жертва идет на работу.
.4 Извлечение ключа из центра
аутентификации
Такая же атака по извлечению Ki из
SIM - карты может быть использована для извлечения Ki из центра аутентификации.
Центр аутентификации не получает ответ на запросы, сделанные сетью GSM и
возвращает действительные тройки для аутентификации мобильному телефону.
Процедура в основном похожа на процедуру получения доступа SIM - карты в
сотовом аппарате. Различие состоит в том, что центр аутентификации гораздо
быстрее обрабатывает запросы, чем SIM - карта. Безопасность центра
аутентификации играет большую роль для предотвращения возможности атаки, однако
теоретическая возможность проведения атаки подобного рода всё же существует.
4 Криптографические атаки на
алгоритм COMP 128
Основной целью криптоанализа
алгоритмов A3 и А8 является вычисление секретного ключа Ki, используемого как
для аутентификации, так и для генерации ключа шифрования Кс. Так как
большинство операторов GSM для аутентификации и генерации ключа шифрования используют
хеш-функцию СОМР 128, задача вычисления секретного ключа Ki сводится к
инвертированию данной хеш-функции.
Как уже упоминалось выше, COMP 128
является закрытой криптосистемой. Соответственно, в случае, если бы его
реализация стала известна, вопрос компрометации всей системы (с учетом большого
количества заинтересованных в этом лиц) становился бы делом времени. Так и
произошло в 1998 году, когда некоторые документы, касающиеся технических
решений, реализованных в COMP 128 попали в сеть Интернет. Несмотря на неполное
и частично ошибочное описание, было установлено, какие именно криптографические
методы используются в GSM. На основании данных документов Дэвид Вагнер, Айан
Голдберг и Марк Брицено менее чем за два дня взломали алгоритм COMP 128, так
как его ключ оказался слишком коротким.
В настоящий момент практически все
атаки, направленные на получение ключей Ki строятся именно на базе атаки WGB.
.1 Атака WGB
В 1998 году Вагнер, Голдберг и
Брицено опубликовали метод атаки, с помощью которого секретный ключ Ki может
быть вычислен путем отправки на SIM - карту специально подобранных определенных
значений RAND, которые позволят получить часть информации о секретном ключе Кi.
Алгоритм криптоанализа основан на
том, что после второго раунда работы хеш-функции выходные байты i, i + 8, i +
16, i + 24 зависят только от соответствующих им входных байт i, i + 8, i + 16,
i + 24. Наглядно данная уязвимость показана на рисунке 7 [21].
Рис. 7 - Уязвимый участок алгоритма
COMP 128
Так как сжатие информации
производится после последнего раунда работы функции, во всех предыдущих раундах
размер выходной последовательности совпадает с размером входной. Байты i, i + 8
представляют секретный ключ, а байты i + 16, i + 18, - открытое число RAND.
Криптоанализ основывается на поиске всех возможных коллизий в работе
хеш-функции при переборе только двух входных байт для каждой пары байт-ключа.
Коллизия в работе хеш-функции происходит, когда различные входные значения
функции приводят к одинаковому выходному значению. Эффективность алгоритма
обеспечивается тем, что для поиска коллизии необходимо перебрать небольшое
число вариантов, а именно два байта для каждой пары байт ключа: 28*28= 216. Для
сравнения сложность полного перебора составляет 2128.
.2 Улучшения для WGB атаки
Оригинальная версия WGB атаки
требовала приблизительно 150000 запросов для нахождения ключа. В отчете о
проведение этой атаки было указано, что «разработано несколько оптимизаций для
уменьшения количества запросов», но что это за оптимизации не было сказано ни
слова [21].
Структура первых двух уровней COMP
128 не является равномерно распределяемой случайной функцией. Некоторые запросы
(RANDi , RANDi+8) являются более продуктивными чем другие так как потенциально
они могут вызвать коллизию в нескольких различных парах (Ki , Ki+8). Поэтому
вполне логично использовать такие запросы в первую очередь. Это может быть
реализовано путем полного перебора всех (Ki , Ki+8) и для каждого из таких
значений полного перебора всех (RANDi , RANDi+8). Таким образом, для каждого
(Ki , Ki+8) мы найдем все пары (RANDi , RANDi+8) приводящие к коллизиям. После
этого все подобные (RANDi , RANDi+8) могут быть упорядочены в новом, улучшенном
расписании запросов. Таким образом, (RANDi , RANDi+8), показавшие себя наиболее
продуктивными будут использоваться в первую очередь [22].
Дальнейшие улучшения могут быть
достигнуты путем следования расписанию запросов параллельно для всех восьми (Ki
, Ki+8). Когда же находятся первые 7 значений (Ki , Ki+8) злоумышленник может
прекратить посылку запросов к SIM - карте, так как последнее значение (Ki ,
Ki+8) может быть вычислено путем обычной оффлайн атаки методом грубой силы.
Данные по необходимому количеству запросов для успешного завершения атаки
данным методом можно отразить на графике, представленном на рисунке 8.
Рис.8 - Зависимость успеха
улучшенной WGB атаки от количества запросов
Используя эту технику, среднее число
запросов необходимых для компрометации ключа составляет примерно 60000.
.3 Слабости WGB атаки
Слабости WGB атаки становятся
очевидны при проведении полного поиска «успешных» запросов (RANDi , RANDi+8).
Как уже упоминалось выше, структура первых двух уровней COMP 128 не является
равномерно распределенной случайной функцией. Соответственно, так же как
существуют наиболее продуктивные запросы (RANDi , RANDi+8) существуют и
значения (Ki , Ki+8), которые наиболее восприимчивы к атаке. Эти восприимчивые
значения (Ki , Ki+8) имеют несколько пар (RANDi , RANDi+8) которые вызывают
коллизию.
Другие значения (Ki , Ki+8) менее
восприимчивы к атаке (т.е более стойкие), а некоторые вообще не имеют пар
(RANDi , RANDi+8), вызывающих коллизию.
Вопреки утверждению, выдвинутому
Вагнером, Голдбергом и Брицено о том, что «парадокс дней рождений гарантирует
довольно-таки быстрое возникновение коллизии» такой гарантии на самом деле не
существует. Всё, что предлагается - высокая вероятность при условии, что хэш
функция является действительно случайной. Основываясь на этом, для каждого значения
(Ki , Ki+8) вероятность не возникновения коллизии после всех 216 запросов
(RANDi , RANDi+8) составляет приблизительно 3,35 × 10-4. Так как
существует 216 возможных значений (Ki , Ki+8), можно ожидать, что после
проведения всех запросов к ним, останется примерно двадцать два значения, на
которых коллизия не возникнет.
На практике полный перебор
показывает, что таких значений (Ki , Ki+8), которые «свободны» от коллизий, а
соответственно не восприимчивы к WGB атаке существует 769. В приложении А
приведены все подобные (Ki , Ki+8).
Обычная WGB атака может быть
проведена лишь на ключ, в котором отсутствуют «свободные» от коллизий
компоненты (Ki , Ki+8). Улучшенная WGB атака, рассмотренная в предыдущем
разделе, сможет работать с ключом, в котором присутствует один компонент (Ki ,
Ki+8) свободный от коллизий, так как последний один из компонентов (Ki , Ki+8)
находится методом грубой силы в оффлайн режиме.
Для ключей, которые включают два
«свободных» от коллизий компонента можно расширить атаку. В этом случае, если
после перебора всех (RANDi , RANDi+8) из списка остались не вычисленными два
компонента ключа (Ki , Ki+8), можно провести на них атаку по методу грубой
силы, которая потребует 769 × 769=591,361 пробных хэшей (в случае, если
бы нам не были известны 769 «свободных» от коллизий элементов (Ki , Ki+8) это
число равнялось бы 232). Для большего числа «сильных » (Ki , Ki+8) атака
становится практически бесполезной, но на практике такие ключи встречаются
крайне редко (в выборке из десяти тысяч случайно взятых ключей менее одного
ключа будет иметь более двух «сильных» (Ki , Ki+8)).
Таким образом, для того чтобы
сгенерировать «сильный ключ» полностью невосприимчивый к WGB атаке необходимо
выбирать все компоненты (Ki , Ki+8) из приведенного в приложении А списка «сильных»
компонентов. В псевдокоде алгоритм для генерации таких ключей приведен ниже.i
in [0, 1, 2, 3, 4, 5, 6, 7] x = случайно выбранные значения из списка в
приложении А Ki = первые два шестнадцатеричных разряда x Ki+8 = последние два
шестнадцатеричных разряда x x
Так как известно, что существует 769
«сильных» компонентов (Ki , Ki+8), то «сильные» ключи, сгенерированные
приведенным выше методом, будут иметь эффективную длину 8 × log2 769
= 76,7 бит.
Эта длина является приемлемой и превышает длину сессионного ключа,
используемого для шифрования речи в алгоритме A5.
.4 Атака на Ki, составленные из
«сильных» элементов
Данная атака подразумевает, что
злоумышленнику известно о том, что секретный ключ сформирован только из сильных
элементов (Ki , Ki+8). Если это так, то атака может быть проведена, но сперва
необходимо отсеять все возможные слабые ключи. Атака строиться на ожидании
коллизии на третьем уровне. Необходимо найти четыре компонента (Ki , Ki+4,
Ki+8, Ki+12). Каждый из них строится из двух компонентов выбранных из списка
769 «сильных» компонентов (Ki , Ki+8).Наглядно данная уязвимость показана на
рисунке 9.
Рис. 9 - Уязвимый участок алгоритма
COMP 128 при условии, что Ki составлены из «сильных» компонентов (Ki , Ki+8)
Для того, чтобы найти каждый
компонент (Ki , Ki+4, Ki+8, Ki+12) необходимо отправить запрос (RANDi ,
RANDi+4, RANDi+8, RANDi+12) по методу сходному с представленным в WGB атаке.
Остальные байты RAND должны оставаться константой. Когда пара бит запроса (RANDi
, RANDi+4, RANDi+8, RANDi+12), вызывающего коллизию, найдена, производится
поиск по 769 ×
769 возможным
компонентам (Ki , Ki+4, Ki+8, Ki+12) до тех пор, пока не найдется компонент
вызывающий коллизию для той же пары запросов.
В этом случае построение оптимизированных
таблиц атаки невозможно. Также невозможно и определить, существуют ли
«свободные» от коллизий компоненты (Ki , Ki+4, Ki+8, Ki+12).
В теории, если бы COMP 128 был на
самом деле случайной функцией, то, чтобы ожидать коллизию в сорока восьми битном
выходе второго уровня, необходимо было бы провести 2 × 107 запросов.
Экспериментально Стюарт Рэй вычислил, что для вычисления одного компонента (Ki
, Ki+4, Ki+8, Ki+12) необходимо провести порядка 127000 запросов. Также как и в
модифицированной WGB атаке запросы к разным компонентам можно производить
параллельно, а при нахождении трех из них четвертый вычислять методом грубой
силы.
При симулировании вскрытия 5290
сильных ключей Стюарт Рэй [23] пришел к выводу, что среднее количество
обращений необходимых для вскрытия «сильного» ключа составляет 525000 (Рис.
10).
Рис.10 - Зависимость успеха атаки на
Ki, составленные из «сильных» элементов от количества запросов
5. Практическая эффективность
применяемых в настоящий момент алгоритмов аутентификации в стандарте GSM
Служба аутентификации подлинности
абонента является сердцем системы безопасности стандарта GSM. Она используется
для того, чтобы заданная сеть могла определить подлинность пользователя и, в
случае его правильной идентификации, сгенерировать и предоставить ключи
шифрования, необходимые для обеспечения конфиденциальности основных сервисов
сети. Данная служба реализована во всех сетях и устройствах мобильной связи.
Однако, частоту запросов подлинности абонента, выбор конкретной реализации
алгоритма COMP 128, а также вариант исполнения SIM - карты выбирает сам
оператор.
Одной из задач дипломной работы было
выяснение вероятности потери секретных ключей, в случае если SIM - карта
попадет к злоумышленнику, а также время, необходимое ему для их извлечения.
Для выполнения поставленной цели в
ходе выполнения дипломной работы был проведен ряд экспериментов по вычислению
секретных ключей Ki и IMSI с SIM - карт различных операторов региона.
На первом этапе эксперимента была
произведена проверка SIM - карт четырех основных операторов региона на предмет
используемой в них ключевой хэш-функции. Данный этап был необходим, так как в
настоящий момент уязвимости алгоритма COMP 128, описанные в четвертой главе
дипломной работы, применимы только к первой его версии. По результатам первого
этапа было выяснено, что три из четырех операторов региона используют заведомо
уязвимый алгоритм COMP 128 v1. Этими операторами стали Смартс, МТС и Билайн.
Единственным оператором региона, использующим более стойкий алгоритм COMP 128
v2, оказался Мегафон-Поволжье. Используемый оператором алгоритм аутентификации
не позволяет осуществить успешную WGB криптоатаку. Соответственно дальнейшая
часть эксперимента проводилась только с SIM - картами трех вышеуказанных
операторов.
Следующим этапом эксперимента стал
выбор программ для оптимального, по соотношению время-эффективность, вычисления
секретных ключей Ki и IMSI. На этой стадии были изучены следующие программные
пакеты:1.9SimScanScan
По результатам тестов были выбраны
две программы, справившиеся с задачей за наименьшее число шагов, а
соответственно и с наилучшими временными показателями. Ими стали WoronScan и
SimScan. Еще одним критерием выбора программы WoronScan была возможность
задания стартовой пары поиска, что в дальнейшем способствовало получению более
четкой картины.
Третьим этапом эксперимента явилось
проведение непосредственных тестов над SIM - картами операторов региона с целью
сравнения временных показателей необходимых для компрометации находящихся на
них секретных ключей Ki и IMSI. Все тесты проводились со следующими
параметрами:
стартовая пара поиска - нулевая
(байты 0 и 8);
частота SIM - ридера - 3,57 Мгц;
скорость считывания - 9600 Бит в
секунду.
По результатам тестов была
составлена сводная таблица результатов для операторов региона (таблица 6).
Таблица 6 - Сравнение основных
показателей необходимых для компрометации секретных ключей Ki и IMSI хранящихся
на SIM - картах различных операторов региона
Оператор
|
SIMScan
|
WoronScan
|
|
Время
(мин)
|
Кол-во
Итераций
|
Время
(мин)
|
Кол-во
Итераций
|
МТС
|
27
|
13978
|
16
|
8638
|
Билайн
|
50
|
13142
|
36
|
8537
|
Смартс
|
165
|
20466
|
231
|
27521
|
Исходя из полученных результатов, можно сделать
вывод о том, что скорость работы с SIM - картой зависит не только от скорости
работы SIM - ридера, но и от технических особенностей самой SIM - карты, более
того, именно они играют определяющую роль в случае, когда на вычисление
секретных кодов Ki и IMSI отводится ограниченное время;
Следующим этапом эксперимента было решено
провести аналогичный тест, увеличив частоту и скорость SIM - ридера до 7,14 Мгц
и 19200 бит в секунду соответственно. Однако при попытке реализации выяснилось,
что заданную частоту и скорость поддерживают лишь SIM - карты Билайн.
Результаты для них приведены в таблице 7.
Таблица 7 - Результаты полученные при
сканировании SIM - карт на частоте 7,14 Мгц
Оператор
|
SIMScan
|
WoronScan
|
|
Время
(мин)
|
Кол-во
Итераций
|
Время
(мин)
|
Кол-во
Итераций
|
Билайн
|
28
|
13142
|
20
|
8537
|
Заключительной стадией эксперимента стало
эмулирование SIM - карт всех производителей (секретные ключи Ki и IMSI были
получены на предыдущих стадиях) и проведение аналогичных тестов, меняя
стартовую пару поиска параллельно вычисляя примерное затраченное время для
случая, если бы секретные коды вычислялись не на эмуляторе, а с реальной SIM -
карты.
Целями последнего теста ставились:
проверить предположение о том, что существует
прямая зависимость между стартовой парой поиска и количеством итераций
необходимых для успешной компрометации ключа;
виртуально увеличить количество использованных в
эксперименте SIM - карт, так как после нахождения первой пары (Ki ; Ki+8)
остальные подобные пары находятся менее чем за две тысячи пятьсот итераций;
получить статистические данные о необходимом
количестве времени для клонирования SIM - карт различных операторов, а также о
вероятности успеха его успеха;
на основании среднего количества итераций,
необходимого для компрометации ключей сделать вывод об использовании
операторами классического алгоритма COMP 128 или же его модификаций.
После проведения заключительного этапа
эксперимента были получены результаты приведенные в таблице 8, а также
составлены диаграммы зависимости времени и количества итераций от выбранной
стартовой пары. Данные диаграммы приведены для Билайна на рисунках 11 и 12, для
Смартса на рисунках 13 и. 14, для МТС на рисунках 15 и 16, усредненные же и
крайние значения для всех операторов приведены на рисунках 17 и 18.
Таблица 8 - Сводная таблица результатов,
полученных при извлечении секретных ключей с SIM - карт различных операторов
оператор
|
0
пара
|
1
пара
|
2
пара
|
3
пара
|
4
пара
|
5
пара
|
6
пара
|
7
пара
|
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Кол-во
итераций
|
t
мин
|
Билайн
1
|
21965
|
51
|
13012
|
30
|
20645
|
48
|
12753
|
30
|
14828
|
35
|
11933
|
28
|
6366
|
15
|
3769
|
9
|
Билайн
2
|
8537
|
20
|
6094
|
14
|
2055
|
5
|
6253
|
15
|
5244
|
12
|
26253
|
61
|
33099
|
78
|
12326
|
29
|
Билайн
3
|
7964
|
19
|
14766
|
35
|
3540
|
8
|
24491
|
57
|
9682
|
23
|
7438
|
17
|
17743
|
42
|
13263
|
31
|
Билайн
4
|
13634
|
32
|
18487
|
43
|
6635
|
16
|
14297
|
33
|
4506
|
11
|
2680
|
6
|
21749
|
51
|
8452
|
20
|
Смартс
1
|
27521
|
231
|
30287
|
255
|
23365
|
196
|
2985
|
25
|
5586
|
47
|
16198
|
136
|
4100
|
34
|
9617
|
81
|
Смартс
2
|
19583
|
165
|
14176
|
119
|
3746
|
31
|
21194
|
178
|
7848
|
66
|
2433
|
20
|
13973
|
117
|
31469
|
264
|
Смартс
3
|
5373
|
45
|
1861
|
16
|
17394
|
146
|
9628
|
81
|
27534
|
8563
|
72
|
14883
|
125
|
10214
|
86
|
МТС
1
|
8638
|
16
|
21482
|
40
|
34966
|
65
|
28042
|
52
|
6600
|
12
|
3608
|
7
|
3922
|
7
|
26903
|
50
|
МТС
2
|
6758
|
13
|
30439
|
56
|
6539
|
12
|
24316
|
45
|
24711
|
46
|
29329
|
54
|
24971
|
46
|
18402
|
34
|
МТС
3
|
11238
|
21
|
5482
|
10
|
9954
|
18
|
17198
|
32
|
4743
|
9
|
12645
|
23
|
7471
|
14
|
2566
|
5
|
МТС
4
|
4674
|
9
|
24382
|
45
|
13260
|
25
|
2745
|
5
|
8431
|
16
|
7712
|
14
|
16347
|
30
|
9534
|
18
|
Рис. 11 - Результаты проведенных тестов
(итерации) для SIM - карт Билайн
Рис. 12 - Результаты проведенных тестов (время)
для SIM - карт Билайн
Рис. 13 - Результаты проведенных тестов
(итерации) для SIM - карт Смартс
Рис. 14 - Результаты проведенных тестов (время)
для SIM - карт Смартс
Рис. 15 - Результаты проведенных тестов
(итерации) для SIM - карт МТС
Рис. 16 - Результаты проведенных тестов (время)
для SIM - карт МТС
Рис. 17 - Диаграмма усредненного, максимального
и минимального числа итераций, необходимых для компрометации ключей
Рис. 18 - Диаграмма усредненного, максимального
и минимального времени, необходимого для компрометации ключей
Рассмотрев полученные результаты можно сделать
ряд выводов:
стартовая пара поиска является определяющей для
итогового времени поиска, но, исходя из результатов проведенных испытаний, можно
с высокой долей вероятности утверждать, что найти заведомо уязвимую пару до
начала извлечения ключа не представляется возможным;
исходя из среднего количества итераций,
необходимых для нахождения ключа Ki, на смарт - картах различных операторов,
можно уверенно сделать вывод о том, что ими используется одна и та же
модификация алгоритма COMP 128;
на основе файлов протокола работы программы
WoronScan и результатов эксперимента, можно оценить вероятность вычисления
секретных ключей Ki как крайне высокую так как на протяжении всех тестов была
найдена лишь одна SIM - карта в Ki которой входил элемент не дающий коллизий;
на основании того, что SIM - карты подвергались
процедуре сканирования более одного раза (SIM - карты были приобретены в разное
время и многие из них до эксперимента использовались более трех лет) можно
предположить, что максимально допустимое число запросов к SIM - карте завышено
более чем в шесть раз.
ЗАКЛЮЧЕНИЕ
В дипломной работе были рассмотрены принципы
аутентификации абонентов сети сотовой связи GSM, проанализированы
использующиеся в ней криптоалгоритмы, с точки зрения их стойкости к семейству
WGB криптоатак. Помимо этого был проведен ряд практических экспериментов по
компрометации секретных ключей, необходимых для идентификации легального
пользователя.
После анализа оригинального алгоритма COMP 128,
отечественной и зарубежной научной литературы по данной тематике, можно
констатировать, что рассматриваемый криптоалгоритм имеет множество уязвимостей.
Среди них особо можно выделить: относительно малое время, требуемое для подбора
ключа; крайне высокая вероятность успешного проведения атаки по его извлечению
и наличие в продаже широкого спектра программно-аппаратных средств, требуемых
для ее осуществления, что в свою очередь еще более повышает вероятность, что
подобная атака будет кем-либо реализована на практике.
Одной из основных причин такого, столь
плачевного для COMP 128, положения дел можно назвать изначальную ставку
разработчиков на «закрытость» алгоритмов шифрования, что в корне противоречит
основному правилу криптографии - знание алгоритма шифрования не должно снижать
криптостойскость шифра [24].
В качестве остальных причин можно упомянуть и
умышленное «ослабление» самих алгоритмов шифрования, в связи с условиями в
которых они разрабатывались и использование относительно коротких ключей
шифрования.
В результате проведенных экспериментов были
получены статистические данные о времени, необходимом злоумышленнику для
проведения успешной атаки на модуль подлинности абонента, при условии, что к
SIM-карте имеется физический доступ. Также было определено, что выбор стартовой
пары поиска (Ki , Ki+8) является определяющим для минимизации временных затрат
на проведение успешной криптоатаки.
Предположение о существовании заведомо слабых с
точки зрения WGB криптоатаки набора (Ki , Ki+8) не получило подтверждения.
Найти заведомо уязвимую пару до начала извлечения ключа (без специальных
средств) в «домашних» условиях в рамках использованного инструментария не
представляется возможным.
Подводя итог проведенному исследованию можно
констатировать, что в настоящий момент уровень защиты систем аутентификации
пользователей сотовых сетей GSM в России находится на крайне низком уровне. Как
видно из проведенных практических экспериментов, в настоящий момент защиту от
клонирования SIM - карт в полной мере может гарантировать лишь Мегафон, так как
он является единственным оператором, который своевременно (начиная с 2002 года)
начал активно использовать для защиты своих абонентов более стойкие для атак
алгоритмы аутентификации. По всей видимости, с проблемами компрометации
секретного ключа, вплотную столкнулись и в компании МТС, которая без лишнего
шума начала с весны этого года переходить на использование более стойких
алгоритмов шифрования для аутентификации своих абонентов. Тем не менее, можно
особо отметить, что для перевода пользователей на SIM - карты нового образца
основной массы пользователей сети потребуется по меньшей мере два-три года,
поэтому данная мера не даст быстрого положительного результата.
Для операторов, использующих в настоящий момент,
алгоритм COMP 128 v.1, в качестве решения проблемы несанкционированного
копирования модуля подлинности абонента рекомендуется применить один из
следующих сценариев:
переход на более поздние модификации алгоритма COMP
128 (крайне желательно на COMP 128 v.3 или MILENAGE);
использование для аутентификации абонентов в
сети ключей Ki составленных лишь из элементов приведенных в приложении А,
которые не будут создавать коллизий на втором раунде, а соответственно сделают проведение
WGB и подобных ей атак невозможным;
уменьшение допустимого числа обращений к SIM -
карте до отметки в восемь - десять тысяч, что крайне существенно уменьшит
вероятность успеха атаки и при этом обеспечит срок службы SIM - карты не менее
трех лет.
СПИСОК СОКРАЩЕННЫХ ОБОЗНАЧЕНИЙ
МТС - мобильные телекоммуникационные системы
НАТО - международная Организация
Североатлантического договора
ОРД - оперативно-розыскная деятельность
РФ - Российская Федерация
США - Соединенные Штаты Америки
ФСБ - Федеральная Служба Безопасности- Advanced
Mobile Phone Service - усовершенствованная подвижная телефонная служба
AUC - Authentication Centre - центр
аутентификации-
Base Station - базовая
станция-
Base Station Controller - контроллер
базовой
станции-
Conference of European Post and Telecommunications - Европейская
конференция
администраций
почт
и
связи-
Extended Total Access Communication System - расширенная
коммуникационная
система
с
полным
доступом-
Global System for Mobile Communications - глобальная
система
мобильных
коммуникаций
HLR - Home Location Register - регистр положения
домашних абонентов- International Mobile Subscriber Identity - международный
мобильный идентификатор абонента- Internet Security, Applications,
Authentication and Cryptography - Интернет Безопасность, Приложения,
Аутентификация и Криптография- Location Area - зона расположения- Location Area
Indentifier - идентификационный номер зоны
MCC - Mobile Country Counter - мобильный
код
страны-
Mobile Network Counter - мобильный
код
сети-
Memorandum of Understanding - меморандум
о
понимании-
Mobile Switching Centre - мобильный
центр
коммутации-
Nordic Mobile Telephone - скандинавская
мобильная
телефония
PIN - Personal Identity Number - персональный
идентификационный номер- Random - случайное число- Radio Telephone Mobile
System - радиотелефонная мобильная система
SDA - Smartcard Developer
Association - ассоциация разработчиков
смарт
- карт-
Subscriber Identification Module - идентификационный
модуль
абонента-
Signed Result - подписанный
результат-
Total Access Communications System - коммуникационная
система
с
полным
доступом-
Temporary Mobile Subscriber Identity - временный
мобильный
идентификатор
абонента-
Visitor Location Register - гостевой
реестр
местоположения-
Wagner, Goldberg, Briceno - Вагнер
Голдберг,
Брицено
СПИСОК ИСПОЛЬЗУЕМЫХ
ИСТОЧНИКОВ
1
Farley, T. Mobile telephone history [Текст]
/ T. Farley // Telektronikk. - 2005. -120 с.
Hillebrand,
F. GSM and UMTS [Текст]
/ F. Hillebrand. - New-York: John Wiley and Sons, 2001. - 630 с.
3 Kessler, V. Isdn: Concepts,
Facilities, and Services [Текст] / G. Kessler, P. Southwick.
- London: McGraw-Hill Companies, 1998. - 784 с.<http://www.amazon.com/exec/obidos/ASIN/007034437X/ralphbeckersisdnA/>
South Dakota State Library [Электронный ресурс]
/ Memorandum of Understanding;. - Режим доступа:
http://library.sd.gov/, свободный.
- Яз.
англ.
Barkan, E.P. Cryptanalysis of
Ciphers and Protocols [Текст]
/ E.P. Barkan. -Haifa: Israel Institute of Technology, 2006. - 209 с.
6
Попов, В.И. Основы сотовой связи стандарта GSM [Текст] / В.И. Попов. - М.:
Эко-Трендз, 2005. - 296 с.
Оков,
И.Н. Криптографические системы защиты информации [Текст] / И.Н. Оков. - СПб.:
ВУС, 2001. - 243 с.
8 Mehrotra, A. GSM System
Engineering [Текст]
/ A. Mehrotra. - New-York: Artech House, 1997. - 472 с.
GSM System Security Study [Текст]
- Введён
1988-06-10 - Berks: Rascal Research LTD, 1988. - 78 с.
Vander, A. Security Aspects and the
Implementation in the GSM-System [Текст] / A.
Vander. - Hagen: FRG, 1988. - 69 с.
GSM 02.09 Security aspects [Текст]
- Введён
1994-09-12 - Sophia-Antipolis: European Telecommunications Standards Institute,
1994. - 12 с.
GSM 03.20 Security Related Network
Functions [Текст]
- Введён
1994-09-12 - Sophia-Antipolis: European Telecommunications Standards Institute,
1994. - 52 с.
GSM 03.21 Subscriber Identity Module
Application Programming Interface [Текст] - Введён
1994-09-12 - Sophia-Antipolis: European Telecommunications Standards Institute,
1994. -37 с.
GSM 02.17 Subscriber Identity
Modules ± Functional Characteristics [Текст] - Введ.
1994-09-12 - Sophia-Antipolis: European Telecommunications Standards Institute,
1994. -15 с.
GSM Security [Электронный ресурс]
/ Subscriber Identity Module (SIM); - Режим доступа:
http://www.gsm-security.net/faq/subscriber-identity-module-sim.shtml, свободный.
- Яз.
англ.
GSM Security [Электронный ресурс]
/ What are the PIN and PUK?; - Режим доступа:
http://www.gsm-security.net/faq/gsm-pin-pin2-puk-puk-personal-identity-number-personal-unblocking-key.shtml,
свободный.
- Яз.
англ.
Heine, G. GSM Networks: Protocols,
Terminology and Implementation [Текст] / G.
Heine. -
New-York: Artech House, 1998. - 416 с.
Летвак,
А. Легионеры телефонного пиратства [Текст] / А. Летвак // Спецвыпуск Хакер. -
2006. -№7. - С. 106.
19 Smartcard Developer Association [Электронный ресурс]
/ An implementation of the GSM A3A8 algorithm / M. Briceno, I. Goldberg, D.
Wagner; - Режим доступа:
http://www.scard.org/gsm/a3a8.txt, свободный. - Яз.
англ.
ISAAC Group Home Page [Электронный ресурс]
/ Internet Security, Applications, Authentication and Cryptography; - Режим доступа:
http://www.isaac.cs.berkeley.edu/, свободный. - Яз.
англ.
Smartcard Developer Association [Электронный ресурс]
/ GSM Cloning/ M. Briceno, I. Goldberg, D. Wagner; - Режим доступа:
http://www.scard.org/gsm/gsm-faq.html, свободный. - Яз.
англ.
Handshuh. H. Reducing the Collision
Probability of Alleged Comp128 [Текст] / H.
Handshuh, P. Paillier // Smart Card Research and Applications. - 2000. -№ 128.
- C. 327.
Wray, S. COMP128: A Birthday
Surprise [Текст]
/ S. Wray // Journal of Information Technology Education. - 2003. - №6. - С.
215.
Баричев,
С.Г. Основы современной криптографии [Текст] / С.Г. Баричев, В.В. Гончаров,
Р.Е. Серов. - М.: Горячая Линия - Телеком, 2002. - 175 с.
ПРИЛОЖЕНИЕ А
Список свободных от коллизий пар (Ki , Ki+8)
000b 003f 005b 006d 0119 01a8 01f8
0293 031e 035a 036b 03ba 03cf 03fc 0452 04ca 0532 05a9 05e0 063b 0657 085c 089f
09ce 0a88 0aa6 0b00 0b7f 0bd2 0c42 0ce8 0d18 0d9d 0e14 0ea4 0ea9 0ed9 0f4a 0f4d
0f6f 0fa5 0fd0 0fe6 1011 1056 10ad 10cf 1110 116b 11c4 11da 11db 1228 123d 12ba
12cb 12e8 140e 14bf 1588 1596 15d6 15e0 1638 1643 1728 173a 180d 1871 18c3 1901
192f 1935 1965 1975 1978 19cd 1a5c 1abb 1b20 1ba4 1bb4 1bc0 1c68 1cd7 1d37 1d5f
1d87 1e03 1e1e 1e20 1f44 1f54 1fca 201b 201e 2057 2069 2079 207b 2137 21c8 2268
22dc 23b5 23cf 2432 2581 25a5 2685 2691 273e 276e 2777 2793 2812 2817 2859 28ac
2a61 2c39 2cd2 2cd7 2d6d 2e7b 2e93 2ee1 2f19 3074 3088 30ba 30f8 31bb 31d4 3205
3224 32e4 3334 3374 3433 34fa 3519 354e 3650 3668 36ae 371d 3721 3751 378c 379e
3816 38f9 392c 3977 39d9 39fa 3a17 3a80 3abe 3b06 3be4 3be7 3beb 3c78 3cd0 3cd3
3d12 3d9d 3df6 3e27 3e5c 3e5d 3f00 3fc9 3fcb 406d 40ea 414e 4184 41a3 41a5 420c
425f 42ba 42df 4316 43e9 441f 4489 44fe 45d1 4651 46a0 48d9 494a 49a7 49ab 49b1
49cb 49f9 4a0f 4a49 4a6f 4a80 4ab3 4ac5 4b4e 4b5b 4b93 4bc7 4cba 4ccc 4d0f 4d4e
4d93 4df4 4e35 4e41 4e4b 4e4d 4e76 4e7d 4e91 4ef6 5036 50c4 5137 5146 5204 5264
528e 53d7 541f 5489 548d 54e5 556b 55be 5610 5665 56ba 56d8 5706 5720 5771 5889
58b7 5928 5983 5a03 5acb 5af1 5b00 5b4b 5bb7 5c08 5c1a 5c3e 5ca6 5cc8 5ccc 5ce1
5ce6 5d3e 5dc4 5e86 5eec 5f1d 5f42 608e 60f9 612a 61da 61f1 61f5 627d 6374 638a
63a0 63f0 6452 64a6 6519 6556 6676 6692 66d0 67a8 67e9 681c 6822 6836 68b4 6920
697b 6988 6a73 6a7c 6a8c 6aa7 6b03 6b11 6b55 6b6e 6bad 6be2 6c7b 6c84 6d00 6d2d
6d40 6df9 6e27 6e6b 6e83 6eb1 6ed2 6f0f 6f4a 6fb0 6fcb 7070 7072 708c 70fc 7118
7157 7270 7291 729a 72ad 736a 73de 73e0 7430 7433 7463 74b3 7519 764e 7666 7679
768f 7727 7739 7780 778a 77b5 77f5 7819 783c 78d8 7920 7976 7983 79a1 7a81 7b20
7b2e 7b69 7b6c 7b9d 7bcc 7bd2 7bf6 7c6a 7cf5 7cfd 7d4e 7d62 7d8d 7ef6 7efe 7f0b
803a 804a 8077 80c6 8125 817a 8181 82a4 82b1 8359 836e 8379 8393 8441 846c 84dd
8526 85d4 865e 86a4 86ab 871d 878d 87bd 87f4 880a 8815 8830 8869 88d0 8944 8954
8958 899b 8a63 8a77 8ac1 8ba0 8baf 8c37 8c6a 8c70 8d54 8d7d 8d87 8e52 8e60 8e97
8ed6 8ede 8f76 90af 90dd 9126 914e 9172 91f2 9266 929e 92b7 9302 9327 932e 934b
934d 9383 93df 94ab 94d9 95b5 95f0 9615 96de 96df 978e 98a0 98df 9a72 9b89 9bff
9cf1 9d0d 9d3d 9d7b 9e37 9e92 9ebc 9f08 9fac 9fbd 9fd4 9fee 9ffc a046 a063 a08b
a098 a0b9 a0e7 a179 a1a6 a1e8 a2a2 a341 a3b1 a40e a41b a482 a486 a4c7 a4ce a4d2
a50f a525 a541 a5ab a5e9 a60a a65c a664 a6a1 a749 a76a a7e7 a801 a867 a905 a90e
a9ed aaec aaf6 ab49 ab86 ab94 aba5 abff ac28 ac9f acb0 acc7 ad10 ad6b ad72 ae36
af8b af90 b06f b0ac b149 b16e b182 b1a3 b1d1 b1e4 b1e8 b34a b374 b3e2 b41b b468
b4e0 b523 b577 b595 b5f5 b5f7 b6d3 b758 b75b b792 b7f0 b8e5 b8ec b9a0 ba03 ba12
ba30 ba42 ba4c ba56 bb1a bb31 bbec bbf6 bc9e bcde bcf3 bcfe bd87 bd9f bdca bdd9
be3a be55 bed9 bf14 bfd4 c01b c0fc c18a c1eb c318 c3f6 c411 c450 c45d c4d7 c54a
c5c5 c680 c6d7 c74b c7a4 c7ac c7f1 c821 c85c c8cd c93f c9ca c9f5 ca04 ca1f cabd
cac9 cae0 cb12 cb3f cb49 cb5a cb6f cc4c cc5c cc7b ccde cd19 cdc8 ce09 cea4 ceed
cf03 cf10 cf23 d00f d03c d066 d088 d0d6 d145 d1b1 d1ea d20b d22c d26e d27b d2a4
d33c d3b6 d431 d485 d49f d4bf d5e5 d615 d68e d6d0 d6e6 d71c d72c d753 d7c4 d7c6
d856 d878 d90e d939 d948 d994 d9bd d9be da11 da61 daf8 db11 dc22 dd84 dd90 de73
de8e de96 debc decc df42 df93 df96 df98 e005 e015 e073 e0b4 e0ca e12e e15c e26b
e2b3 e3f9 e432 e43b e4b1 e4e7 e554 e5b8 e5d5 e60f e65c e6d6 e73b e7a0 e7a7 e7e4
e80c e812 e8a1 e8b1 e943 e967 e9a5 ea40 ead1 eafa eb3b ebc1 ec5e ecaa ecb8 ecbb
eda9 edce ee9f eef5 f063 f095 f0b7 f15a f161 f19c f1c7 f291 f3bc f44d f487 f561
f577 f57c f5b5 f5c9 f5ee f5fa f5fb f63d f64e f67b f67e f6aa f6bb f6c3 f7b5 f801
f830 f8da f938 f949 f960 f96d f9e3 fa34 fa39 faea faf5 fafc fbf5 fc03 fc70 fc9f
fcc0 fcfa fcfd fd7c fdfc fe44 fe7e febc ff9b ffab