Segurança na Web Cap. 4: Protocolos de Segurança Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW Page 1
é definido como um procedimento seguro para se regular a transmissão de dados entre computadores Dois métodos importantes: Criptografar dados seguramente para a transmissão na rede Meios de se transportar dados com segurança Page 2
é possível quebrar uma criptografia? Page 3
é possível quebrar uma criptografia? Sim pode ser quebrada e a informação revelada se o atacante tiver tempo e recursos suficientes Page 4
é possível quebrar uma criptografia? Sim O real objetivo da criptografia é fazer com que conseguir acesso à informação, seja tão trabalhoso e leve tanto tempo, que o atacante sinta-se desestimulado e desista. Page 5
As técnicas de criptografia oferecem seis recursos básicos: Disponibilidade Integridade Controle de Acesso Autenticidade na Origem Não-repúdio Privacidade Page 6
Criptografia Simétrica Baseia-se em dois componentes Um algoritmo e uma chave Algoritmo = transformação matemática realizada um para encriptar outro para descriptar Chave = cadeia aleatória de bits utilizada em conjunto com o algoritmo Page 7
Criptografia Simétrica Método de operação 1 Page 8
Criptografia Simétrica Método de operação 2 Page 9
Criptografia Simétrica A segurança do sistema passa a residir não mais no algoritmo e sim na chave empregada. Quando a chave de ciframento é a mesma utilizada para deciframento, ambas precisam ser compartilhadas previamente entre origem e destinatário. Este tipo de ciframento emprega a criptografia conhecida como simétrica ou de chave secreta. Page 10
Exemplo de Algoritmos Simétricos DES (Data Encryption Standard) 56 bits 3DES (Triple DES) Utiliza três ciframentos sucessivos Seguro, porém lento - (128 bits) RC2 Voltado a criptografia de e-mail corporativo Chave de tamanho variável (8 à 1024 bits) Page 11
Criptografia Assimétrica Page 12
A criptografia assimétrica está baseada no conceito de par de chaves: uma chave privada e uma chave pública. As mensagens cifradas com uma das chaves do par só podem ser decifradas com a outra chave correspondente. A chave privada deve ser mantida secreta, enquanto a chave pública disponível livremente para qualquer interessado. Page 13
Exemplo de algoritmo assimétrico: RSA (Rivest, Shamir e Adleman) Utiliza números primos e fatoração Pode ser utilizado para a geração de assinatura digital uma chave pública e uma chave privada segurança baseia-se na dificuldade da fatoração de números grandes Page 14
Criptografia Simétrica x Assimétrica Page 15
Funções de Hash Criptográfico MD5 é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins. Page 16
Funções de Hash Criptográfico MD5 Foi desenvolvido em 1991 por Ronald Rivest É um algoritmo unidirecional Ou seja, uma hash md5 não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida). Page 17
Funções de Hash Criptográfico MD5 O MD5 também é usado para verificar a integridade de um arquivo através, por exemplo, do programa md5sum, que cria a hash de um arquivo. Isto pode-se tornar muito útil para downloads de arquivos grandes para programas P2P que constroem o arquivo através de pedaços e estão sujeitos a corrupção dos mesmos. Page 18
Funções de Hash Criptográfico MD5 Como autenticação de login é utilizada em vários sistemas operacionais unix e em muitos sites com autentificação. Exemplo: md5sum Page 19
Exercício 1 Via Linux, realizar a seguinte tarefa, através do programa md5sum: inserir um hash md5 na pasta /var/log criar o arquivo de hash verificar a integridade dos arquivos relatar as mudanças ocorridas Page 20
MD5 em ação via PHP Exemplos de criptografia via PHP Base64_encode Base64_decode Crypt SHA1 MD5 Page 21
Sistemas Free/Open Source PGP GPG SSH IPSec Page 22
Sistemas Free/Open Source Exemplo de funcionamento: PGP GPG Page 23
Sistemas Free/Open Source Exercício: No ambiente Linux, através do software GPG: Criar as chaves Exportar e importar chaves Assinando um arquivo qualquer Ler o conteúdo do arquivo Page 24
Exercício Final (valendo 0,5) Fazer um sistema em php, na seguinte estrutura: criar um banco chamado seguranca para armazenar: nome, e- mail, usuario e senha criar um arquivo conecta para se conectar a base de dados gravar a senha no banco de forma criptografada o sistema deve gravar os métodos de criptografia apresentados em sala de aula (md5, sha1, cript, base64) e por fim, faça um arquivo pesquisa.php, que retorne se achou determinada senha ou não. Se não achou a senha porque? Page 25