Transcript Kerberos

KERBEROS
Luiz Antonio Dias Moreira
Rodrigo dos Santos de Oliveira
Luciano Carlos Thomaz Coelho
Juliana Oliveira Parmanhani
Anderson Pinto Ramalho
O QUE É O KERBEROS?
É um protocolo de redes desenvolvido pelo MIT
(Massachusetts Institute of Technology).
 Tem por objetivo prover uma autenticação forte
através da utilização de criptografia simétrica.
 O objetivo do Kerberos é justamente solucionar
problemas de segurança, sem trazer restrições
indevidas.
 Utiliza uma criptografia forte, que não permite a
interceptação de senhas por terceiros,
autenticando usuários e serviços, e transmitindo
todos os dados criptografados, de forma a
assegurar a privacidade e integridade dos dados.

PRINCIPAIS REQUISITOS DO KERBEROS
A segurança: evita a espionagem ou modificação
dos dados.
 A confiabilidade: que diz respeito a questão da
mútua autenticação.
 A escalabilidade: que refere-se ao fato de que
deve ser um sistema capaz de funcionar tanto
com redes pequenas quanto com redes muito
grandes.
 A transparência: as operações ocorrem
automaticamente, ou seja, sem que o usuário
precise tomar parte ou conhecimento em todos os
momentos.

VANTAGENS
O Kerberos foi desenvolvido para solucionar
problemas, oferecendo soluções práticas e
inteligentes.
 Seu código é aberto.
 Trabalha com distribuição de ticket.
 É mais vantajoso para os servidores - não
precisam se conectar a um controlador de
domínio para identificar o usuário, bastando,
apenas, verificar o ticket apresentado pelo
cliente.

VANTAGENS
Permite a mútua autenticação, ou seja, o cliente
se identifica para o servidor, e o servidor também
precisa se identificar para o cliente, com o seu
próprio ticket de serviço.
 Todas as operações são feitas de forma
transparente, bastando digitar a senha uma
única vez.
 Existe a opção enviar todos os dados
criptografados, o que representa mais uma
vantagem dentro da área de segurança.

MÓDULOS DO KERBEROS
Biblioteca de aplicações - Gera a interface para as
aplicações com cliente e com servidores.
 Biblioteca de criptografia - Baseada
principalmente no DES (Data Encryption
Standard). Pode ser substituída por outras que
realizem a criptografia por algum outro algoritmo
criptográfico (Triple DES, AES, RC4 e Arcfour).
 Biblioteca para a base de dados - Por padrão,
utiliza-se o ndbm, embora outras bibliotecas
também possam ser usadas.

MÓDULOS DO KERBEROS


Base de dados para os programas do
administrador - A base de dados do Kerberos
precisa conter um registro para cada Principal.
Esses registros devem conter os campos nome,
chave privada, data de expiração do Principal, e
algumas informações administrativas
Servidor do Administrador - provê uma interface
na rede de leitura e escrita entre o cliente e a
base de dados.
MÓDULOS DO KERBEROS
Servidor para autenticação - faz a autenticação
dos usuários, tendo permissão apenas de leitura
da base de dados. Além disso, ele gera as chaves
de sessão, que serão entregues a dois clientes que
desejam se comunicar.
 Software para propagação da base de dados - Vai
fazer a atualização entre a base de dados do
servidor master e os slaves que abrigam os
servidores Kerberos , periodicamente.
 Programas para os usuários - Programas para
fazer o login, trocar de senha, entre outros.

PRINCIPAL




É uma entidade única para a qual o Kerberos
pode emitir os tickets.
Identifica cada cliente, servidor e serviço dentro
do Kerberos.
O principal é constituído de três partes, dispostas
como primary/instance@REALM.
primary é o campo que possui o nome do usuário
ou do tipo de serviço.
PRINCIPAL


instance possui informações adicionais sobre o
primary.
dois principals podem ter senhas e permissões
diferentes.
Exemplo: Usuário comum: [email protected]
Administrador: joao/[email protected]

Para um host, esse campo deve trazer uma
qualificação completa da máquina que está
oferecendo o serviço
Exemplo: ‘host/[email protected]’

realm costuma ser denominado pelo nome do
domínio em caixa alta.
TICKETS

Os tickets são como credenciais para o Kerberos.
Eles possuem um grupo de informações
eletrônicas que permitem verificar a identidade
do cliente, e dão autorização ao cliente para o uso
de determinadas áreas as quais ele tem direito a
acessar. Esses tickets podem ser guardados em
um arquivo, ou ainda existir apenas na memória.
ESTRUTURA DE UM TICKET

Um ticket é formado por campos específicos: o
nome do servidor, o nome do cliente, o endereço
do cliente, a estampa de tempo, e uma chave de
sessão randômica.
PROPRIEDADES DO TICKET

Forwardable Ticket

Proxiable Ticket

Proxy Ticket

Postdated Ticket

Renewable Ticket

Anonymous Ticket
OBTENDO UM TICKET INICIAL
Para utilizar o Kerberos o cliente precisa se
autenticar.
 cliente envia um pedido ao KDC, também
chamado de Ticket Granting Server (TGS)
contendo o seu nome e um pedido de serviço com
o nome de ticket-granting service .
 O servidor de autenticação cria uma chave de
sessão e um TGT e criptografa tudo isso com a
senha do cliente.
 KDC envia o TGT para quem o requisitou.

ESTRUTURA DO TGT
BASE DE DADOS
A base de dados do Kerberos é composta pelas
chaves dos usuários e pelas chaves de cada
serviço em cada servidor. Elas serão usadas, pelo
TGS para fazer toda a troca de tickets e chaves de
sessão. O arquivo onde são guardadas essas
chaves é chamado de ‘keytab’. Esse arquivo
guarda esses valores associados aos seus
principals.
 Cada domínio administrativo, ou realm, possui
sua própria base de dados, contendo as
informações sobre os usuários e serviços.

SERVIDOR KDBM
O KDBM, além de atender a requisições
administrativas, o que pode ser, por exemplo, a
adição de um novo principal, também deve
realizar serviços como a mudança de senha,
utilizando respectivamente os programas
‘kadmin’ e ‘kpasswd’.
 Para realizar operações como essas, o ticket a ser
utilizado não deve ser obtido com o TGS, mas com
o servidor de autenticação, para obrigar o usuário
a redigitar a sua senha.

SERVIDOR KDBM

Ao receber um pedido, o KDBM observa se o
ticket que está recebendo autenticando o
principal do usuário equivale ao mesmo principal
para o qual está sendo requisitado o serviço. Se
eles forem equivalentes, o serviço será
autorizado. Caso contrário, o KDBM irá consultar
uma lista de controle de acesso, para verificar se
aquele usuário tem direito a realizar tal ação.
DESVANTAGENS DO KERBEROS
Apesar do Kerberos eliminar uma ameaça severa
e comum, pode ser de difícil implementação
devido à uma gama de motivos:
Migrar senhas de usuários de um banco de dados
UNIX para o Kerberos pode ser entediante, pois
não há um mecanismo automatizado para
executar esta tarefa.
 O Kerberos tem apenas compatibilidade parcial
com os Módulos de Autenticação Plugáveis
(PAM), sistema usado pela maioria dos servidores
Red Hat Enterprise Linux.

DESVANTAGENS DO KERBEROS


O Kerberos presume que cada usuário é confiável
e está usando uma máquina não confiável em
uma rede não confiável. No entanto, se alguém
além do usuário legítimo tiver acesso à máquina
que emite tickets usados para autenticação o
sistema de autenticação inteiro do Kerberos
estará em risco.
O Kerberos é uma solução 'tudo ou nada'. Se ele
for utilizado na rede, quaisquer senhas não
criptografadas transferidas a um serviço nãokerberizado estão em risco.
DESVANTAGENS DO KERBEROS

Para que um aplicativo use o Kerberos, sua fonte
deve ser alterada para fazer as chamadas
apropriadas às bibliotecas do Kerberos. Os
aplicativos modificados desta maneira são
considerados kerberizados. Para alguns
aplicativos, isto pode ser bastante problemático
outros são incompatíveis. Aplicativos de código
fechado que não têm suporte ao Kerberos por
padrão são geralmente os mais problemáticos.
PROBLEMAS ENCONTRADOS
Para se utilizar o Kerberos, é necessário tomar
algumas decisões sobre algumas questões
cruciais, para as quais uma escolha errada pode
comprometer a segurança de todo o sistema.
 Algumas dessas escolhas: tempo de duração de
um ticket, a escolha de quais proxies devem ser
autorizados, e como garantir a integridade física
de algumas máquinas, como os servidores de
autenticação.
