Logjam
Logjam — атака на TLS / SSL. Дана атака здатна повністю розшифрувати або зламати будь-яке TLS з'єднання, встановлене з недобросовісно сконфігурованими вебсервісами або поштовими серверами. Також як і FREAK, Logjam заснована на зниженні рівня шифрування до експортного рівня, де довжина ключа становить 512 біт. Відмінність полягає в тому, що Logjam атакує Протокол Діффі-Геллмана.
Найкращий спосіб зрозуміти результат Logjam — прочитати технічну документацію:
Схоже, що протокол англ. Diffie-Hellman, який в даний час розгорнуто в SSL/TLS, може бути уразливий для серйозної атаки з пониженням, яка відновлює її до рівня «експорту» в 1990-х роках і пропонує практичний «розрив» протоколу TLS проти погано налаштованих серверів. Гірше того, екстраполяція вимог до атаки — в поєднанні з доказами з документів Snowden — дає привід припустити, що аналогічна атака може бути використана проти протоколів (включаючи TLS, IPSec /IKE і SSH) з використанням 768- і 1024-розрядних англ. Diffie-Hellman[1]
.
Такі ключі, як показали дослідники FREAK, можна зламати протягом декількох годин[2].
Вчені зробили попередній розрахунок для двох популярних експортних DH-груп: перша група використовується в Apache в версіях 2.1.5-2.4.7 і зустрічається на 7 % сайтів з TOP 1M за версією Alexa, а другий захист в OpenSSL, ще коли він називався SSLeay, в 1995 році. Розрахунок зайняв тиждень для кожної групи, й проводився він з використанням модифікованої версії CADO-NFS. Дослідники з'ясували, що попередній розрахунок цих двох груп дозволяє зламувати до 80 % зашифрованих з'єднань на серверах, які підтримують експортні DH-ключі. Були запропоновані і продемонстровані на відео три способи проведення атаки:
- Офлайн-дешифрування слабких підключень для серверів, що використовують 512-бітові DH-ключі за замовчуванням, при пасивній подачі трафіку;
- Зниження стійкості ключів до 512-бітних з використанням TLS False Start, шляхом MiTM-підміни відправляються на сервер даних про тип DH;
- Зниження стійкості ключів до 512-бітних шляхом MiTM-підміни відправляються на сервер даних про тип DH, і призупинення з'єднання до моменту злому ключів[2].
Найбільш відомий та розповсюджений спосіб атакувати Диффі — це означає: перехоплення повідомлень та вилучення величини ga, потім знаходиться «секрет» a. Задача знаходження цього «секрету» називається дискретно-логарифмічною задачею, яка вважається математично невирішеною, якщо Діффі — Геллман був застосований з простого числа p розміром 2048 біт або більше.
Коли просте число p має розмір 512 біт або менше, то стає можливим отримати значення a з g a mod p і прочитати трафік з'єднання. Знайти а можна, використовуючи Метод решета числового поля (Number Field Sieve)).
Існує декілька сучасних серверів TLS/SSL, які використовують 512-бітний ключ Діффі — Геллмана, більшою мірою такі сервера використовуються в маршрутизаторах або у відеоконференційних шлюзах. Тем не менше, існує другий клас серверів, які здатні підтримувати 512-бітний Діффі — Геллмана на прохання клієнта, використовуючи спеціальний режим EXPORT_DHE. За даними Alexa, з мільйонів найбільш популярних сайтів 8,4 % є вразливими до Logjam[1].
Хоча більшість привілейованих клієнтів (популярних браузерів) не підтримують EXPORT_DHE, тому існує уразливість, що дозволяє їм приймати ослаблений ключ.

До того, як клієнти й сервер розпочне процес шифрування, їм потрібно вирішити, який із шифрів використовувати. Це відбувається в процесі «переговорів», коли клієнт пропонує деякі параметри (RSA, DHE, DHE_EXPORT, RSA_EXPORT і т. д.) і сервер вибирає один з них. Однак існує вразливість, яка полягає в тому, що в SSL/TLS протоколах погано продумана аутентифікація «переговорних» повідомлень. У більш ранніх версіях протоколу SSL не було автентифікації, тільки в TLS і в SSL 3.0 введено аутентифікацію, але вона відбувається в кінці процесу «рукотиснення». Слабкість реалізації TLS полягає в тому, що TLS сервера можуть підписувати свої повідомлення цифровою підпискою, але в реалізації цього протоколу це не використовується. Під час процесу «переговорів», якщо був вибраний Діффі — Геллман, то параметри, які присилає сервер, знаходяться в підписаному повідомленні ServerKeyExchange. Підписана частина повідомлення містить тільки параметри, але не містить інформації про те, який шифр використовувати.

Таким чином, якщо сервер підтримує DHE EXPORT, то зловнисник може скористатися атакою «людина посередині» та перехоплювати повідомлення між клієнтом і сервером, змінювати список підтримуючих шифрів, залишаючи тільки підтримку DHE_EXPORT (навіть якщо клієнт його не підтримує). Сервер у відповідь відправляє своє повідомлення, підписане 512-бітним ключем Диффі — Геллмана. Клієнт, нічого не підозріваючи, приймає цю інформацію. Зловмиснику залишилось знайти «секрет» Діффі — Геллмана, але він повинен це зробити до того, як завершиться процес «рукопотиснення» і створити своє повідомлення про закінчення даного процесу[3].
- 1 2 Attack of the week: Logjam. Архів оригіналу за 27 травня 2016. Процитовано 9 квітня 2018.
- 1 2 Уязвимость TLS Logjam — FREAK с DH. Архів оригіналу за 2 липня 2017. Процитовано 9 квітня 2018.
- ↑ Разработана новая атака Logjam на алгоритм Диффи — Хеллмана [Архівовано 27 травня 2016 у Wayback Machine.]
- Attack of the week: Logjam [Архівовано 27 травня 2016 у Wayback Machine.]
- Уязвимость TLS Logjam — FREAK с DH [Архівовано 2 липня 2017 у Wayback Machine.]
- Разработана новая атака Logjam на алгоритм Диффи — Хеллмана [Архівовано 20 листопада 2015 у Wayback Machine.]