Когда клиент предпринимает первую попытку доступа к защищенному ресурсу, размещенному в приложении проверяющей стороны, он должен сначала сам пройти проверку подлинности в службе STS, доверенной для этой проверяющей стороны. Затем STS выдает клиенту маркер безопасности. Клиент предъявляет этот маркер проверяющей стороне, и та предоставляет клиенту доступ к защищенному ресурсу. В типичном сценарии пассивной федерации маркер STS – это маркер на предъявителя. Это означает, что злоумышленник может перехватить маркер STS, используя атаку "злоумышленник в середине" (MITM) или небезопасный путь к веб-сайту, а затем с помощью этого маркера получить доступ к веб-сайту, выступив под именем клиента.
Другой пример: предположим, пользователь открывает браузер в общедоступном киоске, входит в банковский счет на веб-сайте банка, выходит из него и уходит из киоска, не закрыв браузер. Ответ на страницу входа пользователя, содержащую маркер STS, остается в истории обозревателя. Теперь кто угодно может перейти к этой странице ответа и использовать ее повторно, в результате чего маркер STS вновь будет отправлен на веб-сайт банка.
Во избежание этого в WIF ведется кэш обнаружения повторов – специально для маркеров STS на предъявителя; это просто кэш ранее использовавшихся маркеров STS. Когда проверяющая сторона впервые проверяет подлинность клиента с использованием маркера STS, клиент получает маркер безопасности сеанса, который он использует для проверки подлинности проверяющей стороной в последующих запросах. Данные при этом передаются по протоколу SSL, что исключает возможность кражи маркера безопасности сеанса. Если клиент или злоумышленник попытается пройти проверку подлинности, предъявив маркер STS, уже использовавшийся клиентом, проверяющая сторона найдет этот маркер в кэше повторов и отклонит запрос.
Наличие такого кэша не гарантирует, что маркер никогда нельзя будет использовать повторно. Он обеспечивает максимально возможную эффективность обнаружения атак в зависимости от размера кэша, срока действия маркера STS и частоты получения проверяющей стороной уникальных запросов на проверку подлинности. Настоятельно рекомендуется настроить размер кэша и срок действия маркера STS для проверяющей стороны так, чтобы добиться наилучшего баланса производительности и безопасности.
Примечание. |
---|
По умолчанию обнаружение повторов отключено. Его можно включить, присвоив свойству DetectReplayedTokens значение true. |