Por que a Autenticação e a Autorização são tão complicados?
novembro 8, 2021 novembro 8, 2021 by filipefreitasclavis
Digamos que você tenha a tarefa de selecionar uma solução de autenticação forte para sua organização. Por onde você começa? Esta nota pretende fornecer uma introdução, bem como indicar links para recursos adicionais.
A maioria das pessoas assume que as senhas devem ser suportadas como um mecanismo básico de autenticação, já que estamos acostumados a usá-las. O CIS produziu orientações sobre a utilização de senhas fortes. Espera-se que os usuários de alguma forma memorizem ou armazenem a grande quantidade de senhas que utilizam. O problema é que as senhas são vulneráveis ​​a diversos ataques como o de roubo de credenciais contra o usuário (por exemplo, phishing, keylogging) ou por força bruta após a obtenção de credenciais em massa de um servidor.
Quando utilizamos a senha como fator de autenticação, estamos empregando um nível fraco de segurança. Em termos gerais, os processos e mecanismos de autenticação podem ser realizados utilizando basicamente três fatores como: 1) o que nós sabemos – uma senha, perguntas pessoais, etc.; 2) o que nós temos – um cartão, token, etc.; e, 3) e o que nós somos – biometria. Ao se utilizar mais de um fator, soluções chamadas de autenticação multifator (MFA), estamos agregando segurança e teremos um mecanismo de autenticação forte. Cada caso é único e merece a devida atenção. Saber selecionar bem o mecanismo de autenticação que melhor atenda aos parâmetros da gestão de risco do negócio, dentre outros aspectos, deve ser prioridade para todos. Logicamente, após a verificação da identidade e autenticação, será fornecida a autorização conforme o modelo implementado.
As soluções de autenticação multifator (MFA) costumam ser consideradas para fornecer um nível mais alto de proteção contra ataques. Existem inúmeras soluções à sua escolha. Por exemplo: MFA pode ser uma senha de uso único projetada para um produto proprietário, biometria ou hardware que armazena uma chave privada. Existem também soluções que reforçam a segurança em comparação com as senhas sozinhas, mas não são consideradas MFA, incluindo autenticação baseada em risco e baseada em conhecimento. A autenticação baseada em risco avalia os comportamentos ou a localização do usuário, enquanto a autenticação baseada no conhecimento faz perguntas ao usuário que incluem pistas falsas para auxiliar na verificação de identidade. Ao selecionar uma solução MFA, você deve avaliar se o roubo de credencial é ou não possível e a redução de risco fornecida por um tipo específico de autenticação ou solução específica.
Agora, digamos que você tenha a tarefa de selecionar os mecanismos de autenticação que um aplicativo deve suportar. Por onde você começa? Você pode pesquisar aplicativos relacionados para determinar o que é compatível ou pesquisar sua base de usuários para determinar se uma solução de autenticação multifatorial (MFA) específica é predominante. Há uma ampla gama de tecnologias subjacentes possíveis que podem ser suportadas quando você considera a MFA.
Aqui está um exemplo de tecnologias e protocolos de autenticação que você pode considerar ao explorar o MFA.
Recursos mencionados nesta tabela:
Depois de selecionar o tipo de autenticação compatível, você também pode precisar escolher uma implementação específica, se não for um padrão. Isso potencialmente complica o ambiente do usuário final se não for compatível com os outros aplicativos em uso. Este guia da National Security Agency (NSA) categoriza soluções específicas de MFA nos critérios de avaliação dos documentos de autenticação 800-63 do National Institute of Standards and Technology (NIST) e é um recurso muito útil para compreender a força de cada solução. Se você estiver menos familiarizado com o gerenciamento de identidade e tudo o que ele abrange, a documentação do NIST é um excelente recurso para aprender mais sobre esse complexo conjunto de tecnologias.
Por que temos tantas opções?
A tecnologia de autenticação evoluiu por vários motivos, desde melhorar a segurança até atender a casos de uso específicos. Com essa enxurrada de tecnologias é difícil para alguém novo na área ter de selecionar um ou mais protocolos de autenticação existentes para oferecer suporte. Além disso, pode ser necessário oferecer suporte a um ou mais protocolos de autorização, agora que você tem o que é necessário para fazer uma declaração de autenticação.
Os tokens de autorização, como os tokens Kerberos, SAML ou OAuth, são usados ​​predominantemente depois que a autenticação ocorre. Existem opções adicionais, mas para simplificar, vamos mantê-lo com esses protocolos de autorização que são muito populares.
Como posso evitar ataques de roubo de credencial?
Há uma opção de se afastar dos tipos de autenticação que podem estar sujeitos a roubo de credencial e ataques de repetição, o que ajudaria a reduzir os possíveis impactos dos ataques de phishing. Os tipos de autenticação multifatorial incluídos na tabela (PKI, WebAuthN e OTP) atendem a esse objetivo e há algumas diferenças a serem consideradas ao selecionar um ou mais para suporte em sua organização ou produto. Os modelos de par de chaves pública/privada de PKI e WebAuthn evitam o roubo de credenciais e são mais fortes quando o armazenamento de chaves é externo ao dispositivo.
As soluções de OTP são muito populares e a integração do ponto de vista do usuário foi simplificada com o uso de armazenamentos de senhas vinculados a uma solução de OTP do usuário. O OTP ajuda a evitar a reprodução bem-sucedida de senhas mesmo quando estão em uso, uma vez que o código OTP também é necessário. Conforme mencionado na tabela, os códigos OTP podem ser phishing. Mesmo com isso em mente, o OTP oferece uma melhoria significativa em seu nível de proteção apenas com uma senha.
PKI e WebAuthN evitam o roubo de credenciais, pois a chave privada do usuário criptografa os dados, fornecendo uma assinatura que demonstra que o usuário de posse dessa chave é o único que poderia ter assinado (criptografado) os dados. O processo é mais complexo, mas esta explicação básica ajuda a ilustrar por que os pares de chaves pública/privada fornecem uma boa solução para evitar o roubo de credenciais.
A chave nunca é exposta quando usada em um autenticador baseado em hardware. Um desafio ou dados são "assinados" no autenticador baseado em hardware e os dados assinados são exclusivos para cada tentativa de autenticação. O usuário pode ser verificado porque a chave pública correspondente pode ser usada para descriptografar os dados para verificar a assinatura, comparando os dados de desafio e garantindo que eles correspondam ao original (os dados de desafio são novos para cada tentativa de autenticação).
A PKI pode ser difícil e complicada de implantar e requer uma sobrecarga significativa de gerenciamento se executada em mais do que um nível de garantia básico. A PKI está bem integrada na web e em outros aplicativos, pois as bibliotecas de criptografia de suporte há muito fornecem suporte para esse tipo de autenticação.
A necessidade de novas opções que forneçam proteção contra roubo de credenciais era clara, assim como facilitar as considerações de gerenciamento com uma solução de chave pública / privada. Como tal, uma tecnologia do W3C, chamada WebAuthN, evoluiu de um padrão de aliança FIDO e usa pares de chave pública / privada brutos para autenticação. Outro aspecto interessante do WebAuthn é que pares de chaves individuais são gerados para cada usuário e aplicativo. Isso reduz parte da carga de infraestrutura associada à PKI, ao mesmo tempo que evita o roubo de credenciais. O suporte a navegadores e dispositivos móveis é forte para WebAuthN e o suporte do lado do servidor está aumentando, mas pode representar um desafio de integração para alguns aplicativos. Esta é uma opção interessante, pois o par de chaves é individual para cada usuário e aplicativo. Como resultado, o dispositivo do usuário para armazenar pares de chaves pode ser independente do aplicativo e o dispositivo gerencia quais pares de chaves devem ser usados ​​para cada autenticação de aplicativo. Como resultado, o servidor ou aplicativo também gerencia cada credencial de usuário individualmente. Uma mudança em um aplicativo pode não afetar os outros aplicativos.
Série de autenticação e autorização:
A autenticação e a autorização são fundamentais para qualquer programa de segurança, conforme observamos no CIS Critical Security Controls v8, especificamente em Controles 5: Gerenciamento de Contas; e, Controle 6: Gerenciamento de Controle de Acesso. Esses controles abordam os princípios de confiança zero do NIST SP 800-207, na proteção do acesso a um recurso empresarial individual concedido em uma base por sessão (princípio 3) e a aplicação estrita de autenticação dinâmica e autorização para todos os recursos (princípio 6).
A autenticação e a autorização são tecnologias complexas, que por si só criam um obstáculo para as organizações que buscam soluções de autenticação mais fortes. A ideia deste post é dividir as questões-chave e apontar para recursos sólidos do setor que, idealmente, são independentes do fornecedor. Em breve traremos novos posts sobre este tema.
Posts relacionados: CIS Controls v8 – A versão mais recente está agora disponível para download / CIS – Cumprindo sua responsabilidade de segurança compartilhada no AWS e Mapeando seu caminho à conformidade com estruturas de segurança cibernética