 
        
        - •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 неизвестно | ||
	 
	

 
