Безпека GSM

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Стільникові системи зв'язку першого покоління, такі як NMT, TACS і AMPS, мали невеликі можливості в плані безпеки, і це призвело до істотних рівнів шахрайської діяльності, яка шкодить і абонентам, і мережевим операторам. Безліч інцидентів великого значення висунуло на перший план чутливість аналогових телефонів до підслуховування ліній радіозв'язку.

Система GSM має безліч особливостей у плані безпеки, які розроблені, щоб надати абонентові й мережному оператору більший рівень захисту від шахрайської діяльності. Механізми автентифікації гарантують, що тільки сумлінним абонентам, що володіє сумлінним обладнанням, тобто не вкраденим або нестандартним, буде надано доступ до мережі. Як тільки зв'язок був встановлений, інформація в лінії зв'язку передається в закодованому вигляді, щоб уникнути підслуховування. Конфіденційність кожного абонента захищена, гарантована тим, що його особистість і місце розташування захищені. Це досягнуто шляхом призначення для кожного користувача тимчасового ідентифікатора рухомого абонента (Temporary Mobile Subscriber Identity — TMSI), який змінюється від дзвінка до дзвінка. Таким чином немає необхідності передавати міжнародний ідентифікатор мобільного абонента (International Mobile Subscriber Identity — IMSI) по радіо-інтерфейсу, що ускладнює задачу ідентифікації і визначення місцезнаходження користувача для підслуховувача.

Захист PIN-кодом

[ред. | ред. код]

Перший і найпростіший рівень захисту проти шахрайського використання мобільного телефону — особистий ідентифікаційний номер (PIN-код), призначений для захисту проти шахрайського використання вкрадених SIM-карт. В SIM-карті PIN-код має вигляд від чотирьох до восьмизначного числа. Користувач може мати можливість відключення цього рівня захисту. SIM-карта може зберігати другий чотирьох-, восьмирозрядний десятковий код, відомий як PIN2, щоб захистити певні можливості, які є доступними для абонента.

Як тільки PIN-код, і якщо потрібно — PIN2, введені правильно, об'єкт технічної експлуатації (maintenance entity) буде мати доступ до даних, збережених на SIM-карті. Технічні вимоги також визначають процедури, які повинні виконуватися, коли PIN-код введено неправильно. Після трьох послідовних неправильних спроб набору PIN-коду SIM-карта блокується і подальші спроби ввести PIN-код ігноруються, навіть якщо SIM-карта вилучено із об'єкта технічної експлуатації (maintenance entity). SIM-карта може бути розблокована шляхом введення восьмирозрядного десяткового коду, відомого як PUK (Personal Unlock Key), який також зберігається на SIM-карті. Після 10 неправильних спроб введення коду PUK SIM-карта блокується остаточно.

Встановлення автентичності

[ред. | ред. код]

Процедура встановлення автентичності або автентифікації (authentication) виконується під керуванням і з ініціативи VLR. Для її проведення використовується сценарій запит-відповідь, в якому VLR відправляє в MS спеціальне випадкове число RAND, яке є одним з вхідних параметрів алгоритму A3, використовуваного в SIM-карті для обчислення значення відгуку SRES. Іншим вхідним параметром алгоритму A3 є секретний ключ Ki, що міститься в SIM-карті. Ключ Ki не доступний для зчитування з SIM і це є одним з основних аспектів безпеки GSM.

VLR, в якому реєструється абонент відправляє запит у AuC домашньої мережі абонента, у відповідь на який AuC надсилає набір триплетів, кожен з яких містить RAND, SRES і ключ шифрування Kc. RAND є випадковим числом, SRES обчислюється AuC алгоритмом A3 на основі секретного ключа Ki і RAND, а Kc є ключем шифрування радіоінтерфейсу і обчислюється алгоритмом A8 на основі Ki і RAND. Ці триплети в подальшому будуть використані VLR для встановлення автентичності і шифрування. Таким чином, всі обчислення з використанням ключа Ki відбуваються всередині AuC, на стороні мережі і всередині SIM, на стороні абонента, що виключає витік Ki і перехоплення зловмисником. У сучасному обладнанні зв'язку, ключі Ki прогружаются в AuC в зашифрованому вигляді і це виключає доступ до ключів навіть з боку технічного персоналу оператора. Процедура встановлення автентичності може виконуватися при вихідних, вхідних викликах, при реєстрації в мережі пакетної передачі даних, відправлення та отримання SMS, а також при відновленні місцезнаходження (location update). Кожен оператор зв'язку самостійно визначає, в яких випадках VLR буде виконувати аутентифікацію.

Процедура встановлення дійсності починається після того, як між MS і MSC організований прозорий канал для обміну службовою інформацією. VLR вибирає перший триплет і відправляє в мобільну станцію його RAND разом з номером триплету, який надалі буде позначатися як CKSN — Шифрування Key Sequence Number, він же — номер ключа шифрування Kc. На стороні MS, за алгоритмом A3 обчислюється SRES, який повертається в VLR, де порівнюється зі значенням SRES зі складу триплету, отриманого з AUC. Ідентичність двох SRES є ознакою автентичності абонента. Триплет в VLR позначається як використаний і в наступний раз буде використаний інший триплет. Після того, як всі триплети будуть витрачені, VLR запитує у AuC нову порцію триплетів. Секретний алгоритм A3 надає можливість відносно простий генерації SRES з RAND і Ki, але ускладнює визначення Ki з SRES і RAND, або пар SRES і RAND, чим забезпечується висока стійкість до компрометації.

Шифрування

[ред. | ред. код]

Як тільки справжність абонента була перевірена, таким чином захищаючи і абонента і мережевого оператора від впливу шахрайського доступу, користувач повинен бути захищений від підслуховування. Це досягається шляхом шифрування даних, переданих по радіоінтерфейсу, з використанням другого ключа Kc і спочатку секретного алгоритму A5. Kc генерується в ході перевірки автентичності, використовуючи Ki, RAND і секретний алгоритм A8, який також зберігається на SIM-карті. Подібно до алгоритму A3, A8 не унікальний, і він може також бути обраний оператором. Ключі Kc для кожного користувача обчислюються AuC домашньої мережі і передаються в VLR у складі набору триплетів, де кожному триплету і, відповідно — ключа Kc, присвоюється номер ключа — CKSN. У деяких реалізаціях алгоритми A3 і A8 об'єднані в єдиний алгоритм A38, який використовує RAND і Ki, щоб згенерувати Kc і SRES. На відміну від A3 і A8, які, можливо, різні для кожного індивідуального оператора, A5 вибирається з списку із 7 можливих варіантів.

Перед шифруванням відбувається фаза переговорів, в ході якої визначається, яка версія A5 буде використана. Якщо мережа і мобільна станція не мають загальних версій A5, зв'язок має продовжитися у відкритому режимі або з'єднання повинне бути розірвано. Алгоритм A5 використовує 64-бітний ключ Kc і 22-бітний номер TDMA кадру для обчислення двох 114-бітних слів шифрування — BLOCK1 і BLOCK2, що використовуються при передачі і прийомі відповідно. Слова шифрування — EXORed зі 114 бітами даних в кожній посилці. Оскільки зашифровані дані обчислені, використовуючи номер TDMA кадру, то слова змінюються від посилки до посилці і не повторюються протягом гіперфрейма (приблизно 3,5 години).

Перед тим, як почати шифрування, мобільна станція (MS) відправляє в VLR номер ключа шифрування CKSN, який зберігається в її пам'яті з моменту останньої процедури аутентифікації. CKSN не містять секретних даних, а служить лише для того, щоб MS могла повідомити мережі, який ключ Kc вона «пам'ятає». Після цього VLR відправляє в MS команду на включення шифрування і передає в базову станцію (BTS) ключ Kc з того триплету, який відповідає номеру CKSN, отриманого від MS. Таким чином між MS і VLR досягається домовленість про вибір ключа шифрування без передачі самого ключа по радіоінтерфейсу.

Тимчасовий ідентифікатор рухомого абонента (TMSI)

[ред. | ред. код]

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

Атаки на GSM

[ред. | ред. код]

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

Спочатку безпеку GSM мереж ґрунтувалася на принципі «безпека через неясність», але вже до 1994 року основні деталі алгоритму A5 були відомі. У 1999 році Аді Шамір і Алекс Бірюков показали, що алгоритм А5/1 може бути зламані менш ніж за 1 секунду на домашньому комп'ютері, використовуючи 128 MB RAM пам'яті і 73 GB вільного простору на жорсткому диску.

Атака на основі відкритих текстів

[ред. | ред. код]
Передача системної інформації у відкритому та зашифрованому вигляді

При передачі зашифрованого трафіку по GSM в ньому присутній системна інформація, заздалегідь відома криптоаналітику. З допомогою цієї інформації може бути застосована атака на основі відкритих текстів. У грудні 2010 року на всесвітньому конгресі хакерів Sylvain Munaut і Karsten Nohl продемонстрували злом ключа Kc і подальшу розшифровку голосового трафіку. Для прискорення атаки шляхом перебору ключа по відомому відкритому тексту вони використовували метод попередніх обчислень з створенням райдужних таблиць.

Дивись також

[ред. | ред. код]