O que é a rotação de token de atualização e por que é importante?
Mergulhe e vamos falar sobre por que a rotação de token de atualização é uma maneira eficaz de proteger a segurança dos seus tokens de atualização.
O que é um token de atualização?
O token de atualização é um tipo especial de token usado para obter um novo token de acesso quando o token de acesso atual expira. Veja a nossa postagem anterior Compreendendo tokens no OIDC para saber mais.
Durante a introdução, mencionámos também que no Logto, para proteger a segurança do seu token de atualização, implementámos por defeito um mecanismo de “rotação de token de atualização”.
Mas o que exatamente é a “rotação de token de atualização”? Como isso beneficia os nossos utilizadores finais? Vamos mergulhar nisso!
O que é a rotação de token de atualização?
A rotação de token de atualização é um mecanismo que invalida o token de atualização anterior e emite um novo quando o token de atualização é usado para obter um novo token de acesso. Este mecanismo garante que o token de atualização seja renovado antes que expire.
Por que precisamos de rotação de token de atualização?
Os tokens de atualização têm uma vida útil prolongada, geralmente de semanas ou até meses. E como podemos obter novos tokens de acesso por meio do token de atualização, o token de atualização também se torna um alvo atraente para atacantes. Por isso, de acordo com o OAuth 2.0 BCP, o servidor de autorização deve adotar uma das seguintes medidas para prevenir tais ataques.
- Emitir tokens de atualização vinculados ao remetente: o cliente assina e fornece uma assinatura (
Sec-Token-Binding
) no cabeçalho da solicitação de atualização, de modo que o token de atualização emitido seja criptograficamente vinculado a um cliente específico. No entanto, apenas alguns dos clientes nativos são atualmente vinculados ao remetente, e a maioria dos SPAs modernos e clientes móveis são públicos. - Rotação de token de atualização: o servidor de autorização emite um novo token de atualização (geralmente ao trocar por um novo token de acesso) e invalida o anterior. Isso mitiga o risco de vazamento de token.
Melhores práticas para implementar rotação de token de atualização
No Logto, quando um utilizador entra com sucesso, um objeto Grant
será criado primeiro no BD e o token de atualização subsequente terá uma referência grantId
e apontará para o primeiro objeto Grant.
Sempre que ocorre uma rotação de token de atualização, o token de atualização anterior será marcado como consumido, e o servidor de autorização Logto emitirá um novo token de atualização com o mesmo grantId
.
Vamos supor que o token de atualização anterior tenha sido vazado, então ou o cliente legítimo ou o atacante teria usado para trocar um token de acesso. E não importa quem fez isso, o token de atualização vazado já deve ter sido rotacionado e marcado como consumido. Aquele que usou o token de atualização consumido em segundo lugar informará o servidor de autorização sobre a violação. O servidor de autorização revogará todos os tokens de atualização com o mesmo grantId
.
No caso acima, após acionar o alarme, o cliente legítimo só pode reautenticar-se através do processo de login novamente para obter um novo token de atualização. O atacante, por outro lado, perderá o controlo do seu sistema e ficará bloqueado.
Quando ocorre a rotação de token de atualização?
No Logto, o comportamento padrão de uma rotação de token de atualização define:
- Se o cliente for vinculado ao remetente ou não público (por exemplo, aplicações web de renderização no lado do servidor), então a rotação de token de atualização ocorre quando atinge 70% do seu tempo de vida total (TTL).
- Se o cliente for um cliente público (por exemplo, aplicações web de página única), a rotação de token de atualização ocorre sempre que ele é usado para trocar por um token de acesso. A resposta da troca de token retornará tanto um novo token de acesso quanto um novo token de atualização.
Como posso ativar/desativar a rotação de token de atualização no Logto?
No console de administração do Logto, vá a Admin Console > Applications e selecione a aplicação que gostaria de alternar a rotação de token de atualização. Na página de detalhes da aplicação, vá ao separador “Configurações avançadas”, e desça até ao fundo, lá encontrará a opção juntamente com algumas outras configurações úteis.
Se desligar a opção, o seu token de atualização nunca será rotacionado até que expire. Portanto, recomendamos fortemente que sempre ative a rotação de token de atualização.
Recapitulação: O que é a rotação de token de atualização e por que é importante?
A rotação de token de atualização é uma prática recomendada que garante a segurança do token de atualização na sua aplicação. Invalida o token de atualização anterior e emite um novo quando o token de atualização é usado para obter um novo token de acesso. Este mecanismo mitiga o risco de vazamento de token e garante a segurança do seu token de atualização.
O Logto segue práticas recomendadas líderes do setor e sempre coloca a segurança do utilizador como a maior prioridade.
Espero que este blog explique bem suas dúvidas sobre o mecanismo de rotação de token de atualização. Deixe-nos saber se ainda há algo que não esteja claro. Seu feedback e sugestões são sempre bem-vindos!
Experimente o Logto hoje e abrace uma experiência de autenticação mais segura.