Carregando...
Segurança de Sistemas

Autenticação e seus diferentes tipos

Como um sistema/software consegue diferenciar um usuário de outro? Como ele sabe que a última solicitação veio através de ciclano ao invés de beltrano?

Diferencia-se um usuário de outro através de um Mecanismo de Autenticação.

Não confunda autenticação com autorização, são coisas diferentes!

Quais as formas principais de autenticação/identificação de um usuário?

  • Login e Senha
  • Token
  • Chave Pública / Privada

Autenticação baseada em Login e Senha

É um dos tipos de autenticação mais simples. A cada vez que um recurso é solicitado envia-se o login e a senha do usuário ou conta utilizada.

Autenticação baseada em Token

  • Envio de Tokens diretamente na requisição
  • Envio de Tokens via Cookies

Que formato tem os Tokens?

  • Um conjunto de caracteres aleatórios
  • Um número identificador
  • Um conjunto de caracteres aparentemente aleatórios mas codificados (JWT é um exemplo)
  • Um conjunto de caracteres aparentemente aleatórios mas encriptados (JWC é um exemplo)

Statefulness vs Statelessness

Quais as diferenças entre tokens stateful e tokens stateless?

Um token stateless não precisa ser validado em um banco de dados. Sua validade pode ser verificada no próprio software (back-end) que o recebeu, através apenas da aplicação de um algoritmo criptográfico juntamente com o conhecimento de uma chave pública (criptografia assimétrica) ou uma chave secreta (criptografia simétrica). O diferencial é que não há necessidade acessar serviços externos (banco de dados ou outras APIs) para garantir que ele é verdadeiro, apenas uma chave armazenada localmente basta. Um exemplo disso é a autenticação baseada em JWT stateless.

Um token stateful, em contrapartida, precisa ser verificado (geralmente em um banco de dados em memória RAM) antes de ser aceito como verdadeiro. O token stateful geralmente contem um id, uma referência para algo que identifica uma conta, que ainda precisa ser validada por outro software. Um exemplo disso é a autenticação tradicional baseada em sessão.

Autenticação baseada em Chave Pública

Certificate Based Authentication usando x.509

Pode ser utilizada em navegadores e browsers!

Certificate Based Authentication usando PGP ou OpenPGP

É utilizada em e-mails.

Autenticação de chave pública/privada do SSH

Utilizada amplamente para acesso remoto via SSH sem utilização de senha.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *