Prévia do material em texto
CARLOS HENRIQUE DO NASCIMENTO C66811 7 Atenticação HTTP – Digest O que é. A autenticação Digest é um esquema de desafio / resposta que substitui a autenticação básica. O servidor envia uma cadeia de caracteres dos dados aleatórios chamados umnonce ao cliente como um desafio. O cliente responde com um hash que inclui o nome de usuário, senha e nonce entre informações adicionais. A complexidade que apresenta este exchange e o hash de dados tornar mais difícil roubar e reutilizar as credenciais do usuário com esse esquema de autenticação. A autenticação Digest requer o uso de contas de domínio do Windows. O resumo de realmé o nome de domínio do Windows. Portanto, você não pode usar um servidor em execução em um sistema operacional que não oferece suporte a domínios do Windows, como o Windows XP Home Edition, com a autenticação Digest. Por outro lado, quando o cliente é executado em um sistema operacional que não oferece suporte a domínios do Windows, uma conta de domínio deve ser explicitamente especificada durante a autenticação. Caracteristicas Navegadores: Chrome Firefox Safari IE a partir do 10 Algoritmos Suportados: Digest MD5 SHA-1 SHA-256 Código de Autenticação de Mensagem (MAC) HMAC / MD5 HMAC / SHA-1 HMAC / SHA-256 Função de Derivação de Chave Baseada em Senha (PBKDF) PBKDF1 / SHA1 PBKDF1 / MD5 PBKDF2 / HMAC / SHA1 PBKDF2 / HMAC / SHA-256 Vantagens A autenticação digest HTTP foi projetada para ser mais segura do que os esquemas tradicionais de autenticação digest, por exemplo, "significativamente mais forte que (por exemplo, CRAM-MD5 ..." ( RFC 2617 ). Algumas das forças de segurança da autenticação de resumo HTTP são: A senha não é enviada para o servidor, evitando ataques de phishing se o usuário for induzido a acessar o site errado. A senha não é usada diretamente no resumo, mas sim HA1 = MD5 (username: realm: password). Isso permite que algumas implementações (por exemplo, JBoss [4] ) armazenem HA1 em vez da senha em texto puro. O cliente nonce foi introduzido no 2617, que permite ao cliente impedir escolhidos, como tabelas de arco-íris que poderiam, de outra forma, ameaçar os sistemas de autenticação digest. O nonce do servidor tem permissão para conter registros de data e hora. Portanto, o servidor pode inspecionar atributos nonce enviados por clientes, para evitar ataques de repetição O servidor também pode manter uma lista de valores de nonce de servidor emitidos ou usados recentemente para evitar a reutilização. Desvantagens A autenticação de acesso digest é planejada como um compromisso de segurança. Destina-se a substituir a autenticação de acesso básico HTTP não criptografada. Não é, no entanto, destinado a substituir protocolos de autenticação fortes, como a autenticação de chave pública ou Kerberos. Em termos de segurança, existem várias desvantagens na autenticação de acesso digest: Muitas das opções de segurança no RFC 2617 são opcionais. Se a qualidade de proteção (qop) não for especificada pelo servidor, o cliente operará em um modo RFC 2069legado com segurança reduzida. A autenticação digest é vulnerável a um). Por exemplo, um invasor MITM poderia dizer aos clientes para usar a autenticação de acesso básico ou o modo de autenticação de acesso de compilação legado RFC2069. Para estender isso ainda mais, a autenticação de acesso digest não fornece nenhum mecanismo para os clientes verificarem a identidade do servidor Alguns servidores exigem que as senhas sejam armazenadas usando criptografia reversível. No entanto, é possível armazenar o valor digitado do nome de usuário, domínio e senha. Ele impede o uso de um hash de senha forte (como bcrypt) ao armazenar senhas (já que a senha, o nome de usuário, a região e a senha digeridos devem ser recuperáveis) Além disso, como o algoritmo MD5 não é permitido no FIPS, a autenticação do HTTP Digest não funcionará com os módulos de criptografia certificados pelo FIPS Aplicação Instalação Nó npm install digest-js e depois Digest = require ( ' digest-js ' ) ; Navegador < script type = " text / javascript " src = " caminho / para / digest.min.js " > < / script > Compilação digest.js está usando npm e grunt Instale o Grunt Install npm -g grunt-cli Baixe dependências npm install Construa a biblioteca grunt Uso da API Digest Inicializar um objeto de resumo var dg = New Digest.SHA1 ( ) ; Atualize alguns dados var data = new ArrayBuffer ( 3 ) ; var buf = new Uint8Array ( data ) ; buf [ 0 ] = 0x61 ; / * a * / buf [ 1 ] = 0x62 ; / * b * / buf [ 2 ] = 0x63 ; / * c * / dg . update ( data ) ; Finalizar var result = dg . finalize ( ) ; Também é possível digerir alguns dados de uma só vez: var dg = New Digest.SHA1 ( ) ; var result = dg . digest ( " abc " ) ; https://en.wikipedia.org/wiki/Digest_access_authentication https://docs.microsoft.com/pt-br/dotnet/framework/wcf/feature-details/understanding-http-authentication https://technet.microsoft.com/ptbr/Library/cc441713.aspx#BKMK_DigestandWDigestauthentication https://www.npmjs.com/package/digest-js