Ao configurar plataformas digitais, deve ser assegurado, entre outras coisas, que as informações do usuário podem ser trocadas de forma segura e fácil. É assim que funciona.
As plataformas comerciais permitem que vários atores fechem negócios, iniciem processos operacionais e mediem serviços de negócios entre os participantes. Mas recomenda-se cautela ao configurar essas plataformas: não apenas no contexto do GDPR, a segurança e a economia de dados devem ser levadas em consideração como aspectos centrais na arquitetura da plataforma. Quais tecnologias são adequadas para federalizar dados de login e informações de perfil sem coletar perfis de usuário essenciais para a segurança?
Vamos dar uma olhada no OAuth primeiro. No mundo moderno das mídias sociais, cada um de nós usa dezenas de aplicativos e sites todos os dias. Para não ter que criar constantemente um novo perfil para cada provedor individual, o protocolo de autorização OAuth foi desenvolvido por iniciativa do Facebook e Twitter desde 2012. Ele descreve como serviços previamente conhecidos mutuamente podem acessar com segurança seus recursos em nome de seus usuários, sem compartilhar as informações de login específicas. Desta forma, uma conta que já foi criada (por exemplo no Facebook ou Google) pode ser usada para fazer login em outros serviços sem revelar sua senha ou endereço de e-mail. Em termos gerais, o OAuth funciona da seguinte maneira.
Vamos supor que Melanie deseja se registrar no Aliexpress e seleciona “Inscrever-se no Google” como uma das opções oferecidas:
- O Aliexpress cria uma URL para o serviço de registro do Google, que contém as áreas de perfil desejadas (escopos) exigidas pelo perfil de Melanie e redireciona o navegador de Melanie para esta URL.
- O Google reconhece que o pedido vem do Aliexpress e informa Melanie quais informações e serviços do Google o Aliexpress poderá usar se ela concordar.
- Melanie dá permissão ao Google para liberar os dados dos escopos desejados para o Aliexpress.
- A API do Google envia um token de concessão única para o Aliexpress, que o serviço responde com um segredo negociado entre ele e o Google para poder identificar o Aliexpress de forma exclusiva.
- O Google responde com um token de acesso que representa a autenticação e as aprovações de Melanie.
- O Aliexpress transmite os tokens de acesso de Melanie para uma das APIs do Google autorizadas para cada solicitação.
- A API do Google verifica a validade do token e entrega os dados solicitados ao Aliexpress.
O protocolo OAuth pavimentou o caminho para protocolos de autenticação e login federalizados. No entanto, sofre com a forte correlação de metadados: o Google aprende muito sobre a relação de informações entre Aliexpress e Melanie. Além disso, o método depende muito da disponibilidade e boa vontade por parte do Google e requer que os clientes possam manter tokens e segredos específicos de serviço para si próprios e familiarizar-se ativamente antes de usar o método.
JSON Web Token (JWT) tem sido uma especificação baseada em JSON para tokens de segurança por vários anos, cuja integridade é garantida por meio de assinaturas criptográficas. O JWT contém todas as informações de autenticação e autorização de uma entidade que são relevantes para um caso de uso. Isso elimina a necessidade de consultar bancos de dados para determinar autorizações ou salvar dados da sessão no servidor (“sessão sem estado”).
Como resultado, os tokens da web JSON se tornaram particularmente populares para autenticação em ambientes de sistema distribuído. Após a identificação bem-sucedida, um servidor de autenticação emite ao usuário um JWT com informações de autorização e, se necessário, características pessoais e o assina com um par de chaves, cuja chave pública ele pode divulgar para outros servidores de aplicativos. Assim que alguém apresenta a eles um JWT como um recurso de autenticação, os servidores de aplicativos podem verificar a assinatura para garantir que as informações do token realmente vêm de um servidor de autenticação em que eles confiam.
JWT são ideais para autenticação de usuário em ambientes de microsserviço. Ao contrário das arquiteturas back-end monolíticas, elas não podem compartilhar um estado de sessão. Para autenticar uma solicitação e provar suas autorizações, tudo o que eles precisam é ter conhecimento de um certificado acessível ao público com o qual possam verificar a assinatura do JWT. Os serviços de registro também podem usar isso para fornecer autorizações para sistemas de terceiros.
Como os JWT são recursos de autenticação autossuficiente, sua segurança depende principalmente de seus usuários mantê-los em segredo e não serem interceptados em trânsito. Portanto, eles geralmente são fornecidos apenas com datas de expiração de curto prazo e devem ser regularmente renovados por seus usuários com a ajuda de tokens de atualização que são usados exclusivamente para este aplicativo.
Também interessante: Olá Token, adeus senha! O GitHub está definido para se tornar mais seguro em 2021
Embora OAuth e JWT representem o padrão atual para segurança de plataforma, eles ainda sofrem com o fato de serem baseados em um processo de autenticação central e confiança federalizada. No futuro, eles serão, portanto, substituídos pelas chamadas identidades auto-soberanas (SSI). Em geral, SSI significa que as pessoas gerenciam sua identidade digital de forma totalmente independente (por exemplo, na forma de uma carteira em um dispositivo móvel) e não dependem mais de um provedor de serviços de identidade central. Em vez de trocar combinações de e-mail / senha, a autenticação ocorre por meio de prova de controle de um denominado identificador descentralizado (DID) por meio de assinaturas digitais. Dependendo do aplicativo, um usuário pode usar vários DIDs para diferentes aspectos de sua identidade digital. DID representa essencialmente uma coleção de chaves que podem ser resolvidas em sistemas acessíveis ao público. Normalmente, eles não são mantidos em um silo de informações, como um serviço de autenticação federado do Google, mas são resolvidos para a versão atualmente válida com a ajuda de sistemas descentralizados e sem confiança, como blockchains. As autorizações são emitidas usando as chamadas credenciais verificáveis via DID. Por sua vez, eles podem ser apresentados como JWT. Sua legitimidade pode ser verificada por um sistema de terceiros usando as chaves públicas armazenadas em um documento DID pelo emissor e pelo assunto da autenticação.
A busca por formas e tecnologias para trocar de forma segura e fácil informações de usuários em plataformas está longe de terminar. Embora os atuais procedimentos de autenticação federalizada e gerenciamento de direitos tenham consequências problemáticas para a segurança, a correlação e a proteção de dados, as identidades controladas de forma autossoberana confrontam seus usuários com a responsabilidade de manter seus próprios segredos. Os serviços de confiança descentralizados do mundo das tecnologias de razão distribuída resolvem a ancoragem e a proteção de identificadores públicos, mas levantam novas questões sobre rastreabilidade e usabilidade e são difíceis de induzir a interoperar entre si. O objetivo de se registrar em qualquer sistema com uma carteira de identidade emitida por conta própria e certificada pelo estado, sem publicar todo o histórico de registro, ainda está à nossa frente. Até lá, no entanto, os profanos servidores de perfil e registro de polvos de dados federalizados poderiam finalmente ser desligados.