SAML: фрактал плохого дизайна Заметка

SAML: фрактал плохого дизайна

Протокол аутентификации Security Assertion Markup Language (SAML), зародившийся в академической среде и корпоративных ИТ-отделах, устарел. SAML был разработан в 2002 году комитетом для обеспечения единого входа (SSO) для растущего числа веб-сервисов. Он построен на основе XML, сложного языка разметки, что способствует его присущим слабостям в безопасности и трудностям внедрения. Дизайн протокола включал объединение нескольких существующих спецификаций, что привело к подходу "всего понемногу". Несмотря на широкое распространение среди основных поставщиков SSO, SAML столкнулся со значительными уязвимостями в безопасности.Атаки типа "обертывание XML-подписи" и другие связанные с ними атаки годами преследовали реализации SAML, демонстрируя его хрупкость. Сложность самого XML с его многочисленными функциями создает большую поверхность атаки. Канонизация, процесс нормализации XML для последовательной проверки подписи, стала источником многочисленных недостатков безопасности. Оборачивающие подписи, когда подпись встраивается в данные, которые она подписывает, также создают проблемы при внедрении и уязвимости.Кроме того, дизайн SAML включает множество функций, редко используемых в современных реализациях, что добавляет ненужную сложность. Протокол также окаменел, не сумев адаптироваться к современной интернет-инфраструктуре, такой как HTTPS, которая обрабатывает шифрование и доверие на транспортном уровне. В отличие от OpenID Connect (OIDC), который развивался органично для удовлетворения конкретных потребностей, SAML был в значительной степени разработан заранее, ему не хватало гибкости более новых протоколов. Эти факторы указывают на то, что SAML является "фракталом плохого дизайна", который следует отказаться в пользу современных альтернатив, таких как OIDC.