Эксперт — авторам PHP: Почитайте Шнайера

Эксперт по безопасности Андреас Богк (Andreas Bogk) опубликовал сообщение об уязвимости в PHP, позволяющей подделывать идентификаторы сессий, и посоветовал авторам этого языка ознакомиться с базовыми аспектами безопасности и криптографии.Идентификаторы сессий (session IDs) используются в PHP для ассоциации с текущим пользователем каких-либо данных, что фактически предоставляет клиенту те или иные права доступа в рамках веб-приложения. Как выяснилось, механизм генерации этих идентификаторов далек от по-настоящему случайного, что потенциально предоставляет злоумышленнику возможность предугадывать идентификаторы новых сессий.Для генерации случайного числа используется LCG (Linear Congruential Generator), который путем сложных математических операций создает новые числа на основе предыдущих значений. Но для того, чтобы все работало эффективно, генератор требуется инициализировать случайными значениями. Сэми Камкар (Samy Kamkar) обнаружил, что в PHP с этим были проблемы, и написал программу, которая «предугадывала» идентификаторы сессий. Команда разработчиков PHP сообщила, что устранила проблему в релизах 5.3.2 и 5.2.13.Однако, как выяснилось теперь, проблема была «решена» дополнительным вызовом функции gettimeofday(), что в действительности ничего не изменило. Об этом и сообщил Богк в своем уведомлении о проблеме. Также он отметил, что такой уязвимости в PHP с патчем Suhosin от Стефана Эссера (Stefan Esser) нет.Богк приводит и несколько рекомендаций как для PHP-программистов, так и для разработчиков самого языка программирования. Последним он, в частности, рекомендует почитать Брюса Шнайера*.* Брюс Шнайер — известный эксперт в области ИТ-безопасности и криптографии, автор ряда книг по соответствующим темам и разработчик популярных алгоритмов шифрования, как Blowfish и Twofish.

©  nixp