200 likes | 325 Views
Protocolos Básicos. Autenticação. Esquemas de autenticação São métodos através dos quais alguém pode provar sua identidade, sem revelar conhecimentos importantes e que possam ser usados de forma maliciosa no futuro. Protocolos Básicos. Autenticação usando Hash
E N D
Protocolos Básicos Autenticação
Esquemas de autenticação São métodos através dos quais alguém pode provar sua identidade, sem revelar conhecimentos importantes e que possam ser usados de forma maliciosa no futuro.
ProtocolosBásicos Autenticação usando Hash A → S : senha Alice envia sua senha para um servidor S. S : Hash (senha) S calcula o Hash da senha recebida. S : Compara com valor Hash da senha, previamente armazenado. A lista de hash de senhas é sem utilidade, porque uma função Hash não pode ter inversa para recuperar senhas.
Ataque do Dicionário e Salt • Um arquivo de senhas cifrado com uma função Hashé ainda vulnerável. • Em seu tempo livre, Mallory gera 1000.000 de senhas mais comuns. Ele opera sobre todas 1000.000 destas com uma função Hash e armazena os hashes resultantes. • Se cada senha tem 8 bytes, o arquivo resultante será não mais do que 8 Megabytes.
Ataque do Dicionário e Salt • Mas, se Mallory furta, em um host, um arquivo de senhas criptografadas (por Hash), ele compara esse arquivo com seu arquivo de senhas possíveis criptografadas, e vê o que corresponde. • Este é o ataque do dicionário que pode ser realizado. • Um salt é uma string aleatória, que dificulta este ataque. • Salts são concatenados com senhas, antes de serem operados com uma função Hash.
Ataque do Dicionário e Salt • Então, ambos, o valor salt e o resultado da função Hashsão armazenados numa base de dados no host. • Se o número de valores salt é bastante grande, isto praticamente elimina o ataque do dicionário contra senhas usadas comumente, porque Mallory tem de gerar um hash para cada valor saltpossivel.
Problemas de segurança • Mesmo com salt, o protocolo de autenticação usando hash tem problema de segurança: quando Alice envia sua senha à S, qualquer um que tenha acesso ao caminho dos dados de Alice, poderá ler sua senha. • A senha não pode ser lida antes de S calcular o hash dessa. • Criptografia de chave pública pode resolver este problema.
Autenticação com chave compartilhada “K” entre A e B A → B : NA B→ A : NB || V = EK( NA || NB || IDB ) A : DK ( V ) == NA || NB || IDB A→ B : Q = EK( NB || IDA ) B : DK ( Q ) == NB || IDA
Autenticação com chave compartilhada “K” entre A e B • Criptografia simétrica provê alguma autenticação. • Quando Bob recebe uma mensagem de Alice, criptografada com a chave compartilhada, Bob sabe que a mensagem veio de Alice.
Autenticação com chave compartilhada “K” entre A e B • É assumido que ninguém mais conhece tal chave K. • Contudo, se existir uma terceira parte (Trent) conhecendo K, Bob não tem nenhum modo de convencer Trent. Bob não pode enviar a mensagem a Trent e convencê-lo de que veio de Alice. • Trent pode estar convencido de que a mensagem veio de Alice ou de Bob, e não tem nenhum modo para saber que veio de qual deles.
Autenticação com criptografa de chave pública (1) S A : N N é uma string aleatória • A S : EKRA(N) || IDA • S procura a chave pública de Alice, KUA, correspondente à chave privada KRA , em sua base de dados de chaves públicas. • S decripta com essa chave pública DKUA(N) obtendo N. • Se N corresponde ao que S enviou à A (Alice) em (1), S permitirá que Alice acesse ao sistema.A : N == DKUA( EKRA( N ) ) ? Se ninguém mais tem acesso à chave privada de Alice, ninguém poderá se passar por Alice.
Protocolos Básicos Autenticação e Troca de Chave
Autenticação e Troca de Chave Estes protocolos combinam autenticação e troca de chave para resolver um problema geral: Alice e Bob estão nas extremidades opostas de uma rede e desejam se comunicar com segurança. Como pode Alice e Bob trocarem uma chave secreta e ter certeza que ele e ela estão falando entre eles, e não com o atacante Mallory? A maioria dos protocolosassumemque Trent compartilhaumadiferentechavesecreta com cadaparticipante, e quetodasessaschavesestão em algum lugar antes do protocolo iniciar.
Autenticação arbitrada “T” : Wide-Mouth-FrogProtocol A → T : IDA || EKA ( TA || KS || IDB ) T → B : EKB ( TB || KS || IDA ) T é um servidor confiável. KAe KBsão chaves compartilhadas com T que só servem para distribuição e não para encriptar mensagens. TA e TB são rótulos de tempo
Yahalom A → B : IDA || NA B → T : IDB || EKB ( IDA,NA,NB ) T → A : EKA ( IDB,KS,NA,NB) || EKB ( IDA,KS ) A → B : EKB ( IDA,KS ) || EKS ( NB ) B : DKB ( EKB ( IDA,KS ) ) DKS ( EKS (NB) ) A e B ficam convencidos que estão falando entre eles e não com uma terceira parte, o atacante Mallory.
Needham-Schroeder A → T : IDA || IDB || NA T → A : [ EKA ( NA || IDB || KS ) || EKB ( KS || IDA ) ] (2) A → B : EKB ( KS,IDA ) B → A : EKS ( NB ) A → B : EKS ( NB -1 ) (5)
Needham-Schroeder Protocol • Tudo em torno de NA , NB , NB-1 é evitar ataques de repetição. • Nestes ataques, Mallory pode registrar mensagens já transmitidas e então usá-las mais tarde em uma tentativa de subverter o protocolo.
Needham-Schroeder Protocol • A presença de NA em (2) assegura a Alice que a mensagem de Trent é legítima e não uma repetição de uma resposta de uma execução prévia do protocolo. • Quando Alice decifra NB e envia (NB – 1) em (5), Bob é garantido que as mensagens de Alice não são repetições de execuções prévias do protocolo.
Kerberos A → T: IDA, IDB T→ A : EKA ( t || L || KS || IDB ) || EKB ( t || L || KS || IDA ) A → B : EKS ( IDA, t ) || EKB ( t || L || KS || IDA ) B → A : EKS ( t+1 )
Kerberos • Variante de Needham-Schroeder. Alice e Bob compartilhamchaves com Trent (KDC) • Alice desejagerarumachave de sessão para conversação com Bob. • O protocolo funciona, mas assume que todos os clocks estão sincronizados com o clock de Trent (KDC). • Na prática, o efeito é obtido por sincronizar cloks dentro de poucos minutos de um servidor de tempo seguro e detectar repetições dentro de um intervalo de tempo.