Curso Livre de Segurança de Sistemas/Tecnologia e Princípios de Segurança de Computadores/Autenticação de Usuário/Caderno Colaborativo

Fonte: Wikiversidade

A autenticação é a base da segurança em um sistema, autenticar é garantir que uma entidade é quem diz ser, sendo assim, é essencial sua existência e correto funcionamento.

Os mecanismos de autenticação podem ser classificados em três tipos:

  • Conhecimento: a autenticação é baseada em algo que a entidade conheça exclusivamente (ex. senha);
  • Propriedade: a autenticação é baseada em algo que a entidade possua exclusivamente (ex. chave ou token);
  • Característica: a autenticação é baseada em característica física, humana ou comportamental exclusiva (ex. biometria).


Autenticação baseada em senha

É uma das formas de autenticação mais utilizadas, sendo que um usuário possui seu identificador e uma senha própria. Através da validação do identificador e da senha, é possível determinar o que o usuário pode acessar no sistema e seus privilégios. Mesmo sendo um método muito utilizado, ainda há problemas, como ataques às contas, adivinhação de senhas, exploração de erros, entre outros, por isso é muito importante manter as senhas seguras e utilizar alguma forma de criptografia. Além das responsabilidades do servidor, é importante também que o usuário escolha senhas mais difíceis e nunca utilizar a mesma para diferentes contas.

Autenticação baseada em token[editar | editar código-fonte]

Token são objetos utilizados pelos usuários para autenticação, como cartões de crédito, cartão telefônico pré-pago e cartão de identificação biométrico. Os tipos de cartão mais utilizados são os cartões de memória e os smart tokens. Normalmente, os tokens de hardware são pequenos o suficiente para serem carregados no bolso ou na carteira e costumam ser projetados como porta-chaves. Alguns são projetados para armazenar chaves criptográficas, como uma assinatura eletrônica ou dados biométricos (por exemplo, detalhes de um padrão de impressão digital).

A vulnerabilidade mais simples de qualquer token é sua perda ou roubo. Tokens roubados são inúteis para um ladrão se a autenticação de dois fatores for usada. Normalmente, a autenticação requer a inserção de um número de identificação pessoal (PIN) junto com as informações no token.

Porém qualquer sistema que permite aos usuários se autenticar em uma rede não confiável (como a Internet) está vulnerável a um ataque man-in-the-middle. Ataque MITM é um termo em criptografia que denota uma situação em que um criptanalista (atacante) é capaz de ler e modificar à vontade as mensagens trocadas por correspondentes, e nenhum destes últimos pode adivinhar sobre sua presença no canal.

Cartões de memória[editar | editar código-fonte]

O maior exemplo é o cartão bancário com a fita magnética na parte traseira. Esse tipo de cartão tem a função de armazenar dados que podem ser lido por leitores. Eles só podem ser utilizados para acesso físico, como um quarto de hotel, mas podem ser utilizados para autenticação de usuário se utilizados em conjunto com alguma senha ou PIN. Essa categoria tem as seguintes desvantagens:

  • Requer uma leitora, aumentando os custos da utilização.
  • Caso o token seja perdido ou roubado, o usuário fica sem acesso ao sistema. Quem tem a nova posse desse token pode descobrir a senha ou PIN para conseguir se passar pela pessoa dentro do sistema.
  • O usuário pode achar incoveniente utilizar um token para acessar um computador.
Smart tokens[editar | editar código-fonte]

Existe uma gama de dispositivos que se enquadram como smart tokens. Cada um pode ser categorizado de acordo com três dimensões, tendo a possibilidade de ter mais de uma:

  • Caracterísitcas físicas: os smart tokens possuem um microprocessador embutido.
  • Interface: interfaces manuais possuem teclado e visor para a interação entre o usuário e o token. Smart tokens com interface eletrônica se comunicam com leitoras e gravadoras que são compatíveis com eles.
  • Protocolo de autenticação: os protocolos utilizadas com os smart tokens são divididos em três categorias:
    • Estático: o usuário se autentica com o token e o token autentica o usuário no computador.
    • Gerador dinâmico de senha: o token gera uma senha periodicamente e a mesma é passada para o sistema, que deve estar sincronizado com o token para saber qual é a senha atual.
    • Desafio/resposta: o sistema computacional gera um desafio e o smart token gera uma resposta a partir dele.

Na autenticação de usuário ao computador, a categoria mais imporante é o smart card, que é semelhante a um cartão de crédito, possui interface eletrônica e pode ser utilizado em qualquer protocolo de autenticação. Dentro dele, existe um microprocessador com memória (ROM, EEPROM e RAM) e portas de entrada/saída. Essas portas podem ser acessíveis por uma leitora através de contatos elétricos expostos ou com uma antena sem fio.

Autenticação biométrica[editar | editar código-fonte]

A abordagem biométrica pode ser reconhecimento de impressão digital, reconhecimento facial, reconhecimento de locutor ou uma combinação destes.

O sistema biométrico é um conjunto de tecnologia, na qual é possível realizar diversas tarefas, como captar, processar, armazenar, recuperar e comparar dados biológicos, tendo a finalidade de identificar e autenticar o individuo.

podemos então entender que, a biometria é uma autenticação ou uma identificação de um individuo pelas suas características biológicas físicas e comportamentais

Impressão Digital foi a primeira forma de identificação pessoal, isso porque cada pessoa tem uma digital, única, é impossível duas pessoas terem a mesma digital.

Segundo o blog Gestão de segurança [1] foi comprovado em 1892, por Francis Galton, inventou o primeiro sistema moderno de impressões digitais, no qual posteriormente foi adotados pelas politicas do mundo inteiro.

Autenticação através do reconhecimento de íris[editar | editar código-fonte]

Assim como diversos outros sistemas de autenticação biométricos, o método de autenticação por íris vem ganhando cada vez mais destaque por ser capaz de apresentar características únicas de cada pessoa. Uma vez capturada por uma câmera convencional, seu processo de autenticação, realiza uma comparação da íris da pessoa com a que está armazenada no banco de dados do sistema.

O motivo dela está sendo cada vez mais cogitada, vem pelos fatos das câmeras convencionais estarem com uma qualidade cada vez maior e da sua taxa de erro ser uma das mais baixas se comparada com outros métodos de autenticação. Isso faz com que essa tecnologia seja uma ótima posição para ser usada em sistemas que necessitam de uma segurança extremamente forte, como celulares e caixas eletrônicos. Tendo também outro ponto positivo, sua boa taxa de aceitação por parte dos usuários, por ser um método simples de ser utilizado.

Autenticação através do reconhecimento de fala[editar | editar código-fonte]

O reconhecimento de voz utiliza de análises da voz de uma pessoa para verificar sua identidade. As vias respiratórias e as cavidades dos tecidos moles, bem como a forma e o movimento da boca e da mandíbula, influenciam os padrões de voz para criar uma "impressão vocal" única.

Existem diferentes tipos de reconhecimento de voz, dentre eles, alguns utilizados para comunicação, usada em aplicativos de voz para texto e assistentes virtuais como Siri ou Alexa. Vale lembrar que os reconhecimento de voz utilizados para comunicação e funções de buscas, não consegue ser utilizada como recurso para autenticações, pois, o reconhecimento de fala pode dar sentido à linguagem verbal, mas não pode verificar a identidade do falante com base em seus atributos vocais únicos.

Existem duas abordagens principais para autenticação de voz:

  • Independente de texto: a autenticação de voz é realizada usando qualquer frase-senha falada ou outro conteúdo de fala.
  • Dependente de texto: As mesmas frases-senha são usadas na inscrição e para verificação. Isso significa que o locutor não pode dizer nada que gostaria de autenticar, mas será solicitado a falar uma frase predeterminada. Na autenticação de voz dependente de texto estático, a mesma frase secreta é usada para cada verificação. Na autenticação de voz dependente de texto dinâmica, uma frase secreta aleatória, como uma sequência numérica, é gerada para o usuário.

Uma amostra biométrica de voz deve ser capturada e registrada usando um microfone para criar um modelo de referência para comparar com as amostras para futuras tentativas de autenticação. As qualidades vocais únicas analisadas são, duração, intensidade, dinâmica e tom.

Autenticação de Usuário Remoto[editar | editar código-fonte]

O caso mais simples para uma autenticação é se ela for local, sendo remota a complexidade aumenta consideravelmente. Na Internet, em uma rede ou em um enlace de comunicações, a autenticação de usuários é necessária, e por sua complexidade, surgem ameaças adicionais ao sistema, como por exemplo captura de senhas por monitoração de rede, repetição de envios sequências de autênticação, entre outros. Com tudo isso, os sistemas precisam utlizar métodos adicionar para garantir a segurança do usuário. Protocolos de desafio/resposta são diversamente úteis para esse caso. A seguir veremos alguns desses protocolos.

Protocolo de Senha[editar | editar código-fonte]

Esse protocolo não armazena a senha, apenas o hash da senha em questão que é devolvida em uma função f com um valor aleatório também passado como argumento, de forma a fornecer proteção contra várias tipos de ataques possíveis, como por exemplo intrusos no sistema remoto tentando capturar informações do usuário, e ataques de repetição.

Protocolo de Token[editar | editar código-fonte]

Para a utilização do protocolo de token, é necessária que a identidade do usuário esteja no sistema remoto inicialmente, para então o sistema retornar um valor aleatório e indentificadores de função, no qual são para o retorno. Do lado do usuário, o token pode gerar um código de acesso estático ou aleatório. O código de acesso aleatório pode ser utilizado apenas uma vez, e deve estar sincronizado com sistema. Em ambos os códigos, o usuário ativa o código de acesso atrávez de uma senha, esta sendo compartilhada apenas pelo token e pelo usuário. Após o calculo de hash da função, o valor é retornado ao sistema e segue como o protocolo de senha.

Protocolo de Biometria Estática[editar | editar código-fonte]

No lado do usuário, encontra-se um sistema cliente para o controle do dispositivo biométrico, de forma a executar a leitura, verificar o gabarito biométrico e retornar o texto cifrado baseado na leitura biométrica do usuário. Dessa forma é necessário identificar o dispositivo biométrico em questão para próximas leituras. Com isso o sistema biométrico utiliza 3 parâmetros para recuperar a mensagem recebida, comparando com os valores locais do sistema, e caso haja correspondência igual ou acima do limiar definido, devolve as informações ao sistema remoto, e esse sistema armazena o ID do dispositivo recebido em algum banco de dados geralmente.

Protocolo de Biometria Dinâmica[editar | editar código-fonte]

A biometria dinâmica tem como sua principal característica, o fornecimento de uma sequência aleatória e um número aleatório como desafio, sendo este composto por um número, um caracter ou textos. Assim, o usuário pode utilizar a forma de verificação escrita, falante ou dinâmica do teclado, de forma a gerar um tipo de sinal biométrico. Com isso, o cliente cifra o sinal biométrico e o número aleatório e envia para o sistema remoto. Do lado sistema remoto, a mensagem é decifrada, o número aleatório utilizado deve ser exatamente igual ao número aleatório utilizado inicialmente. Então é gerado uma comparação com base no sinal biométrico recebido e comparado com o gabarito armazenado, de modo que, a comparação deve passar de um limiar predefinido para o usuário ser autenticado.

Questões de segurança para autenticação de usuários[editar | editar código-fonte]

Como ocorre com os serviços de segurança, a autenticação de usuário e em especial a autenticação de usuário remoto, são os que estão mais sujeitos a ataques de variados tipos. como ataques ao cliente, ataques a sistema, escuta, repetição, cavalo de troia e por fim ataques de negação de serviço, que serão abordados logo a seguir:

Ataques ao Cliente[editar | editar código-fonte]

Este tipo de ataque funciona da seguinte forma, o invasor tenta se passar pela sua pessoa a fim de poder ter acesso ao sistema, se utilizando da personificação como atributo principal para a realização deste tipo de ataque. Em casos de sistemas que possuem senha, o invasor, pode tentar adivinhar a mesma através de uma busca exaustiva, ou associativa através do estudo do cliente/usuário vitima.

Como medida provisória, pode ser inserido um sistema de chances que limitam a quantidade de tentativas que podem ser feitas ao tentar acessar o sistema, além, como medida aplicada pelo usuário, esta a imprevisibilidade na hora de criar uma senha, além de seu comprimento e uso de vários caracteres como números e letras maiúsculas, o que evita que qualquer associação e também dificulta o trabalho do invasor de ter acesso a estes dados.

Ataques ao Sistema[editar | editar código-fonte]

Este tipo de ataque, diz respeito a ataques em sistemas aonde há o armazenamento de dados vitais como os nomes de usuários, senhas e outros mecanismos de autenticação como a biometria, tendo em vista que esta deve estar atrelado a seu usuário por se tratar de um atributo relacional pessoal o que dificulta o processo de segurança deste tipo determinado de dado. No que diz respeito a sistemas de segurança que se utilizam de tokens, estes, possuem um tipo de defesa adicional relacionado a códigos de acesso de uso único, de modo que os códigos não são armazenados em um arquivo no sistema.

Escuta[editar | editar código-fonte]

Este tipo de ataque diz respeito a observação do usuário vitima a fim de tentar extrair a senha que este possui, seja por proximidade ou por espionagem, como sistemas ou hardwares de captação de digitação conhecidos como Keylogging, este tipo de ataque não surte efeito com sistemas que possuem mais de uma autenticação como token ou biometria, no caso do token, ainda há a possibilidade de copia ou roubo do token.

Repetição[editar | editar código-fonte]

Este tipo de ataque tem por objetivo repetir a resposta que a vitima/usuário deu, tal resposta fora captada anteriormente, a modo simples, sua contramedida esta voltada para o uso de protocolo de desafio/resposta.

Cavalo de Troia[editar | editar código-fonte]

Este tipo de ataque é quando um software ou hardware se passa pelo sistema original a fim de captar as informações que os usuários vão inserir, e logo após isso, fornecer elas para o invasor, como exemplo pratico, temos os falsos caixas eletrônicos.

Negação de serviços[editar | editar código-fonte]

Este ataque tem por objetivo inundar o sistema com inúmeras requisições, a fim de deixa-lo indisponível para os usuários, outra variação mais especifica, diz respeito a inundar o sistema apenas para um usuário/vitima, como contramedida, a utilização de tokens é de grande ajuda, tendo em vista que o invasor, deverá ter posse deste token antes de tentar realizar qualquer autenticação em grande escala.

Vulnerabilidade em Caixas Eletrônicos[editar | editar código-fonte]

Para podermos entender esse ocorrência, devemos entender alguns termos que serão usados:

  • Portador de Cartão ATM: uma pessoa que possuí um cartão, o qual é responsável pelas despesas do mesmo.
  • Emissora de Cartão ATM: uma instituição que emite os cartões para os seus respectivos portadores que gerencia a conta e as transações do mesmo.
  • Processadora: Organização que fornece serviços de processamento de dados, como reconhecimento de PIN, transferência de fundos, ou TEF, para as emissoras de cartão. O serviço de transferência de fundos fornecidos pela processadora permite que emissoras tenham acesso a redes regionais e nacionais que conectam-se aos caixas eletrônicos.

Para disponibilizar os serviços do caixa eletrônico para os clientes em qualquer horário, contratava-se processadoras para fornecer estes serviços, que por sua vez, utilizavam conexão dedicadas entre a processadora e a emissora. O fluxo de uma transação pode ser descrita como: Um portador de um cartão utiliza seu cartão na máquina e digita o PIN, então, o caixa eletrônico cifra-o e comunica-se à processadora para o envio o do PIN cifrado como um pedido de autorização. A processadora envia uma resposta após a atualização das informações do cliente.

Até 2013, os caixas eletrônicos se conectavam-se à processadora por meio da utilização de uma conexão dedicada, dificultando a interferência ou interceptação para agentes maliciosos externos. Além disso, utilizava-se o método de cifração DES para transmitir mensagens do caixa eletrônico para a processadora. Normalmente, as emissoras utilizavam redes LAN e utilizando o protocolo TCP/IP para conectar suas intranets a internet, era mais benéfico possuir uma linha dedicada com a processadora ao reduzir o custo de rede, e gerenciamento mais fácil dos caixas eletrônicos. Nessa nova topologia, os dados transferidos entre o caixa eletrônico e a processadora ficavam vulneráveis por interceptadores dentro da rede ou pela internet, que poderiam ver as informações transferidas em texto puro, com exceção do PIN que agora utilizava a técnica de cifragem tripo DES [2].

  1. MARCONDES, José Sérgio Marcondes, Biometria, Sistema Biométrico: o que é, Como funciona ?
  2. STALLINGS, William. BROWN, Lawrie. Segurança de Computadores. 2ed.