- •10.05.02 Информационная безопасность телекоммуникационных систем, специализация Защита информации в системах связи и управления (очная форма обучения)
- •1 Теоретические сведения
- •1.1 Аутентификация в беспроводных сетях стандарта ieee 802.11
- •1.2 Основы алгоритма шифрования wep
- •1.3 Основы шифрования wpa
- •1.4 Протокол шифрования ccmp
- •2 Практическая часть
- •2.1 Задание 1
- •2.2 Задание 2
2.2 Задание 2
Схема шифрования CCMP представлена на рисунке 2.3. Красные стрелки показывают вычисление проверочной суммы MIC, зеленые стрелки показывают процесс шифрования.
Рисунок 2.3 – Схема шифрования CCMP
Схема шифрования CCMP состоит из следующих шагов:
увеличение счетчика PN и генерация Nonce. PN комбинируется с MAC-адресом отправителя и меткой приоритета QoS, в результате чего получается 104-битный Nonce (в данной работе MAC-адрес точки доступа(шестн.): 000726404eff , MAC-адрес клиента (шестн.): 9439e5b014e5);
все защищаемые поля заголовка составляются воедино, образуя AAD;
генерируется проверочная сумма MIC, при этом используется nonce и TK (часть ключа PTK). Результат шифрования последнего блока в цепочке из 128-бит которые и будут являться проверочной суммой, называемой MIC.
PTK = 6750644b12ab7963a0e9b8e1c8edc4d00c03310e35bce4896a0adc7e7bfbc5e3ca4f245b0f195ed6949606b154702e5b
TK = ca4f245b0f195ed6949606b154702e5b
MIC = 00000000000000000000000000000000
данные вместе с MIC шифруются алгоритмом AES в режиме счетчика;
генерируется заголовок CCMP, содержащий PN и идентификатор ключа (2 бита). Идентификатор ключа указывает на то, какой ключ использовался при шифровании – PTK (=6750644b12ab7963a0e9b8e1c8edc4d00c03310e35bce4896a0adc7e7bfbc5e3ca4f245b0f195ed6949606b154702e5) или GTK (40fd1604a1fe7153b85385f93a423effa0ae6aa9063098b553b03c1b06cba540);
заголовок CCMP добавляется к зашифрованным данным и кадр отправляется.
В схеме шифрования CCMP предусмотрено два режима:
режим шифрования блоками в цепочку (Cipher-Block Chaining);
режим счетчика (counter mode).[7]
Оба режима требуют подобия вектора инициализации в дополнение к ключу, поэтому в CCMP в качестве вектора инициализации используется Nonce.
Режимы шифрования CCMP представлены на рисунке 2.4.
Рисунок 2.4 – Режимы шифрования CCMP
Режим шифрования блоками в цепочку – Cipher-Block Chaining.
При шифровании в цепочку получившийся ранее 104 битный Nonce добивается 24 нулями для получения 128 битного вектора. Получившийся 128 битный nonce и 128 битный ключ TK (часть PTK) используется для шифрования по следующему алгоритму:
первый 128-битный блок шифруемых данных складывается по модулю 2 (XOR) со 128-битным nonce;
получившийся 128-битный вектор шифруется алгоритмом AES с помощью ключа TK, в результате получаем первые 128-бит зашифрованных данных;
следующий 128-битный блок данных складывается по модулю 2 (XOR) с зашифрованным предыдущим блоком вместо Nonce;
результат снова шифруется тем же ключом, тем самым получаем вторые 128-бит зашифрованных данных;
шаги 3 и 4 повторяются до тех пор, пока весь кадр не будет зашифрован.[7]
Таким образом, каждый шифруемый 128-битный блок данных использует предыдущий зашифрованный блок, образуя цепочку.
Режим счетчика – counter mode.
В режиме счетчика 104-битный nonce дополняется 24-битным счетчиком. В самом начале шифрования счетчик обнуляется. Данные шифруются следующим образом:
Nonce+счетчик шифруются алгоритмом AES с помощью ключа TK;
результат шифрования складывается по модулю 2 (XOR) с первыми 128-битами данных, образуя при этом первый зашифрованный блок;
далее счетчик увеличивается на единицу;
шаги 1-3 повторяются до тех пор, пока весь кадр не будет зашифрован.
По сравнению с предыдущим режимом, каждый 128-битный блок данных шифруется независимо от другого, что делает режим счетчика проще с точки зрения вычислительных затрат. Кроме того, в режиме счетчика существует возможность распараллелить вычисления, тем самым увеличив скорость шифрования.
Заключение
В данной курсовой работе были рассмотрены методы аутентификации в беспроводных сетях и различные алгоритмы шифрования, а также выполнены следующие задачи:
генерирование последовательности Anonce и Snonce;
генерирование группового ключа GTK;
вычисление ключа PTK и разделение его на части KEK, KCK и TK;
сконструированы четыре передаваемых EAPOL-Key кадра в процессе четырехкратного рукопожатия;
изображена и пояснена схема процесса шифрования с указанием вычисленных данных.
Сравнив различные алгоритмы шифрования в беспроводных сетях, сделан вывод, что алгоритм WEP-шифрования имеет множество недостатков и может быть взломан за короткое время, а стандарты WPA-шифрования являются в большей степени надежными и гарантируют относительно высокий уровень защищенности. Схема CCMP обеспечивает наилучшую защиту, а самая ненадежная реализация WPA - это режим PSK. В случае PSK не стоит использовать простые пароли, так как сеть будет просто взломать методом обычного перебора по словарю.
Библиография
Туранцев Дмитрий Сергеевич Проблемы безопасности в беспроводных ЛВС IEEE 802. 11 // Научно-технический вестник информационных технологий, механики и оптики. 2008. №51. URL: https://cyberleninka.ru/article/n/problemy-bezopasnosti-v-besprovodnyh-lvs-ieee-802-11 (дата обращения: 03.04.2020).
Лабутин Николай Григорьевич Инновационные способы защиты беспроводных компьютерных соединений в целях обеспечения экономической безопасности // Юридическая наука и практика. 2010. №1 (12). URL: https://cyberleninka.ru/article/n/innovatsionnye-sposoby-zaschity-besprovodnyh-kompyuternyh-soedineniy-v-tselyah-obespecheniya-ekonomicheskoy-bezopasnosti (дата обращения: 03.04.2020).
WPA (Wi-Fi Protected Access) // Национальная библиотека им. Н. Э. Баумана. 2017. URL: https://ru.bmstu.wiki/WPA_(Wi-Fi_Protected_Access) (дата обращения: 03.04.2020).
CCMP (CCM mode Protocol) // Национальная библиотека им. Н. Э. Баумана. 2017. URL: https://ru.bmstu.wiki/CCMP_(CCM_mode_Protocol) (дата обращения: 03.04.2020).
Password-Based Key Derivation Function 2 (PBKDF2) A JavaScript implementation (version 1.5) // Password-Based Key Derivation Function 2 (PBKDF2). URL: http://anandam.name/pbkdf2/ (дата обращения: 02.04.2020).
QuickHash.com // QuickHash.com: MD5, CRC32, SHA1, SHA256, Hash Online, Online Hash Generator, Hash Calculator. URL: https://quickhash.com/ (дата обращения 02.04.2020).
ЗИБСС: Защита информации в сетях IEEE 802.11 (Wi-Fi) // Защита информации в сетях IEEE 802.11 (Wi-Fi) – URL:https://eios.sibsutis.ru/mod/lesson/view.php?id=22376&pageid=2280&startlastseen=yes (дата обращения:03.04.2020).
Приложение А. Кадры EAPOL
Таблица A.1 – Первое рукопожатие
Название поля |
Размер поля байт/бит |
Значение поля (двоичный B или шестнадцатеричный вид) |
||||||
|
ProtocolVersion |
2 бита |
00 B |
0b00 |
||||
Type |
2 бита |
00 B |
||||||
SubType |
4 бита |
1011 B |
||||||
To DS |
1 бит |
0 B |
||||||
From DS |
1 бит |
0 B |
||||||
Moreflag |
1 бит |
0 B |
||||||
Retry |
1 бит |
0 B |
||||||
PwrMgt |
1 бит |
0 B |
||||||
MoreData |
1 бит |
0 B |
||||||
Protected |
1 бит |
0 B |
||||||
Order |
1 бит |
0 B |
||||||
Duration ID |
2 байта |
N/A - Зависит от модуляции |
||||||
DestinationAddress |
6 байт |
9439e5b014e5 |
||||||
SourceAddress |
6 байт |
000726404eff |
||||||
BSSID Address |
6 байт |
000726404eff |
||||||
SequenceControl |
FragmentNumber |
4 бита |
0000 B |
|||||
|
SequenceNumber |
12 бит |
000000000000b |
|||||
Frame Body EAPOL frame |
DescriptorType |
1 байт |
02 |
|||||
KeyInformation |
2 байта |
010 0 00 0 1 0 0 0 0 0 000 B = 4100 |
||||||
Keylength |
2 байта |
0010 |
||||||
Keyreplaycounter |
8 байт |
0000000000000000 |
||||||
KeyNonce |
32 байта |
4014c50f75dfc436a8ae365a5e93686dc2a0ae75337a6e1e1fd3e04677ae9040 |
||||||
EAPOL-Key IV |
16 байт |
00000000000000000000000000000000 |
||||||
Key RSC |
8 байт |
0000000000000000 |
||||||
Reserved |
8 байт |
0000000000000000 |
||||||
Key MIC |
16 байт |
00000000000000000000000000000000 |
||||||
Key Data Length |
2 байта |
0016 |
||||||
Key Data - PMKID KDE |
Type |
1 байт |
dd |
|||||
Length |
1 байт |
14 |
||||||
OUI |
3 байта |
000fac02 |
||||||
DataType |
1 байт |
04 |
||||||
PMKID |
16 байт |
00000000000000000000000000000000 |
||||||
CRC |
4 байта |
N/A, т.к. Duration ID неизвестно |
CRC |
4 байта |
Таблица А.2 – Второе рукопожатие
Название поля |
Размер поля байт/бит |
Значение поля (двоичный B или шестнадцатеричный вид) |
|
||||||
|
ProtocolVersion |
2 бита |
00 B |
0b00 |
|
||||
Type |
2 бита |
00 B |
|
||||||
SubType |
4 бита |
1011 B |
|
||||||
To DS |
1 бит |
0 B |
|
||||||
From DS |
1 бит |
0 B |
|
||||||
Moreflag |
1 бит |
0 B |
|
||||||
Retry |
1 бит |
0 B |
|
||||||
PwrMgt |
1 бит |
0 B |
|
||||||
MoreData |
1 бит |
0 B |
|
||||||
Protected |
1 бит |
0 B |
|
||||||
Order |
1 бит |
0 B |
|
||||||
Duration ID |
2 байта |
N/A - Зависит от модуляции |
|
||||||
DestinationAddress |
6 байт |
000726404eff |
|
||||||
SourceAddress |
6 байт |
9439e5b014e5 |
|
||||||
BSSID Address |
6 байт |
000726404eff |
|
||||||
SequenceControl |
FragmentNumber |
4 бита |
0000 B |
|
|||||
|
SequenceNumber |
12 бит |
000000000001b |
|
|||||
Frame Body EAPOL frame |
DescriptorType |
1 байт |
02 |
|
|||||
KeyInformation |
2 байта |
010 0 00 0 0 1 0 0 0 0 000 B = 4080 |
|
||||||
Keylength |
2 байта |
0010 |
|
||||||
Keyreplaycounter |
8 байт |
0000000000000000 |
|
||||||
KeyNonce |
32 байта |
40398518913d33a6d13bdfe57575e346c21848ab33b01d041831878407936a40 |
|
||||||
EAPOL-Key IV |
16 байт |
00000000000000000000000000000000 |
|
||||||
Key RSC |
8 байт |
0000000000000000 |
|
||||||
Reserved |
8 байт |
0000000000000000 |
|
||||||
Key MIC |
16 байт |
00000000000000000000000000000000 |
|
||||||
KeyDataLength |
2 байта |
0016 |
|
||||||
|
Key Data - PMKID RSN |
Element ID |
1 байт |
30 |
|||||
Length |
1 байт |
14 |
|||||||
Version |
2 байта |
0100 |
|||||||
GroupCipherSuite |
4 байта |
000fac02 |
|||||||
PairwiseChiperSuiteCount |
2 байта |
0100 |
|||||||
PairwiseChiperSuitelist |
4 байта |
000fac02 |
|||||||
AKM SuiteCount |
2 байта |
0100 |
|||||||
AKM SuiteList |
4 байта |
000fac02 |
|||||||
RSN capabilities |
2 байта |
1000000000000000 = 8000 |
|||||||
CRC |
4 байта |
N/A, т.к. Duration ID неизвестно |
|
Таблица А.3 – Третье рукопожатие
Название поля |
Размер поля байт/бит |
Значение поля (двоичный B или шестнадцатеричный вид) |
||||||
Frame Control |
ProtocolVersion |
2 бита |
00 B |
0b00 |
||||
Type |
2 бита |
00 B |
||||||
SubType |
4 бита |
1011 B |
||||||
To DS |
1 бит |
0 B |
||||||
From DS |
1 бит |
0 B |
||||||
Moreflag |
1 бит |
0 B |
||||||
Retry |
1 бит |
0 B |
||||||
PwrMgt |
1 бит |
0 B |
||||||
MoreData |
1 бит |
0 B |
||||||
Protected |
1 бит |
0 B |
||||||
Order |
1 бит |
0 B |
||||||
Duration ID |
2 байта |
N/A - Зависит от модуляции |
||||||
DestinationAddress |
6 байт |
9439e5b014e5 |
||||||
SourceAddress |
6 байт |
000726404eff |
||||||
BSSID Address |
6 байт |
000726404eff |
||||||
SequenceControl |
FragmentNumber |
4 бита |
0000 B |
|||||
|
SequenceNumber |
12 бит |
000000000010b |
|||||
Frame Body EAPOL frame |
DescriptorType |
1 байт |
02 |
|||||
KeyInformation |
2 байта |
010 1 00 1 1 1 1 0 0 1 000 B = 53c8 |
||||||
Keylength |
2 байта |
0010 |
||||||
Keyreplaycounter |
8 байт |
0000000000000001 |
||||||
KeyNonce |
32 байта |
0000000000000000000000000000000000000000000000000000000000000000 |
||||||
EAPOL-Key IV |
16 байт |
00000000000000000000000000000000 |
||||||
Key RSC |
8 байт |
0000000000000001 |
||||||
Reserved |
8 байт |
0000000000000000 |
||||||
Key MIC |
16 байт |
00000000000000000000000000000000 |
||||||
KeyDataLength |
2 байта |
003е |
||||||
Key Data - PMKID RSN |
Element ID |
1 байт |
30 |
|||||
Length |
1 байт |
14 |
||||||
Version |
2 байта |
0100 |
||||||
GroupCipherSuite |
4 байта |
000fac02 |
||||||
PairwiseChiperSuiteCount |
2 байта |
0100 |
||||||
PairwiseChiperSuitelist |
4 байта |
000fac02 |
||||||
AKMSuiteCount |
2 байта |
0100 |
||||||
AKM SuiteList |
4 байта |
000fac02 |
||||||
RSN capabilities |
2 байта |
1000000000000000 = 8000 |
||||||
Type |
1 байт |
dd |
||||||
Length |
1 байт |
26 |
||||||
OUI |
3 байта |
000fac |
||||||
DataType |
1 байт |
01 |
||||||
Data |
KeyID |
1 бит |
0 B |
|||||
Tx |
2 бита |
01 B |
||||||
Reserved |
5 бит |
00000 B |
||||||
|
|
|
Reserved |
1 байт |
00 |
|||
GTK |
32 байт |
40fd1604a1fe7153b85385f93a423effa0ae6aa9063098b553b03c1b06cba540 |
||||||
PMKID |
16 байт |
00000000000000000000000000000000 |
||||||
CRC |
4 байта |
N/A, т.к. Duration ID неизвестно |
Таблица А.4 – Четвертое рукопожатие
Название поля |
Размер поля байт/бит |
Значение поля (двоичный B или шестнадцатеричный вид) |
||
Frame Control |
ProtocolVersion |
2 бита |
00 B |
0b00 |
Type |
2 бита |
00 B |
||
SubType |
4 бита |
1011 B |
||
To DS |
1 бит |
0 B |
||
From DS |
1 бит |
0 B |
||
Moreflag |
1 бит |
0 B |
||
Retry |
1 бит |
0 B |
||
PwrMgt |
1 бит |
0 B |
||
MoreData |
1 бит |
0 B |
||
Protected |
1 бит |
0 B |
||
Order |
1 бит |
0 B |
||
Duration ID |
2 байта |
N/A - Зависит от модуляции |
||
DestinationAddress |
6 байт |
000726404eff |
||
SourceAddress |
6 байт |
9439e5b014e5 |
||
BSSID Address |
6 байт |
000726404eff |
||
SequenceControl |
FragmentNumber |
4 бита |
0000 B |
|
|
SequenceNumber |
12 бит |
000000000011b |
|
Frame Body EAPOL frame |
DescriptorType |
1 байт |
02 |
|
KeyInformation |
2 байта |
010 1 00 0 0 1 1 0 0 1 000 b = 50C8 |
||
Keylength |
2 байта |
0010 |
||
Keyreplaycounter |
8 байт |
0000000000000001 |
||
KeyNonce |
32 байта |
000000000000000000000000000000 0000000000000000000000000000000000 |
||
EAPOL-Key IV |
16 байт |
00000000000000000000000000000000 |
||
Key RSC |
8 байт |
0000000000000001 |
||
Reserved |
8 байт |
0000000000000000 |
||
Key MIC |
16 байт |
00000000000000000000000000000000 |
||
KeyDataLength |
2 байта |
0000 |
||
|
KeyData |
|
||
CRC |
4 байта |
N/A, т.к. Duration ID неизвестно |