Você está na página 1de 49

Criptograa e Segurana de Sistemas Informticos

Gesto da Segurana da Informao Aplicaes Correntes da Criptograa

M. B. Barbosa mbb@di.uminho.pt
Departamento de Informtica Universidade do Minho

2008/2009

Secure Sockets Layer (SSL) Transport Layer Security (TLS)

Secure Sockets Layer (SSL) Transport Layer Security (TLS) Introduo Estrutura do SSL Sesses SSL Camadas SSL Segurana do SSL

Introduo

A Secure Sockets Layer est para o TCP como o IPsec est para o IP. um upgrade da camada de transporte para incluir segurana nas comunicaes. O SSL foi desenvolvido pela Netscape, e a sua verso 3 foi adoptada pela IETF sob a designao Transport Layer Security (TLS). O TLS est denido no RFC2246. Os servios fornecidos pelo SSL incluem:
Condencialidade baseada em cifras simtricas. Autenticao baseada em criptograa de chave pblica. Integridade baseada em Message Authentication Codes.

Estrutura do SSL
O SSL est estruturado em duas sub-camadas:
SSL Handshake Layer SSL Record Layer TCP/IP

A Handshake Layer permite a autenticao mutua entre clientes e servidores, e a negociao de algoritmos e chaves criptogrcos antes de se iniciar a troca de dados atravs da Record Layer. A Record Layer encapsula a informao correspondente s camadas superiores.

Sesses SSL
O funcionamento do SLL baseia-se em sesses estabelecidas entre um cliente e um servidor. Cada sesso SSL pode incluir vrias ligaes seguras, e cada n pode manter diversas sesses SSL. Durante o seu estabelecimento e operao, as sesses e ligaes SSL atravessam uma sequncia de estados. Cliente e Servidor mantm uma mquina de estados para cada sesso e ligao. A camada de Hanshake sincroniza os estados no cliente e no servidor. As transies entre estados efectuam-se em duas fases:
Primeiro constri-se/negoceia-se um pending state. Depois substitui-se o operating state pelo pending state.

Estado de uma Sesso SSL


Session identier Uma sequncia arbitrria de bytes escolhida pelo servidor para identicar a sesso. X509 certicate of the peer Certicado do interlocutor. Compression method Algoritmo de compresso da informao antes de ser cifrada. Cipher spec Algoritmo de cifra simtrica (e algoritmo de hash criptogrco para utilizao em MACs). Master secret Chave secreta partilhada por Cliente e Servidor e da qual so derivados todos os segredos utilizados na sesso (chaves e IVs). Is resumable Indica se a sesso pode ser utilizada para novas ligaes.

Estado de uma Ligao SSL

Server/Client random Nmeros aleatrios escolhidos por Cliente e Servidor para estabelecimento da ligao. Server/Client write MAC secret Chaves utilizadas por Cliente e Servidor para efectuar MACs sobre dados transmitidos. Server/Client write key Chaves utilizadas por Cliente e Servidor para cifrar dados transmitidos. Initialization vectors Vectores de inicializao (IV) para os modos de cifra simtrica que os utilizam. Sequence numbers Contadores sequenciais das mensagens enviadas e recebidas.

Record Layer
Recebe informao arbitrria das camadas superiores, em blocos de dados de tamanho varivel. Os dados so fragmentados em blocos com um mximo de 214 bytes denominados SSL Plaintext. Os blocos SSL Plaintext so comprimidos com o algoritmo da sesso, originando blocos SSL Compressed. Os dados SSL Compressed so protegidos com a cifra e algoritmo de MAC denidos na CipherSpec da sesso (o MAC calculado antes da cifragem). O resultado um bloco do tipo SSL Ciphertext. Estes blocos so trocados entre Cliente e Servidor que tm de reverter estas transformaes para obter o texto limpo.

Handshake Layer
Os parmetros de sesso e ligao utilizados pela Record Layer so estabelecidos pela Hanshake Layer. As mensagens da Handshake Layer viajam elas prprias sob o controlo da Record Layer. Inicialmente no h qualquer proteco: utilizada uma cipher spec nula at que a primeira negociao seja concluida. Uma negociao iniciada pelo Cliente com uma mensagem Client Hello. O Servidor deve responder com uma mensagem equivalente. Ficam acordados:
A verso do protocolo SSL a utilizar O identicador da sesso e os nmeros aleatrios. Os algoritmos criptogrcos a utilizar (os mais fortes dos suportados). O algoritmo de compresso a utilizar

Cliente
Client Hello

Servidor

Server Hello Certificate Certificate Request Server Key Exchange Certificate Client Key Exchange Verify Certificate Mudana de Estado Finished Mudana de Estado Finished

Caso seja utilizada autenticao do Servidor, este envia o seu certicado X.509 ao Cliente, que o valida. Alm da validao habitual, o Cliente assegura-se de que o nome de domnio do Servidor, indicado no certicado, est correcto. Parmetros do Servidor especcos para acordo de chaves podem tambm ser enviados nesta fase (Server Key Exchange), se o seu certicado no incluir informao suciente para esta funcionalidade. Caso o Servidor autentique o Cliente, solicita o certicado correspondente (Certicate Request). Este pedido inclui um desao para ser utilizado na autenticao do cliente. O Servidor termina esta fase da negociao enviando uma mensagem Server Hello Done.

Caso tenha recebido um pedido de certicado, o Cliente tem de envia-lo ou a negociao falha. Conjuntamente com o certicado o Cliente tem de enviar uma assinatura digital do desao que recebeu, comprovando assim a posse da chave privada associada ao certicado. Finalmente, o Cliente envia os seus parmetros para acordo de chaves (Client Key Exchange), altera o seu estado de sesso, e envia uma primeira mensagem cifrada que indica o seu estado de prontido (nished). O Servidor efectua o mesmo procedimento e a negociao termina tendo sido acordado o Master Secret da sesso.

A autenticao do servidor ca implicita pelo sucesso da comunicao cifrada nas mensagens nished, ou no? De facto, o servidor s ca autenticado se o protocolo de acordo de chaves implicar a utilizao da sua chave privada. Isto acontece sempre:
No protocolo RSAKeyExchange o cliente gera um segredo e cifra-o com a chave pblica do servidor. Para gerar o Master Secret, o servidor tem de decifrar este segredo com a sua chave privada. Nos outros protocolos, os parmetros pblicos do servidor utilizados no protocolo de acordo de chave so assinados com a sua chave privada.

Segurana
A verso 3 do SSL considerada um sistema seguro. uma evoluo em relao s verses anteriores, colmatando falhas de segurana importantes. Um dos problemas mais conhecidos na verso 2 do SSL era a vulnerabilidade ao ataque ciphersuit rollback:
Um intruso podia editar as mensagens de hello trocadas entre Cliente e Servidor de forma a que ambos pensassem que o outro apenas conseguia funcionar com um nvel de segurana reduzido. O resto da negociao decorria sem alteraes e estabelecia-se uma ligao com um nvel de segurana reduzido, mais vulnervel a ataques por parte do intruso.

Este ataque era possvel porque as mensagens de handshake no eram autenticadas!

A verso 3 do SSL resolveu este problema obrigando a que todas as mensagens de handshake fossem utilizadas para gerar o valor cifrado nas mensagens nished. Change cipher spec dropping outro ataque possvel sobre uma implementao pouco cuidada:
Quando a sesso a ser negociada inclui apenas autenticao, i.e. no inclui cifragem, possivel eliminar das mensagens nished a informao de autenticao. Interceptando as mensagens change cipher spec, impede-se a activao da autenticao. Fornecendo a Cliente e Servidor mensagens nished alteradas, estabelece-se uma sesso sem proteco.

A soluo para este ataque consiste em exigir uma mensagem de change cipher spec antes de uma mensagem nished nestas situaes.

Ficha Tcnica

Cifras Simtricas: DES, 3-DES, RC4 Algoritmos de Compresso: ZLIB Funes de Hash Criptogrcas: SHA-1, MD5 Cifras Assimtricas: RSA Assinaturas Digitais: RSA, DSA Acordo de Chaves: Fortezza, Dife-Hellmann, distribuio RSA.

Secure Shell (SSH)

Secure Shell (SSH) Introduo Estrutura do SSH Polticas de segurana Camadas do SSH

Introduo
O SSH um protocolo para o estabelecimento de servios de shell seguros, nomeadamente de login remoto, sobre uma rede no segura. Foi desenvolvido para substituir os servios rlogin, rsh, etc, includos nas shell Unix/Linux, e que no so satisfatrios ao nvel da segurana. O SSH funciona numa losoa Cliente/Servidor:
o Servidor tpicamente uma mquina Unix/Linux que aceita o estabelecimento de sesses de shell seguras atravs da porta 22. o Cliente pode ser qualquer tipo de mquina que corra software Cliente compatvel com o SSH.

O SSH foi normalizado pela IETF para utilizao na Internet (Internet Drafts) e o seu uso generalizado.

Estrutura do SSH

A Transport Layer oferece autenticao do servidor, condencialidade e integridade sobre uma rede insegura. A User Authentication Layer oferece servios de validao de utilizadores perante um servidor. A Connection Layer oferece a multiplexagem de um canal seguro a por vrios canais lgicos.

Connection User Authentication Transport Layer TCP/IP

Polticas de Segurana
Num servidor que utilize o SSH tm de ser denidas as seguintes polticas de segurana:
Quais os algoritmos de cifragem, compresso e autenticao utilizveis para envio e recepo de dados; e, desses algoritmos, quais so as solues preferenciais. Quais os algoritmos de Chave Pblica utilizados para acordo de chaves e autenticao do Servidor. Que tipo de autenticao requerida aos utilizadores que acedem a partir de um determinado Cliente. Quais as operaes que um utilizador pode efectuar, dependendo da sesso que estabeleceu.

As implementaes SSH permitem geralmente denir estas polticas, atravs da manipulao de parmetros de congurao mais ou menos uniformes.

Transport Layer
A camada de transporte do SSH utiliza a infraestrutura de rede subjacente para transferir streams de bytes, geralmente com informao puramente binria. Excepes so as mensagens de gesto da prpria camada de transporte, que so simplesmente strings de caracteres ASCII. Os pacotes trocados ao nvel desta camada tm a seguinte estrutura:
Packet Length Padding Length Payload Random Padding MAC

O processamento aplicado ao pacote segue a sequncia habitual: compresso (payload), autenticao (MAC), padding e cifragem.

O padding serve, no s para dar ao pacote um tamanho adequado para a cifragem por blocos, mas tambm para esconder o verdadeiro tamanho dos dados. O MAC calculado sobre todos os bytes do pacote (antes da cifragem) e um nmero de sequncia de pacote, utilizando um segredo pr-negociado. O nmero do pacote no incluido no prprio pacote. O estabelecimento de um canal seguro comea pela negociao dos parmetros do protocolo. As primeiras mensagens trocadas por Cliente e Servidor permitem escolher a verso do SSH utilizada: a verso mais recente suportada pelas duas mquinas (de preferncia a ltima actualmente a V2).

Estabelecida a verso, Cliente e Servidor trocam mensagens em que indicam os algoritmos que implementam, e aqueles que so de utilizao preferencial. escolhido um algoritmo para cada funcionalidade, procurando na lista de algoritmos implementados pelo Cliente o primeiro que tambm suportado pelo Servidor. Antes de se iniciar a comunicao segura Cliente e Servidor executam o protocolo de acordo de chaves negociado, protocolo esse que inclui uma componente de autenticao do servidor. Este processo termina com o estabelecimento de uma chave secreta partilhada e de um identicador de sesso (gerado a partir de um valor de hash).

Cliente
Protocol Version

Servidor

Protocol Version Protocol Negotiation Protocol Negotiation

~do Servidor Acordo de Chaves e Autenticaao

Service Request (User Authentication/Connection) Accept Service Request

Os protocolos de acordo de chaves utilizados pela camada de transporte do SSH incluem uma componente de identicao do Servidor. Cada Servidor tem uma Host Key: um par de chaves que utilizado na fase de acordo de chaves para autenticao do Servidor. Da que, para haver segurana no estabelecimento de uma sesso:
ou o Cliente tem conhecimento prvio da chave pblica do Servidor (distribuio manual da chave pblica), ou recorre-se a um esquema de certicao X.509, no qual o Cliente apenas tem de conhecer e conar numa CA que permita validar os certicados dos Servidores.

Ambos os modos de funcionamento so permitidos no SSH.

Cada algoritmo de acordo de chaves especica uma funo de hash criptogrca que utilizada, entre outras coisas, na gerao de mensagens de autenticao. Como passo intermdio do protocolo de acordo de chaves temos:
Cliente Servidor
Host Key (chave ou certificado)

Valor de Hash calculado a partir de mensagens de handshake Valor de Hash assinado

A autenticao do Servidor assegura tambm o Cliente de que as mensagens de handshake que recebeu provieram do Servidor.

O funcionamento da camada de transporte baseia-se em seis segredos derivados da chave secreta acordada por Cliente e Servidor:
IV Cliente-Servidor = HASH (K |H | A |sessionid ) IV Servidor-Cliente = HASH (K |H | B |sessionid ) Cifragem Cliente-Servidor = HASH (K |H | C |sessionid ) Cifragem Servidor-Cliente = HASH (K |H | D |sessionid ) MAC Cliente-Servidor = HASH (K |H | E |sessionid ) MAC Servidor-Client = HASH (K |H | F |sessionid )

Em que HASH representa a funo de hash associada ao protocolo de acordo de chaves, H o valor de hash acordado nesse protocolo e sessionid o valor de hash acordado no primeiro acordo de chaves.

User Authentication Layer


Quando o Cliente invoca com sucesso os servios desta camada, ao nvel da camada de transporte, pode proceder a um pedido de autenticao de um utilizador. Um pedido de autenticao enviado pelo Cliente inclui os seguintes parmetros:
User Name Identicao do utilizador a autenticar. Service Name O servio a que pretende aceder. Authentication Method O mtodo de autenticao a utilizar.

Caso o Servidor aceite o pedido, o que depende do mtodo de autenticao solicitado (bem como do utilizador e do servio indicados), seguem-se mensagens especcas do processo de autenticao.

Mtodos de autenticao:
Chave Pblica O Cliente envia a chave pblica do utilizador ao Servidor, juntamente com uma assinatura do identicador de sesso da camada de transporte. Tambm aqui a conana na chave pblica do cliente pode ser estabelecida de forma manual ou atravs de um esquema de certicao. Password O Cliente envia simplesmente uma password que permite validar o utilizador no Servidor. Host Based O Servidor no autentica o utilizador, mas sim a mquina Cliente, com base numa chave pblica. A validao depende no s do User Name do utilizador no Servidor, mas tambm do seu User Name no Cliente. Este mtodo de autenticao, apesar de conveniente, no recomendado.

Cliente
Authentication Request

Servidor

Accept Request ~ de Autenticaao ~ Informaao Success/Failure

Caso a autenticao falhe, o Servidor indica ao Cliente se o processo pode continuar, e com que mtodos de autenticao. Caso a autenticao tenha sucesso, essa informao ca disponvel para a camada superior (Connection) para que possam ser estabelecidas ligaes de shell.

Connection Layer
Os servios desta camada utilizam a condencialidade e autenticao fornecida pelas camadas inferiores para oferecer os seguintes servios:
login remoto. execuo remota de comandos. reencaminhamento de portas TCP/IP reencaminhamento de ligaes X11

Para uma determinada sesso, esta camada permite estabelecer mltiplos canais de comunicao paralelos, atravs dos quais podem ser invocados servios independentes. Os detalhes do funcionamento desta camada no so relevantes para a segurana do sistema e cam, portanto, fora do mbito desta disciplina.

Ficha Tcnica

Cifras Simtricas: 3DES, Blowsh, Twosh, AES, Serpent, IDEA, CAST (as cifras por blocos funcionam em modo CBC). Algoritmos de Compresso: ZLIB Funes de Hash Criptogrcas: SHA-1, MD5 Message Authentication Codes: HMAC Cifras Assimtricas: RSA Assinaturas Digitais: DSA Acordo de Chaves: Dife-Hellmann

Kerberos

Kerberos Introduo Funcionamento Tickets Criptograa de Chave Pblica Segurana

Introduo
O Kerberos um protocolo para identicao de principals (agentes: utilizadores, aplicaes, servios) sobre uma rede insegura, em que os pacotes podem ser lidos, modicados e inseridos por intrusos. O sistema no baseia a sua segurana nos endereos de rede das mquinas envolvidos, no exigindo segurana fsica em todas as mquinas, e no impe restries ao sistema operativo. Actualmente na verso 5, o Kerberos utilizado na Internet com base em Internet Standards e RFCs publicados pela IETF. Os servios Kerberos so oferecidos s aplicaes atravs de uma API denida no RFC1964.

O Kerberos baseia-se em Criptograa Simtrica e num sistema de autenticao por um agente de conana, com pr-distribuio de chaves. atribuida uma chave secreta a todas os agentes que utilizam o sistema (para os utilizadores as chaves so derivadas de passwords). O Kerberos mantm uma base de dados com as identidades e chaves secretas de cada agente. O Kerberos permite utilizar estas chaves secretas para estabelecer uma chave de sesso entre um agente Cliente e um agente Servidor. A chave de sesso utilizada para autenticao do Cliente perante o Servidor e, opcionalmente, para autenticao do Servidor e comunicao segura entre os dois.

Autenticao Bsica

Credential Request

Kerberos Server
Credential(Ticket) Ticket+Authenticator Authenticator

Client

Server

Cliente: utilizador, aplicao. Servidor: servio perante o qual se faz a autenticao. Todas as mensagens so denidas/codicadas utilizando ASN.1/DER.

Em termos genricos, uma Credential contm um Ticket e uma Session Key cifrados com a chave secreta pertencente ao Cliente. Um Ticket contm a identicao do Cliente e a mesma Session Key cifrados com a chave secreta pertencente ao Servidor. A chave de sesso gerada pelo Kerberos, e transmitida ao Cliente numa Credential. O Servidor obtm a mesma chave de sesso, inserida no Ticket, via Cliente. Para o Cliente, o contedo do Ticket desconhecido. Conjuntamente com o Ticket, o Cliente envia um Authenticator.

A funo do Authenticator demonstrar o conhecimento da chave de sesso, e assegurar a frescura e integridade do pedido de autenticao. Um Authenticator uma mensagem autenticada por um MAC, gerado com a chave de sesso, e que contm a identidade do Cliente e um timestamp indicando o instante da sua gerao. Um Ticket pode ser reutilizado. Um Authenticator no pode ser reutilizado. O processo de autenticao pode, opcionalmente, incluir a autenticao do Servidor perante o Cliente. Neste caso, o Servidor gera e envia ao Cliente um Authenticator semelhante ao que recebeu.

Servidor Kerberos
Num servidor Kerberos distinguem-se dois servios: o Authentication Server e o Ticket Granting Server. A obteno de uma Credential para aceder a um qualquer Servidor , geralmente, uma negociao com duas fases:
O Cliente solicita primeiro uma Credential contendo um Ticket Granting Ticket ao Authentication Server. Um Ticket Granting Ticket um Ticket especial que permite ao Cliente aceder ao Ticket Granting Server de forma segura. Utilizando o Ticket Granting Ticket, o Cliente pode obter a Credential que pretende junto do Ticket Granting Server.

Em casos especiais a obteno do Ticket pode ser feita numa s fase, directamente junto do Authentication Server.

Credential Request

Kerberos Server
Credential(Ticket Granting Ticket) Ticket Granting Ticket+Authenticator Credential(Ticket)

Client

Ticket Granting Service

Ticket+Authenticator Authenticator

Server

Chave de Sesso
A chave de sesso estabelecida entre um Cliente e um Servidor que utilizam Kerberos tem diversas nalidades:
Autenticao do Cliente perante o Servidor. O MAC incluido no Authenticator enviado pelo Cliente demonstra ao Servidor que o Cliente conhece a chave de sesso estabelecida. esta mensagem que implicitamente identica o Cliente perante o Servidor: a conana depositada no servidor Kerberos assegura o Servidor que apenas Cliente e Servidor conhecem a chave de sesso. Autenticao do Servidor perante o Cliente (opcional). Autenticao (MAC) de mensagens trocadas subsequentemente entre Cliente e Servidor (opcional). Condencialidade de mensagens trocadas subsequentemente entre Cliente e Servidor (opcional).

Domnios (Realm) Kerberos


O Kerberos foi desenvolvido para ultrapassar fronteiras organizacionais: um Cliente numa organizao pode ser autenticado perante um Servidor noutra organizao. Cada organizao implementa um ou mais Servidores Kerberos que constituem a infraestrutura do seu Domnio Kerberos. O nome do Domnio incluido no nome de todos os utilizadores nele registados, e pode servir para um Servidor Kerberos noutro domnio localizar e validar esses utilizadores. A ligao entre Domnios consegue-se registando o Ticket Granting Service de uma organizao no Domnio da outra organizao, e vice-versa.

Este registo consiste na criao de uma Inter-Realm Key: uma chave secreta que o Kerberos Server de um domnio utiliza para autenticar um Cliente local perante um Kerberos Server remoto. Um Cliente pode obter no seu Domnio um Ticket Granting Ticket para o Ticket Granting Server noutro Domnio. Estas relaes so transitivas, i.e. se o Domnio A est ligado ao B, e o B ao C, ento possvel autenticar utilizadores de A em C. Para evitar o estabelecimento de redes de Domnios, o que diculta a identicao de um caminho de autenticao, em geral as ligaes de Domnios estabelecem-se de forma hierrquica. O caminho de autenticao tambm incluido na mensagem Ticket.

Alguns Atributos/Flags
Initial Indica a fase do processo de autenticao a que o Ticket pertence i.e. se foi obtido com base num Ticket Granting Ticket. Indica se o Cliente teve de apresentar recentemente a sua chave secreta para o conseguir. Renewable Indica um Ticket que vlido por um determinado perodo de tempo e renovvel durante um perodo mais alargado. Evita a utilizao frequente da chave secreta e mantm a frescura do ticket. Post Dated Permite a emisso de Tickets suspensos, para activao na altura da utilizao. Proxiable Indica que um Servidor pode servir-se de um Ticket fornecido por um utilizador para adoptar a sua identidade perante outro Servidor.

Pre-authenticated Indica que o Authentication Server autenticou o utilizador que pediu o Ticket de alguma forma e.g. login/password. Hardware Authenticated Indica que o Authentication Server autenticou o utilizador que pediu o Ticket utilizando um token de hardware e.g. um smartcard. Anonymous Permite a emisso de Tickets para uma entidade genrica dentro do Domnio. Transited Policy Checked Indica que o Servidor Kerberos do Domnio vericou a validade do caminho de autenticao indicado no Ticket (vlido apenas para autenticaes inter-domnio).

Extenses de Criptograa Chave Pblica


O IETF dene dois Draft Standards com extenses ao Kerberos que utilizam tcnicas de Criptograa de Chave Pblica e Certicao a dois nveis:
Autenticao Inter-Domnio A Inter-Realm Key substituida por dois pares de chaves que passam a suportar a comunicao entre Servidores Kerberos em Domnios diferentes. Pedido de Ticket bsico A chave secreta que um Cliente utiliza para solicitar um Ticket (Granting Ticket) perante um Authentication Server substituida por um par de chaves.

Estas extenses bsicamente denem procedimentos de gerao e formatos de transferencia alternativos para as mensagens Kerberos correspondentes a estes pontos de operao.

Por exemplo, as alteraes a um Pedido de Ticket bsico so as seguintes:


O Cliente junta ao seu pedido de Ticket o seu Certicado e uma assinatura digital do prprio pedido. A Credential devolvida pelo Authentication Server passa a vir cifrada:
usando o RSA, caso a Chave Pblica do Cliente o permita, ou uma cifra simtrica e uma chave secreta negociada utilizando o protocolo Dife-Hellman.

A utilizao de certicados no obrigatria: possvel adicionar manualmente as chaves pblicas dos agentes base de dados do Kerberos Server, conferindo-lhes desta forma o nvel de conana necessrio. As extenses denem tambm restries aos Distinguished Names dos certicados que permitem utiliza-los como identicadores Kerberos.

Segurana
A utilizao de timestamps como indicadores da frescura dos Authenticators pode trazer problemas:
obriga a uma sincronizao prxima dos relgios das mquinas envolvidas isto uma brecha na segurana porque os protocolos de sincronizao temporal so, geralmente, inseguros. torna possvel os ataques por repetio de pedidos o standard obriga a armazenar todos os pedidos para impedir este tipo de ataque, mas isto nem sempre implementado.

A utilizao de PBE para gerar as chaves dos utilizadores simplica os ataques por password-guessing, que tiram partido da fraca qualidade de passwords auto-atribuidas. Apesar destes questes, o Kerberos tido como um sistema seguro, e a sua utilizao generalizada.

Ficha Tcnica

Cifras Simtricas: DES, AES Algoritmos de MAC: DES-MAC, H-MAC Funes de Hash Criptogrcas: SHA-1, MD5 Cifras Assimtricas: RSA Assinaturas Digitais: RSA, DSA Acordo de Chaves: Dife-Hellmann