Завершен аудит реализации TLS 1.3 в OpenSSL 1.1.1
Фонд OSTIF (Open Source Technology Improvement Fund), созданный с целью усиления защищенности открытых проектов, объявил о завершении независимого аудита ветки OpenSSL 1.1.1, сосредоточенного на анализе безопасности алгоритмов и кода, связанных с реализацией TLS 1.3, новых протоколов и переработанного генератора псевдослучайных чисел. Работа выполнена французской компанией QuarksLab, которая находится вне юрисдикции крупнейших спецслужб, заинтересованных в организации слежки, и уже привлекалась для аудита проектов OpenVPN и VeraCrypt. Проведение аудита было профинансировано компанией Private Internet Access и проектом DuckDuckGo.
Аудит не выявил серьезных проблем с безопасностью в OpenSSL 1.1.1 и реализации TLS 1.3. Код отмечен в целом как безопасный, быстрый и функциональный, но выявлены некоторые области, в которых могут быть улучшены качество кода и снабжение комментариями. Всего разработчикам OpenSSL было предоставлено 16 рекомендаций и исправлений. Проект OpenSSL также включен в программу Internet Bug Bounty, в рамках которой производится выплата выплаты вознаграждений за выявление уязвимостей и недоработок в области безопасности.
В ходе аудита выявлено 6 проблем, которые были устранены еще до официального релиза OpenSSL 1.1.1:
- В некоторых ситуациях соединения могли сбрасываться без вывода ошибки. Проблема могла применяться для осуществления DoS-атаки на клиента (крах приложения) при его обращении к подконтрольному злоумышленнику серверу (например, через организацию MITM-атаки);
- Проблемы с генерацией уведомлений о проблемах, связанных с TLS v1.3. Проблемы можно было использовать для инициирования отказа в обслуживании;
- Высказано несколько замечаний по качеству кода нового генератора псевдослучайных чисел и недостаточно ясному описанию назначения функций в комментариях (функциональные недоработки в PRNG уже были устранены после другого аудита);
- Реализация протокола аутентификации SRP признана корректной, но высказаны замечания по качеству кода и недостаточным пояснениям в комментариях, а также выявлено отсутствие проверок некоторых возвращаемых значений;
- По реализации CAPI замечания коснулись отсутствия комментариев в коде, что значительно затрудняет понимание реализованной логики. Качество кода не вызвало нареканий;
- Во многих внутренних функциях OpenSSL обнаружены случаи отсутствия явных проверок на значения NULL, что потенциально может приводить к непредсказуемому поведению, которое может вылиться в проблемы со стабильностью или безопасностью.