Compartilhar via


Tíquetes Ticket-Granting

Como o protocolo Kerberos foi originalmente projetado, uma chave de master para um usuário foi derivada de uma senha fornecida pelo usuário. Quando um usuário fez logon, o cliente Kerberos na estação de trabalho do usuário aceitou a senha do usuário e a converteu em uma chave de criptografia passando o texto por meio de uma função de hash unidirecional. O hash resultante foi a chave de master do usuário. O cliente usou essa chave master para descriptografar as chaves de sessão recebidas do KDC.

O problema com o design kerberos original é que o cliente precisa da chave master do usuário sempre que descriptografa uma chave de sessão do KDC. Isso significa que o cliente deve solicitar a senha ao usuário no início de cada troca de cliente/servidor ou o cliente deve armazenar a chave do usuário na estação de trabalho. Interrupções frequentes do usuário são muito intrusivas. Armazenar a chave na estação de trabalho corre o risco de comprometer uma chave derivada da senha do usuário, que é uma chave de longo prazo.

A solução do protocolo Kerberos para esse problema é que o cliente obtenha uma chave temporária do KDC. Essa chave temporária é boa apenas para esta sessão de logon. Quando um usuário faz logon, o cliente solicita um tíquete para o KDC, assim como solicitaria um tíquete para qualquer outro serviço. O KDC responde criando uma chave de sessão de logon e um tíquete para um servidor especial, o serviço de concessão de tíquete completo do KDC. Uma cópia da chave de sessão de logon é inserida no tíquete e o tíquete é criptografado com a chave de master do KDC. Outra cópia da chave de sessão de logon é criptografada com a chave master do usuário derivada da senha de logon do usuário. O tíquete e a chave de sessão criptografada são enviados ao cliente.

Quando o cliente obtém a resposta do KDC, ele descriptografa a chave de sessão de logon com a chave de master do usuário derivada da senha do usuário. O cliente não precisa mais da chave derivada da senha do usuário porque o cliente agora usará a chave de sessão de logon para descriptografar sua cópia de qualquer chave de sessão do servidor obtida do KDC. O cliente armazena a chave de sessão de logon em seu cache de tíquetes junto com seu tíquete para o serviço de concessão de tíquete completo do KDC.

O tíquete para o serviço de concessão de tíquete completo é chamado de TGT (tíquete de concessão de tíquete). Quando o cliente solicita ao KDC um tíquete para um servidor, ele apresenta credenciais na forma de uma mensagem de autenticador e um tíquete , nesse caso, um TGT , assim como apresentaria credenciais para qualquer outro serviço. O serviço de concessão de tíquetes abre o TGT com sua chave master, extrai a chave de sessão de logon para esse cliente e usa a chave de sessão de logon para criptografar a cópia do cliente de uma chave de sessão para o servidor.