O que é Autenticação com base em token?
- Glossário do IAM
- O que é Autenticação com base em token?
A autenticação baseada em tokens é um protocolo de segurança que verifica a identidade de um usuário usando tokens criptografados. Com a autenticação baseada em tokens, os usuários se autenticam com um token válido para acessar servidores, aplicativos, sites ou uma Interface de Programação de Aplicativos (API). A autenticação baseada em tokens é um protocolo comum de autenticação de dois fatores (2FA) ou multifator (MFA), adicionando outra camada de segurança aos tradicionais nome de usuário e senha.
O que é um token?
Um token é a chave que autentica usuários durante o processo de login. Tokens podem ser digitais ou um dispositivo físico, como um cartão inteligente ou uma chave USB. Os tokens web, digitais e armazenados no dispositivo do usuário, são os grandes preferidos das organizações devido à sua comodidade e flexibilidade. Os tokens web eliminam a necessidade das pessoas carregarem tokens físicos e podem ser facilmente integrados em vários sistemas de software, oferecendo uma experiência de autenticação sem atritos.
Como funciona a autenticação baseada em tokens
Vamos conhecer as quatro etapas fundamentais da autenticação baseada em tokens.
Solicitação inicial: Um usuário solicitará acesso a um aplicativo específico inserindo seu nome de usuário e sua senha.
Verificação de usuários: As credenciais de login são enviadas para o sistema de autenticação para conferir se as credenciais do usuário estão corretas. Após a confirmação, ela verificará as permissões específicas que o usuário tem no sistema.
Validação de tokens: O sistema irá gerar e emitir para o usuário um token web que pode ser usado por um período limitado.
Armazenamento de tokens: O token é armazenado no dispositivo do usuário até que ele faça logoff, encerre a sessão ou o token expire.
Tipos de tokens de autenticação
Existem vários tipos de tokens digitais e cada um desempenha uma função crucial para garantir um processo de autenticação seguro e adequado. Vamos explorar cinco tipos comuns de tokens digitais e suas funções específicas na autenticação.
Token web JSON (JWT)
O token web JSON é um padrão aberto (RFC 7519) usado para trocar informações com segurança entre duas entidades: um servidor e um cliente. Os JWTs carregam informações sobre a identidade de um usuário e são assinados digitalmente para confirmar que os dados que contêm são legítimos. Um token web JSON é composto por três partes: cabeçalho, conteúdo e assinatura digital.
Cabeçalho: O cabeçalho contém informações sobre o JWT. Ele revela o tipo de token e o algoritmo usado para assiná-lo.
Conteúdo: O conteúdo possui as declarações sobre o usuário. Declarações são unidades com informações de identificação sobre uma entidade específica, geralmente um usuário. Os conteúdos podem incluir informações adicionais, como a expiração do token e as permissões do usuário.
Assinatura digital: A assinatura digital é uma chave criptográfica que verifica o cabeçalho e o conteúdo para garantir que a mensagem não foi alterada durante a transmissão, e certifica a identidade do usuário.
Tokens de acesso
Os tokens de acesso são o tipo mais comum de tokens web JSON. Esses tokens têm o objetivo de autorizar o acesso de usuários a um serviço específico. Depois que um usuário faz login com sucesso, um token de acesso com data de expiração é emitido para ele. O token de acesso concederá aos usuários acesso aos recursos e serviços designados para eles por um tempo limitado.
Tokens de ID
Diferente dos tokens de acesso, os tokens de ID não são usados principalmente para conceder acesso a recursos e aplicativos de uma rede. Em vez disso, os tokens de ID são tokens web JSON que contêm informações sobre o usuário, como um identificador exclusivo, nome e endereço de email, além do status de autenticação. Os tokens de ID são fornecidos a aplicativos clientes para verificar a identidade do usuário.
Tokens de atualização
Os tokens de atualização são tipos específicos de tokens web JSON usados para obter tokens de acesso adicionais sem exigir que o usuário insira novamente suas credenciais de login. O objetivo deles é estender a vida útil de um token de acesso para usuários através de renovação automática.
Tokens de API
Um token de API é uma sequência de códigos que corresponde ao usuário que solicita autenticação para uma API. Ele autentica a identidade do usuário e concede acesso a pontos de extremidade de APIs, permitindo que usuários autorizados interajam com os recursos da API de maneira segura.
Vantagens de usar a autenticação baseada em tokens
Veja três benefícios de usar a autenticação baseada em tokens.
Segurança: Como os tokens são projetados para ter uma vida útil curta, eles minimizam a janela para potenciais acessos não autorizados. Depois que um usuário encerra sua sessão no aplicativo, o token emitido expira. Isso limita o tempo disponível para agentes hostis poderem interceptar o token e comprometer uma conta.
Flexibilidade: A autenticação baseada em tokens pode ser usada em várias plataformas, como aplicativos web, aplicativos móveis e APIs. Isso cria uma experiência de autenticação fácil e também aumenta a acessibilidade para os usuários.
Escalabilidade: Como os tokens devem ser armazenados no dispositivo do usuário, os servidores não precisam manter a sessão dos usuários em um aplicativo. Isso permite que os servidores gerenciem várias solicitações com eficácia, enquanto geram tokens conforme necessário.
Desvantagens de usar a autenticação baseada em tokens
Veja as três principais desvantagens de usar a autenticação baseada em tokens.
Risco de chaves comprometidas: Uma ameaça comum associada à autenticação baseada em tokens é o potencial de comprometimento das chaves de tokens. Ataques cibernéticos como phishing, malwares, força bruta ou ataques man-in-the-middle (MITM) podem ser direcionados a essas chaves. A maioria dos sistemas de tokens web trabalha com uma única chave; portanto, se um cibercriminoso comprometer a chave, o sistema inteiro se torna vulnerável.
Vida útil curta: Devido à vida útil curta dos tokens, é importante observar que eles exigem gerenciamento consistente. Isso inclui garantir que os tokens tenham datas de expiração e renovar suas credenciais conforme necessário.
Tamanho do tokens: Os tokens podem ser grandes, especialmente se contiverem uma quantidade significativa de informações ou metadados de usuários. Devido à complexidade e ao tamanho de um token, ele pode aumentar a sobrecarga de rede em ambientes que têm internet com largura de banda limitada.