Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, Ed25519, Curve25519 и ChaCha20-Poly1305, предложил создать новый компилятор для языка Си, рассчитанный на сборку защищённого ПО. По мнению Бернштейна, сообществу не хватает компилятора, который мог бы обеспечить предсказуемое поведение и предоставить чётко определённую семантику для всех ситуаций, отмеченных в стандарте Си как неопределённые (undefined), неспецифицированные (unspecified) или зависящие от конкретных реализаций.
Большинство приложений используют подобные возможности, но существующие компиляторы могут трактовать их по разному, что может привести к разным результатам при сборке в разных компиляторах, проблемам с безопасностью и непредвиденным сбоям. Новые режимы оптимизации часто становятся источником уязвимостей, предсказать появление которых достаточно сложно. Проведённый сегодня аудит кода не может гарантировать, чт
...
Читать дальше »