A 'cache' dos tokens do SAML é guardada em qualquer lado do navegador?
Cenário:
- o navegador (utilizador) solicita o recurso ao Fornecedor de Serviços (SP).
- redireccionamentos do SP (com pedido do SAML) para o fornecedor de identidade (IdP).
- Uma vez que é o primeiro login, o Utilizador dá ao (IdP) as suas credenciais válidas.
- o IdP então redireciona o navegador (com a resposta SAML que inclui o token SAML) para a página SP.
A. No Passo 4, o navegador guarda ou cache a resposta SAML e / ou SAML token?
B. Em caso afirmativo, que tipo de coisas (atributos? tempos livres? protocolos?) impedir-me de levar aquele símbolo SAML armazenado. Em seguida, lidar com isso para outro computador (com uma nova sessão) e usar esse token para Login para o mesmo SP?
4 answers
A resposta é "tipo de" cache. Em seu cenário, a resposta será enviada via POST para o Provedor de serviços a partir do navegador. Assim, o navegador pode "cache" os dados POST que contém a resposta SAML. Assim, assim como qualquer outro evento POST em navegadores, se o usuário fosse usar o botão back vezes suficientes depois de entrar no SP para voltar ao evento POST, os dados POST poderiam ser ressentidos para o SP.
Há algumas coisas que ajudam a evitar que a resposta seja desviada. -- utilização de HTTPS entre todas as partes
- controlo da aplicação do NotBefore & NotOnOrAfter atributos
- aplicação dos critérios de utilização única pelo PE (O PE deve assegurar que a resposta não seja reutilizada durante o seu período de validade. Se a mensagem for recebida fora da janela de validade, então o SP deve esquecer a mensagem)
O IDP armazena normalmente um cookie de sessão no navegador do cliente que identifica a sessão do SAML. O roubo deste cookie de sessão provavelmente não está mais protegido do que qualquer outro cookie de sessão.
A utilização de HTTPS na comunicação entre SP e IDP proporcionará uma grande protecção contra o sequestro de sessões.Para a pergunta a, provavelmente depende do navegador que você usa.
Para a pergunta B, existem vários mecanismos que impedem a resposta SAML de ser reutilizada:
- SubjectConfirmationData has attribute not before and Notonor after that specify the time frame that the SAML assertion is valid. Assim, a asserção de SAML não pode ser usada fora deste período de tempo.
- Os dados relativos às confirmações subjectivas têm um atributo em relação ao facto de especificarem o pedido SAML para o qual a afirmação SAML é emitida. Assim, a asserção SAML não pode ser usada para outro pedido SAML.
- O SP deve assegurar que a afirmação do SAML não seja reproduzida mantendo um conjunto de asserções do SAML usadas.
Pode ler os pontos 4.1.4.3 e 4.1.4.5 da especificação dos perfis SAML.
Eu conheço este velho, mas a resposta é sim o navegador armazena o Token SAML como um Cookie. (Tipicamente) você pode vê-lo na lista de Cookies do seu navegador, através de vários inspetores de tráfego/sessão como Fiddler, SAML Tracer em FF etc.