Дефект TLS/SSL в продуктах Apple
У Apple – грандиозная ошибка в коде, отвечающем за установление TLS-соединения: лишний оператор goto (зачем они вообще его использовали?) приводит к тому, что не проверяется серверная подпись при генерации ключа по протоколу Диффи-Хеллмана. Это означает, что сессия может прослушиваться, так как атакующий получает возможность подменить сеансовый ключ. Ошибка, можно сказать, сводит защищённость TLS в соответствующих продуктах Apple примерно к нулю.
Addon:
Пожалуй, скопирую и фрагмент исходного кода:
static OSStatus SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen) { OSStatus err; ... if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail; ... fail: SSLFreeBuffer(&signedHashes); SSLFreeBuffer(&hashCtx); return err; }
Речь, как несложно догадаться, о паре последовательных goto. Второй из операторов безусловен, а так как переменная err, в случае, если ошибочный goto выполнился, содержит 0, то и сама функция “проверки” вернёт этот код успешного завершения.
Адрес записки: https://dxdt.ru/2014/02/22/6664/
Похожие записки:
- Трансляторы кода силами LLM в DARPA
- Постквантовая "гибридизация" криптосистем и перспективы стойкости
- DARPA и "недетерминированные" системы на борту
- Технократический аспект Нового Средневековья
- ИИ для обнаружения ракетного нападения
- Построение CVE-2025-0282 в Ivanti Connect Secure
- Маячки для Google Maps
- Мониторинг жонглёров
- CVE-2024-3661 (TunnelVision) и "уязвимость" всех VPN
- Маскирование криптографических ключей в памяти
- Сайт OpenSSL и сегментация интернетов
Комментарии читателей блога: 2
1 <t> // 23rd February 2014, 22:45 // Читатель jno написал:
круто!
слов нет.
и code review у них, похоже, тоже нет.
как и coding style checkup…
ппц.
2 <t> // 24th February 2014, 01:45 // Читатель Alex написал:
Это же эталонная реализация бэкдора! Выглядит как простая опечатка, а дело делает.