Você está na página 1de 25

Administrao de Sistemas (ASIST)

Criptografia
Outubro de 2012

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Criptografia krypts (escondido) + grphein (escrita)


A criptografia utiliza algoritmos (funes) que recebem informao e produzem resultados que so teis sob o ponto de vista de segurana.

Informao

algoritmo

Resultado

Caractersticas de segurana que a criptografia ajuda a garantir - confidencialidade impossibilidade de leitura de dados por terceiros - integridade impossibilidade de alterao de dados por terceiros - autenticao impossibilidade de algum se fazer passar por quem no - no repdio impossibilidade de algum negar a autoria de algo
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Chaves
Os algoritmos usados so do domnio pblico, a nica forma de dificultar interferncias de intrusos inserir no processo algo que esse intruso desconhece.

Informao
segredo

algoritmo

Resultado

Este segredo, normalmente designado de chave criptogrfica ou chave secreta, influencia o resultado de tal forma que sem o conhecer o resultado perde a utilidade. Uma chave secreta pode sempre ser descoberta, basta tentar todos os valores possveis (fora bruta). A segurana depende por isso do tamanho da chave, mas tambm de outros fatores. Chave com mais bits Maior segurana

A criptografia nunca d total garantia de segurana


Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Confidencialidade
Uma forma de assegurar a confidencialidade atravs do controlo de acesso: - Lgico: o servidor verifica se o acesso de leitura deve ser autorizado - Fsico: colocando o recurso em local de acesso condicionado (ex.: cofre) O controlo de acesso tem as suas vulnerabilidades e est sujeito a ataques, por isso pode no ser suficiente, alm disso pode ser muito difcil de implementar como por exemplo nas comunicaes em rede, em especial WAN. A criptografia fornece uma alternativa atravs dos algoritmos de cifra. So usados dois algoritmos complementares e inversos: encriptao e desencriptao. Informao legvel Informao no legvel Informao legvel

encriptao (cifra)

desencriptao (cifra-1)

Mesmo que haja acesso informao, a confidencialidade est assegurada pelo facto de a informao no se encontrar numa forma legvel.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Confidencialidade com cifras de chave simtrica


Tambm designada de criptografia simtrica, de chave pr-partilhada ou de chave secreta. Caraterizam-se por a mesma chave (secreta) ser usada na encriptao e na desencriptao. Informao legvel Informao no legvel Informao legvel

encriptao (cifra)

desencriptao (cifra-1)

Chave secreta pr partilhada

A chave secreta conhecida apenas pelas duas entidades envolvidas na transao, por isso, alm de assegurar a confidencialidade assegura tambm a autenticao e a integridade. O grande problema deste tipo de cifras a necessidade de haver um procedimento prvio de distribuio da chave que tem ele prprio de assegurar a confidencialidade e a autenticao.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Confidencialidade com cifras de chave assimtrica


Tambm designada de criptografia de chave pblica. Caraterizam-se por serem usadas duas chaves diferentes, uma para encriptao (chave pblica) e outra para desencriptao (chave privada). Informao legvel Informao no legvel Informao legvel

encriptao (cifra)

desencriptao (cifra-1)

Chave pblica

Chave privada

A chave pblica divulgada livremente, mas apenas serve para a encriptao, para a desencriptao necessria a chave privada correspondente que mantida secreta. Resolve parcialmente o problema da distribuio de chaves, mas tem outros inconvenientes. No bidirecional porque um par de chaves apenas permite a confidencialidade num sentido.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Confidencialidade com cifras de chave assimtrica


Um par chave pblica / chave privada apenas assegura a confidencialidade num sentido, para a obter nos dois sentidos so necessrios dois pares.

Informao legvel

encriptao (cifra)

Informao no legvel

desencriptao (cifra-1)

Informao legvel

Chave pblica de B Chave privada de A (cifra-1)

Chave privada de B Chave pblica de A (cifra)

B
Informao legvel

Informao legvel

desencriptao

Informao no legvel

encriptao

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Autenticao com cifras de chave assimtrica


A utilizao de uma chave pblica facilita a distribuio de chaves, mas sob o ponto de vista do recetor no fornece qualquer garantia de autenticao (qualquer um pode produzir a mensagem encriptada usando a chave pblica). A autenticao pode ser obtida atravs de uma aplicao da cifra em forma invertida, usando a chave privada para encriptao e a chave pblica para desenciptao. claro que assim perde-se a confidencialidade. Informao legvel
encriptao (cifra)
( legvel porque pode ser desencriptada com a chave pblica da A)

Informao legvel

desencriptao (cifra-1)

Informao legvel

Chave privada de A

Chave pblica de A

Quando a entidade B recebe a informao tem garantias da sua origem e da sua integridade pois apenas a entidade A possui a chave privada correspondente chave pblica de A. ainda assegurado o no repdio.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Aplicao de cifras de chave assimtrica


Para garantir a confidencialidade e a autenticao/integridade/no repdio simultaneamente so necessrias duas aplicaes da cifra em cada um dos sentidos da transao. Informao legvel

encriptao (cifra)

encriptao (cifra)

A
Chave pblica de B Chave privada de A

A entidade B comea por realizar a desencriptao com a chave pblica de A, isso assegura a autenticao/integridade/no repdio, de seguida realiza a desencriptao com a sua chave privada assegurando a confidencialidade. Todas estas garantias ficam comprometidas se as chaves pblicas no forem distribudas de forma adequada. Devido sua conceo a distribuio no necessita de confidencialidade, mas necessita de autenticao.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Distribuio de chaves pblicas


Toda a segurana das cifras assimtricas assenta sobre a autenticidade das chaves pblicas. Quando uma entidade A pretende garantir a confidencialidade num envio de dados a uma entidade B necessita da chave pblica de B. Igualmente quando pretende ter garantias de autenticao/integridade/no repdio sobre dados recebidos de B necessita da chave pblica de B. A entidade A no pode pedir de forma arbitrria entidade B que lhe diga qual a sua chave pblica.
????

Chave pblica de B

Um intruso poderia interferir na comunicao (man-in-the-middle) e fornecer uma chave pblica falsa, permitindo-lhe desencriptar a informao enviada por A e tambm produzir informao que A aceitaria como sendo autentica e emitida por B.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

10

Certificado de chave pblica


O certificado de chave pblica destina-se a garantir a autenticidade de uma chave pblica um documento digital legvel que identifica o proprietrio da chave, tipicamente atravs do nome DNS (fqdn), contm a chave pblica e assinado digitalmente por uma entidade certificadora de confiana. A assinatura digital garante a autenticidade da associao entre o nome da entidade e a respetiva chave pblica.
????

Certificado de chave pblica de B

Quando A recebe o certificado verifica se est dentro do prazo de validade, verifica se o nome do proprietrio (owner) corresponde ao que pretende contactar, verifica se o emissor (issuer) uma entidade certificadora de confiana e valida a respectiva assinatura para garantir que o certificado autentico. Os certificados tm a vantagem de evitar a necessidade de contacto com a entidade certificadora para comprovar a autenticidade da chave pblica.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

11

Funes hash
As funes hash recebem um volume de informao indeterminado e produzem um resultado de tamanho fixo (alguns bytes), designado por hash code, digest ou checksum. Sob o ponto de vista de criptografia, as suas carateristicas devem ser tais que o resultado representa o contedo da informao de entrada de uma forma dificilmente previsvel, sendo por isso til para validar a autenticidade e integridade dos dados. Com uma funo hash segura deve ser quase impossvel: - produzir pequenas alteraes nos dados e ainda assim obter o mesmo resultado. - encontrar duas mensagens diferentes que produzam o mesmo resultado A aplicao assemelha-se a uma deteo de erros, o emissor envia a mensagem e o hash, o recetor calcula o hash da mensagem e confronta-o com o hash enviado para verificar se so iguais, atestando a integridade. A grande diferena que temos de prever aes maliciosas e no apenas erros aleatrios nas transmisses.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

12

Funes hash em criptografia


A utilizao de uma funo hash no suficiente para assegurar a integridade num ambiente hostil pois um intruso pode alterar a mensagem e recalcular o hash code. H necessidade de introduzir um elemento secreto desconhecido dos potenciais intrusos. Uma opo simplesmente proceder a uma encriptao do hash code.

Mensagem
Funo hash cifra hash code

DESTINO

chave

Uma cifra de chave simtrica vai assegurar a integridade e a autenticidade da mensagem. Uma cifra de chave assimtrica ter de encriptar com a chave privada, neste caso assegura a integridade, autenticidade e no repdio.
13

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Funes hash criptogrficas


So funes hash que recebem tambm um valor secreto que apenas conhecido por emissor e recetor, assemelham-se por isso aplicao de uma cifra de chave simtrica ao hash code. Estes hash code so por vezes designados de MAC (Message Authentication Code). Uma forma simples de implementar consiste em combinar com o receptor um cdigo secreto que acrescentado mensagem para clculo do hash-code, mas nunca transmitido. Mensagem
Cdigo secreto RECETOR

Funo hash hash code


Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

14

Assinatura digital simples


A aplicao de encriptao assimtrica com a chave privada a um hash-code slido permite implementar de uma forma simples todas as funcionalidades de uma assinatura digital, atestando: - integridade do contedo - autenticao do autor - no repdio (apenas o autor possui a chave privada)

Mensagem

hash code Funo hash

encriptao

Assinatura digital

Chave privada

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

15

Distribuio de chaves simtricas


A encriptao com cifras simtricas tem algumas vantagens sobre as cifras assimtricas, assegurando numa nica aplicao a confidencialidade, autenticao e integridade, alm disso so substancialmente mais rpidas do que as cifras assimtricas. O seu maior problema encontra-se na distribuio de chaves que alm da autenticao tem tambm de garantir a confidencialidade. Numa ligao de carter permanente entre dois dispositivos controlados por um mesmo administrador relativamente simples colocar manualmente a mesma chave secreta nas duas extremidades. Quando se tratam de ligaes dinmicas, de curta durao, muitas vezes envolvendo utilizadores tudo se complica. Uma soluo recorrer a um servio de distribuio de chaves (KDC Key Distribution Center), o sistema KERBEROS um exemplo bastante usado, baseiase na existncia de uma chave pr-partilhada entre cada entidade e o KDC, sendo as chaves de sesso para comunicao entre entidades geradas pelo KDC e transmitidas s entidades de forma encriptada.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

16

Distribuio de chaves simtricas por password


Uma outra alternativa, aplicvel quando esto envolvidos utilizadores usar as respectivas passwords, sendo esse um segredo que apenas do conhecimento das duas entidades envolvidas, pode ser usado para produzir uma chave secreta em paralelo nas duas extremidades.
Funo Utilizador password Ligao segura chave secreta chave secreta Funo Contas de password utilizador

Posto de trabalho

Servidor

Este processo pode ser usado como mecanismo de autenticao de utilizadores sem transmisso da password e ser simultaneamente usado para gerar uma chave secreta nas duas extremidades. A fraqueza da distribuio de chaves simtricas por password advm da fraqueza das passwords dos utilizadores pelo que deve ser associada a uma poltica de passwords exigente. Esta tcnica usada por exemplo nas VPNs do tipo PPTP.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

17

Distribuio de chaves simtricas


As cifras de chave assimtrica so outra alternativa para distribuir chaves simtricas, sendo os certificados de chave pblica um meio slido se conseguir uma ligao segura, nada impede que essa ligao segura seja utilizada para enviar uma chave simtrica, abandonando de seguida a cifra de chave assimtrica:
1 fase as entidades A e B trocam entre si os respectivos certificados de chave pblica e aps validao estabelecem uma ligao segura usando uma cifra de chave assimtrica. 2 fase uma das entidades gera uma chave secreta de cifra simtrica e envia-a usando a ligao segura. 3 fase as entidades abandonam a cifra assimtrica e passam a usar a cifra simtrica com chave que foi gerada e transmitida.

Este mtodo tem a vantagem de aliar a solidez da segurana da cifra assimtrica melhor performance das cifras simtricas, usado por exemplo no SSL/TLS.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

18

Algoritmos hash - MD5 e SHA


O algoritmo MD5 (Message-Digest 5) recebe um bloco de dados de qualquer dimenso e produz um resultado de 128 bits, ainda muito usado na actualidade, mas comea a ser considerado pouco seguro. Um conjunto de algoritmos mais recente so os Secure Hash Algorithm (SHA): Os algoritmos SHA-0 e SHA-1 produzem resultados de 160 bits, o segundo algoritmo corrige algumas fraquezas encontradas no anterior. A designao SHA-2 representa um conjunto de algoritmos alternativos (SHA-224, SHA-256, SHA-384, SHA-512), cada um deles produz um resultado com o nmero de bits indicado na sua designao. Estas so consideradas algumas da alternativas mais slidas na actualidade. Actualmente encontra-se em fase final a competio para o SHA-3, dever suportar resultados de 256 ou 512 bits, ou mesmo resultados de dimenso ajustvel.

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

19

Cifras de chaves simtricas - DES


DES Data Encryption Standard Recebe blocos de 64 bits e encripta-os usando uma chave de 64 bits, a chave constituda por 8 bytes, sendo um bit de cada um deles um bit de paridade, resultando por isso numa chave de 56 bits. 3DES aplicao tripla do DES Devido reduzida dimenso da chave o DES simples no considerado seguro, surgiram por isso aplicaes mltiplas sucessivas do mesmo algoritmo, podendo ser usadas at 3 chaves distintas de 56 bits cada. A aplicao dupla do DES poderia ser atacada atravs da tcnica meet-in-themiddle o que levaria apenas ao dobro das tentativas relativamente ao DES simples. Das vrias verses existentes o 3DES mais flexvel o que recorre a duas encriptaes com uma desencriptao intermdia.
DES K1 DES-1 K2 DES K3 Pode ser usado com 3 chaves diferentes, ou 2 chaves diferentes (K1=K3). Se K1=K2, K2=K3 ou K1=K2=K3 torna-se equivalente a DES simples.
20

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

Cifras de chaves simtricas RC2/RC4/RC5/RC6


Conjunto de algoritmos desenvolvidos por Ron Rivest designados de Rivest Ciphers, so bastante mais flexveis do que o DES, nomeadamente atravs do suporte de chaves de tamanho varivel que pode ser ajustado s necessidades crescentes. RC2 (ARC2) usa blocos de 64 bits com chave de comprimento configurvel. RC4 (ARC4) recebe os dados em fluxo (no em blocos) e utiliza uma chave de comprimento configurvel. Carateriza-se ainda por ser muito rpido, sendo usado por exemplo pelo WEP (Wired Equivalent Privacy). RC5 trabalha com blocos, mas mais flexvel podendo-se configurar o tamanho dos blocos, o tamanho das chaves e o nmero de iteraes do algoritmo. RC6 algoritmo semelhante ao RC5 proposto para o concurso ao AES (Advanced Encryption Standard), sendo um dos cinco finalistas. Embora todos estes algoritmos sejam flexveis no tamanho das chaves, na actualidade considera-se que um mnimo de segurana se obtm com chaves de 128 bits (16 bytes), sendo j aconselhada a utilizao de chaves de 256 bits para maior segurana.
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

21

Cifras de chaves simtricas AES e outros


O IDEA (International Data Encryption Algorithm) usa blocos de 64 bits e uma chave de 128 bits. A chave de 128 bits pode ser considerada segura na atualidade. O Blowfish usa blocos de 64 bits e uma chave flexvel que pode ter de 32 at 448 bits.

O Twofish usa blocos de 128 bits e uma chave flexvel que pode ter at 256 bits, foi um dos cinco finalistas ao concurso para o AES.

O AES (Advanced Encryption Standard) pretende ser o substituto do DES, usa blocos de 128 bits e uma chave de 128, 192 ou 256 bits.

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

22

Cifras de chaves assimtricas - RSA


O algoritmo RSA (Ron Rivest, Adi Shamir e Leonard Adleman) um dos principais algoritmos de chave pblica. Utiliza um problema matemtico relacionado com a dificuldade em fatorizar nmeros primos de grande dimenso. A aplicao do algoritmo envolve clculos com nmero de elevada dimenso e por isso de execuo morosa, as chaves podem ter comprimentos variveis, tipicamente 512, 1024 ou 2048 bits. O processo de gerao de chaves tambm complicado, tem como ponto de partida um conjunto de dois nmero primos de elevada dimenso que so por s difceis de determinar. O produto desses dois nmeros designa-se por mdulo (n). As operaes de encriptao e desencriptao so idnticas, apenas a chave (K) diferente, no caso da encriptao usa-se a chave pblica e na desencriptao a chave privada.

Y=

XK

mod n

mod o operador resto da diviso inteira X deve ter uma ordem de grandeza pouco inferior a n

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

23

Aplicao de cifras de bloco


A aplicao das tcnicas de cifra em bloco no deve facilitar os potenciais ataques, para isso fundamental eliminar correspondncias entre blocos de entrada e blocos cifrados.
BLOCOS DE ENTRADA IGUAIS NO DEVEM PRODUZIR BLOCOS CIFRADOS IGUAIS

O problema resolvido recorrendo a tcnicas de realimentao em que o resultado da encriptao de um bloco depende dos anteriores, normalmente atravs de uma operao XOR. Na primeira iterao no existe um resultado anterior por isso usa-se um vetor inicial (IV).
Cipher-block chaining (CBC) Cipher feedback (CFB) Output feedback (OFB)

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

24

Criptografia em rede
Os vrios algoritmos descritos so aplicados nas vrias camadas do modelo OSI atravs da sua incluso em diversos protocolos, como por exemplo:

Camada de aplicao Camada de transporte Camada de rede Camada de ligao lgica

SSH; VPN SSL/TLS IPSEC 802.11i (WPA and WPA2)

As implementaes nas vrias camadas no so mutuamente exclusivas, podendo mesmo ser usadas em conjunto para maior segurana.

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informtica Administrao de Sistemas (ASIST) Andr Moreira

25