Уразливості SIM-карт та GSM протоколу

За традицією, що давно склалася, SIM-карту прийнято вважати найбільш надійно захищеним елементом усієї системи мобільного зв'язку GSM. Нині ж з'ясовується щось інше. Насправді захист цей не тільки гірший, ніж міг би бути, але й ослаблений він, схоже, навмисне.

Суть нинішніх відкриттів цілком зрозуміло передає така цитата:

Всі ці малоприємні, чого там говорити, слова належать людині на ім'я Карстен Ноль (Karsten Nohl). А у професійних колах комп'ютерної безпеки Карстен Ноль – особистість дуже відома.

За останні 4–5 років з цим ім'ям було пов'язано кілька дуже гучних і скандальних досліджень-викриттів, які демонструють реальну (не)надійність захисту важливих цифрових пристроїв, які за умовчанням вважаються досить безпечними. Серед найвідоміших історій такого роду можна назвати дві.

Схема захисту в цих чіпах завжди трималася в секреті, а дослідження Ноля та його колег дозволили не тільки відновити криптоалгоритм, а й вказати на безліч слабкостей системи, що допускають численні зловживання (типу клонування карт та розкрадання критично важливих даних).

У рамках цих робіт, зокрема, з 2011 року фірма Security Research Labs серйозно зайнялася тестуванням безпеки SIM-карток. Тобто пристрій, який у системі GSM спочатку прийнято вважати найбільш захищеним елементом конструкції і навколо якого вибудовується вся інша архітектура безпеки.

Підсумком цих дворічних розвідок і стали, власне, ті неприємні відкриття, про які нині розповідає Нуль. Але щоб краще зрозуміти суть і важливість дослідження, спочатку бажано мати хоча б загальне уявлення про предмет вивчення.

Абревіатура SIM розшифровується як Subscriber IdentificationModule, тобто "модуль ідентифікації абонента". Люди, які не мають звички вникати в хитромудрі технічні тонкощі будь-якого приладу, який потрапляє їм у руки, зазвичай вважають, що SIM-картка — це просто щось на кшталт особливо захищеної мікросхеми для зберігання інформації.

SIM-карток

Коротше кажучи, навіть із цього короткого опису вже можна зрозуміти, що йдеться про досить складний у своєму пристрої комп'ютер на чіпі. Ну а раз так, то SIM-карта, подібно до всіх інших комп'ютерів, що працюють під управлінням операційної системи та додатків, може бути «хакнута» тими людьми, які мають професійний інтерес до даної справи та даного предмета.

Java Card забезпечує роботу невеликих Java-додатків, іменованих аплетами, а кожен такий аплет працює в окремо вигородженому для нього просторі пам'яті («пісочниці»), завдяки чому віртуальна машина Java VM запобігає витоку чутливих даних з одних додатків до інших. Так, принаймні це виглядає в теорії. Насправді ж, як завжди, все виявляється значно інакше.

Згідно зі статистикою, на сьогоднішній день у світі налічується вже понад сім мільярдів SIM-карток, що знаходяться в активному використанні. Такі масштаби роблять дані пристрою найпоширенішим на планеті «жетоном безпеки».

уразливості

Причому цей «жетон» є пристроєм надзвичайно гнучкої функціональності, якщо можливості SIM-карти можна різноманітно розширювати за допомогою спеціалізованого програмного забезпечення на базі мови Java. І що особливо важливо, перепрограмування SIM-карток відбувається дистанційно, за допомогою технології радіодоступу під назвою OTA, або over-the-air (тобто «через повітря», коли в пристрій відправляються особливі, бінарного виду SMS).

Взагалі прийнято вважати, що ця розширюваність функціональності SIM-карт в реальному житті поки що використовується досить рідко. Однак Карстен Ноль, пред'являючи результати проведених досліджень, абсолютно впевнений, що сам факт існування таких можливостей вже є підвищеним, критично серйозним ризиком з погляду шкідливого хакінгу. У найстислішому, але все ще доступному розумінні викладі найважливіші вразливості SIM-карток, виявлені Нолем та його командою, виглядають наступним чином.

Відкривання ключів оновлення SIM. Команди технології OTA, такі як інструкції з оновлення програмного забезпечення, є криптографічно захищеними SMS-повідомленнями, які доставляють безпосередньо до SIM-картки. Хоча в цій технології є опції сильної криптографії, що дозволяють використовувати для засекречування зв'язку найбільш сучасний криптоалгоритм AES або дещо застарілий, але міцний алгоритм шифрування 3DES, насправді багато (якщо не більшість) з SIM-карток все ще продовжують спиратися на шифр DES , розроблений у 70-х роках минулого століття.

Вигляд правильного підпису вони, звичайно, спочатку не знають. Якщо команда OTA не підписана правильно (що відбувається на даному етапі атаки), то SIM-карта цю команду не виконує. Але дуже важливо, що у багатьох відзначених дослідниками випадків SIM-карта не просто ігнорує хибну команду, але відповідає на атаку власним повідомленням з кодом помилки, що несе криптографічний підпис. І ця відповідь у вигляді двійкового SMS надсилається назад атакуючому.

В принципі, як уже говорилося, віртуальна машина Java повинна гарантувати, щоб кожен з аплетів-додатків мав доступ виключно до заздалегідь визначених інтерфейсів і не міг отримувати доступ до інших файлівдодатків. Але насправді конкретна реалізація ідеї «пісочниць» (Java sandbox), здійснена головними постачальниками SIM-карток на світовому ринку, виявляється надзвичайно небезпечною.

Нуль та його колеги виявили дуже серйозний баг у реалізації Java Card — по суті, помилку виходу за межі масиву, або out-of-bounds error. Через це бага, коли відбувається запит 11-го, скажімо, елемента у списку, що визначає лише 10 елементів, у відповідь на такий запит система дає додатку (вірусу) кореневий доступ до всіх файлів SIM-карти. Тобто фактично відразу розвалюється вся ця видимість «пісочниць», що забезпечують безпечну роботу віртуальної машини Java Card VM.

Інакше кажучи, шкідливий Java-додаток, що працює в SIM-карті, може вириватися зі свого обгородженого світу-пісочниці і отримувати доступ до інших, буквально будь-яких файлів картки. Безпосереднім наслідком цього дефекту є можливості дистанційного клонування мільйонів SIM-карток разом з усіма найважливішими реквізитами мобільної особи (значення IMSI, Ki), а також платіжними реквізитами власників, які зберігаються в пам'яті картки.

У відповідь на такий запит, за оцінками дослідників, буде отримано приблизно 25 SMS-відповідей з криптографічними сигнатурами, проте половину з них доведеться проігнорувати через сильніший стандарт безпеки, реалізований у SIM-карті.

Ну а далі, звичайно, настав час ставити основні питання, типу «Хто винен?» і що робити?".

Карстен Ноль вважає, що дефективна реалізація Java-пісочниць - це явний недогляд і ляп провідних у світі постачальників SIM-карток (у трійці головних фірм цього ряду прийнято називати Gemalto, Oberthur і Giesecke-Devrier). Яким саме терміном називати те, що роблять дані компанії,«недогляд», «некомпетентність» чи, скажімо, «навмисне ослаблення захисту», — це питання дуже непросте. Тому що документально знайти і пред'явити головне джерело проблеми навряд чи комусь вдасться (якщо тільки знову не знайдеться ще один борець за правду, на кшталт Сноудена чи Меннінга, і не поллє відповідні документи в Інтернет).

Але як би там не було, виявлені нині слабкості в захисті SIM-карт розумнішим все ж таки розглядати аж ніяк не як випадковість. Бо набагато ймовірніше, що це не так прикра помилка, скільки результат цілком цілеспрямованої роботи дуже впливових в індустрії сил. Для підтвердження цієї точки зору достатньо навести всього три приклади.

1. З історії DES. Хоча про криптоалгоритм DES нині знають або хоча б чули всі, хто більш-менш цікавиться питаннями захисту інформації, один дуже суттєвий нюанс цієї теми має звичай вислизати. Найважливіша особливість шифру DES полягає в тому, що з точки зору криптографічної стійкості він є надзвичайно вдалою і сильною конструкцією. Тобто за багато десятиліть аналізу цієї схеми для ефективного розтину DES фактично так і не вдалося знайти способу краще, ніж лобовий перебір всіх можливих варіантів ключа.

Іншими словами, єдиною слабкістю DES була і залишається його коротка довжина ключа - всього 56 біт (для яких при появі шифру в 1970-і роки прямий перебір варіантів вважався нездійсненним, проте поступово, з часом і зростанням потужності процесорів став цілком вирішуваним завданням) . Але важливі факти історії такі, що в основу конструкції DES був покладений шифр Lucifer, що спочатку мав довжину ключа 128 біт (а це навіть за нинішніми мірками цілком надійний рівень захисту). Нині давно вже несекрет, що довжину ключа - тобто стійкість чудового шифру - настільки суттєво зменшили на вимогу Агентства національної безпеки США.

2. З історії криптографії у GSM. Криптосхеми GSM, що спочатку трималися в секреті, були відновлені незалежними дослідниками до 1999 року. Аналіз цих схем академічними математиками-криптографами показав дуже чудові речі. Спочатку якісні, що називається військового рівня, криптоалгоритми при конкретній реалізації в чіпах виявилися явно і навмисне ослаблені — «кимось» досі невідомим, але дуже добре знаючим свою справу. Коментуючи зроблені відкриття, один з керівників того розтину Марк Бріссен, більш відомий у Мережі як Lucky Green, сказав про це так:

«Мій досвід роботи з GSM показує, що розвідувальні служби, які стоять, як відомо, за всіма криптоалгоритмами GSM, використовують у своїй роботі дуже специфічний підхід. Вони компрометують будь-який і кожен компонент криптосистеми, який можна скомпрометувати. Маючи таку можливість розвідслужби послаблюють компонент просто тому, що можуть це зробити, а не тому, що їм це потрібно. Це ніби збочене втілення загалом правильного принципу багаторазової надмірності».

Стосовно криптоалгоритмів GSM практична реалізація цього принципу надмірності виглядала так:

  • Скомпрометовано систему аутентифікації та алгоритм генерації секретного ключа.
  • Скомпрометовано ефективну довжину сеансового ключа. У 64-бітному ключі останніх 10 біт примусово обнулені. Це зовсім навмисне ослаблення системи приблизно 1000 разів.
  • Скомпрометовано сильний алгоритм шифрування A5/1. У цьому шифрі з 64-бітним ключем виявлено численні конструктивнідефекти, які призводять до стійкості, що не перевищує стійкість шифру з 40-бітним ключем (іншими словами, стійкість знижена на 6 порядків або мільйон разів).

Підсумовуючи цим відкриттям, Лакі Грін зазначав, що для забезпечення перехоплення та дешифрування GSM-трафіку було б достатньо скомпрометувати ефективну довжину ключа. Було достатньо скомпрометувати алгоритм генерації ключа. Було достатньо скомпрометувати алгоритм шифрування. Проте спецслужби зробили усі три речі одночасно.

Такі дії і не назвеш інакше, як добре продуманою, гарантовано надмірною компрометацією системи.

Група відомих ізраїльських криптографів (Orr Dunkelman, Nathan Keller, Adi Shamir) не тільки зламала A5/3, також відомий як KASUMI, але й показала, що цей шифр є значно слабкішою модифікацією свого початкового прообразу, криптоалгоритма MISTY. Іншими словами, практично один за одним повторилася давня історія з алгоритмами DES і Lucifer. Тут також деякі умільці за основу взяли якісний і всебічно досліджений на стійкість японський шифр MISTY, а потім піддали його цілій низці «покращень» та оптимізації для умов роботи в мережах GSM. В результаті всіх цих удосконалень вийшов новий шифр Kasumi, ключі до якого, як показали ізраїльські дослідники, при грамотному підході можна розкривати за кілька хвилин.

Карстен Ноль та його колеги, природно, не можуть забезпечити всебічний захист комунікацій у мережах GSM. Але якщо говорити конкретно про їхні дослідження SIM-карт, то тут ці фахівці пропонують цілком реальні та конкретні заходи щодо посилення безпеки системи. Зокрема, для конструктивного втручання компетентних структур ними розглянуто та запропоновано три конкретні комплексизаходів, які значно знижують ризики від дистанційних шкідливих маніпуляцій з SIM-картами.

Всі свої відкриття та пропозиції Ноль та його команда, природно, вже давно передали для вивчення в Асоціацію GSM та належного реагування з боку виробників SIM-карт, операторів стільникового зв'язку та інших зацікавлених у безпеці структур.