Seguranca - parte II
Transcrição
Seguranca - parte II
Departamento de Engenharia Informática Conceitos básicos de criptografia 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 1 Departamento de Engenharia Informática Criptografia • A base da criptografia é conseguir que um grupo de pessoas conheça uma forma de transmitir informação entre elas que seja ininteligível para todas as outras. • Uma solução seria este grupo de pessoas ter um dialecto próprio que apenas eles conheciam – não é escalável, nem seguro. – Solução? • A solução para este problema é ter um algoritmo que modifica a informação que é conhecido e uma chave que parametriza o funcionamento, o segredo partilhado pelo grupo – a ideia á igual à das fechaduras físicas... 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Criptografia - Conceitos • Objectivo: criar algoritmos em que um atacante a partir de informação cifrada tenha uma probabilidade muito reduzida de deduzir a chave em tempo útil • É vulgar distinguir entre vários graus de dificuldade no ataque ao mecanismo de cifra. – A partir exclusivamente de mensagens cifradas – mais difícil – A partir de amostras de um texto em claro e cifrado – a partir de qualquer texto original e do correspondente cifrado – mais fácil 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 2 Departamento de Engenharia Informática Criptografia – Segurança Total vs Prática • As funções de cifra são consideradas totalmente seguras se: – independentemente do tempo e do poder computacional envolvido, a chave não puder ser descoberta. • Normalmente são praticamente seguras – o valor da informação não justifica o investimento computacional (em máquinas especiais) – temporalmente limitada a sua validade e muito inferior ao tempo necessário para decifrá-la com a tecnologia existente. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Criptografia Conceitos • Algoritmos de cifra – Funções injectivas definidas por: • Um modelo de processamento de dados • As funções são injectivas porque um valor de entrada tem de corresponder a um de saída senão seria impossível decifrar • Uma chave que altera esse processamento – As cifras são reversíveis apenas por quem possuir o algoritmo inverso • Modelo inverso de processamento dos dados • Chave inversa – Nomenclatura M {M}K1 : cifra da mensagem M com a chave K1 é gerado um criptograma 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 3 Departamento de Engenharia Informática Comunicação Cifrada Emissor f(K, M) ⇒ {M} Enviar ({M} ) K Receptor K → Receber ({M} ) K f -1 (K, {M} ) ⇒ M K Para simplificar a notação na explicação dos protocolos utilizaremos a seguinte convenção de escrita: E→R: 2008/09 {M} K José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Comunicação Cifrada (Modelo) {P}K 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 4 Departamento de Engenharia Informática Criptografia - Conceitos • Admitindo que o algoritmo de cifra não permite ataques simples a forma de tentar obter a informação é por teste sistemático das chaves – ataque de força bruta (brute force) • A dimensão da chave é decisiva – uma chave de pequena dimensão pode ser facilmente encontrada por teste sistemático 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Criptografia: Classificação das cifras • Segundo as chaves – Simétricas (ou de chave secreta) • A chave que permite decifrar é “igual” à que permite cifrar • Só os interlocutores legítimos a conhecem – Assimétricas (ou de chave pública) • Usam-se pares de chaves relacionadas: – Privada (apenas conhecida por uma entidade) – Pública (conhecida por todos) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 5 Departamento de Engenharia Informática Criptografia: Aspectos operacionais • Cifras simétricas – Normalmente usam técnicas de substituição e difusão – São normalmente muito mais rápidas que as assimétricas • Cifras assimétricas – Normalmente usam operações matemáticas – A sua segurança baseia-se na complexidade de certas operações matemáticas • Logaritmo modular – Y = aX mod b; Dados a, b e Y, calcular X • Factorização de grandes números – Y = ab, a e b primos; Dado Y, calcular a ou b 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Criptografia Simétrica 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 6 Departamento de Engenharia Informática Cifra simétrica • Substituição – Mono-alfabética – Poli-alfabética • Exemplo Mono-alfabético – Chave – troia ABCDEFGHIJLMNOPQRSTUVXZ TROIABCDEFGHJLMNPQSUVXZ – Problema? 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Cifra Simétrica • Poli-alfabético – Procura que as distribuições sejam combinadas de forma a que não existam caracteres que sejam mais frequentes • Exemplo: Tabelas de Vigenère 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 7 Departamento de Engenharia Informática 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Exemplo de Cifra com a Tabela de Vigenère • Vamos, supor que se pretende cifrar uma mensagem em claro (plaintext) : • O cifrador escolhe a chave e repete-a até que tenha o tamanho da mensagem • • • A primeira letra da mensagem, A, é cifrada usando o alfabeto na linha L, que é a primeira letra da chave. Na tabela de Vigenère corresponde à linha L e à coluna A. Da mesma forma para a segunda letra da mensagem: a linha E e a coluna T resulta X. A restante mensagem é cifrada da mesma forma Mensagem: • Chave: • Mensagem Cifrada – ATTACKATDAWN – Vamos usar "LEMON": LEMONLEMONLE • – ATTACKATDAWN – LEMONLEMONLE – LXFOPVEFRNHR 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 8 Departamento de Engenharia Informática One-time pads • Substituição poli-alfabética • Chave de grande dimensão não repetida • O emissor usa a parte da chave que necessita para cifrar a mensagem e o receptor usa a mesma parte da chave estando ambos sincronizados sobre que parte já utilizaram • Totalmente seguro, mas... como distribuir a chave? – Uma aproximação a one-time pads nos computadores são geradores de números aleatórios – Que funcionam a partir de chave (limitada) distribuída inicialmente 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Data Encription Standard - DES • • 1970 - O National Bureau of Standards (NBS) dos EUA reconheceu a necessidade de um algoritmo padrão para cifra na sociedade civil 1972 – O NBS abriu um concurso para uma novo algoritmo que devia ter várias características, entre elas: – – – – – • • • Alto nível de segurança Completamente especificado e fácil de perceber O algoritmo devia ser público, a sua segurança não vinha de ser secreto Adaptável a diversas utilizações Fácil de realizar em dispositivos electrónico 1974 - Os primeiros resultados foram desencorajadores e houve um segundo concurso Desta vez foi considerada aceitável a proposta do algoritmo de cifra Lucifer desenvolvido pela IBM 1976 – depois de análise pelo DoD em particular pela NSA foi aceite como standard nos EUA 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 9 Departamento de Engenharia Informática Data Encription Standard - DES • Criptografia simétrica – Usa as técnicas fundamentais de substituição e permutação • Baseia-se na aplicação a blocos de 64 bits de funções de permutação e substituição. • O algoritmo tem 16 etapas e duas permutações totais • A chave tem 56 bits que é desdobrada em chaves de 48 bits para cada etapa • Pode ser realizado em software ou em hardware • Só há registos de quebra por teste sistemático da chave 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Algoritmo do DES Chave de 56 bit Entrada 64 bit Permutação Etapa 1 Etapa 2 Etapa 16 48-bit k1 48-bit k2 48-bit k16 Permutação 64 bit saída 2008/09 A chave de 56 bits é usada para criar as chaves de 48 bits utilizadas em cada etapa José Alves Marques. João Barreto, Ricardo Chaves 10 Departamento de Engenharia Informática Técnicas Elementares de Criptografia Simétrica • Substituição - dificultar a descoberta da forma como a mensagem e a chave foram utilizadas na transformação da informação. • Permutação - difundir a informação uniformemente pelo texto cifrado. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Funções de Substituição • A chave e a palavra de 32 bits são entradas de uma função que mistura os respectivos bits produzindo uma palavra de 32 bits. • Cada etapa pode ser decomposta em duas operações, – A parte mais significativa é uma cópia dos 32 bits menos significativos da entrada (Li = Ri-1). – Na outra metade efectua-se um “ou-exclusivo” dos 32 bits mais significativos, com o resultado da função F que tem por entradas os 32 bits menos significativos e parte da chave Ki. • Grande parte da complexidade do algoritmo reside nas funções de substituição. • Os detalhes das funções e das diferentes etapas são conhecidos. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 11 Departamento de Engenharia Informática Função de base do DES – rede de Feistel 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática DES • Substituição, Permutação, Compressão e Expansão Input (64) L0 Ri Li-1 PI E+P R0 KSi KS1 L1 [i] [i] C+P R1 KS16 L16 K (56) Ri-1 S-Box i R16 Li Ri P-box inverso PI output (64) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 12 Departamento de Engenharia Informática Chave do DES • Desde a sua publicação que a chave de 56 bits é considerada insuficiente, permitindo que o sistema seja alvo de ataques sistemáticos. • Com o rápido aumento do desempenho das máquinas, esta questão torna-se cada vez mais preocupante. • Em [Kaufman95] considera-se que com um incremento de 40% do desempenho dos processadores ao ano, as chaves deveriam crescer 1 bit cada dois anos. • Se admitirmos que 56 bits era adequado em 79, este valor deveria ser 64 em 93 e 128 em 2121. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Ataque ao DES • Em 2006 um computador dedicado designado de COPACOBANA construído por $10,000 quebrou o DES com ataques de força bruta em 8,7 dias • Actualmente (2009) consegue-se o mesmo em apenas 6 dias. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 13 Departamento de Engenharia Informática DES Triplo - Com 3 chaves de 56 bits diferentes, DES triplo consegue segurança efectiva de 112 bits (< 168 bits) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Criptografia: Classificação das cifras • Segundo o modelo de operação – Por blocos • Facilita a análise P EK C DK P – Contínuas (stream) • Cifra de um bloco depende dos blocos anteriores • Necessita mecanismo de inicialização 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 14 Departamento de Engenharia Informática Por Blocos versus Contínuas: Exemplo Original Cifra Por Bloco Cifra Contínua Fonte: Wikipedia 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Modos de cifra • Inicialmente apresentados para o DES – – – – ECB (Electronic Code Book) CBC (Cipher Block Chaining) OFB (Output Feeback Mode) CFB (Cipher Feedback Mode) • Podem ser usados por outras cifras por blocos 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 15 Departamento de Engenharia Informática Modos de cifra: ECB e CBC Electronic Code Book Ci = EK(Ti) Ti = DK(Ci) T1 T2 EK EK C1 C2 DK DK T1 T2 Cipher Block Chaining Ci = EK(Ti ⊕ Ci-1) Ti = DK(Ci ) ⊕ Ci-1 Tn EK EK IV Cn DK 2008/09 DK IV T1 T2 EK EK C1 C2 DK DK T1 T2 EK DK Tn-1 Tn EK EK Cn-1 Cn DK DK Tn-1 Tn Tn José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Modos de cifra: OFB e CFB Output Feedback (autokey) Ci = Ti ⊕ EK(Si) Ti = Ci ⊕ EK(Si) Si = f(Si-1, EK(Si-1)) 2008/09 Ciphertext Feedback Ci = Ti ⊕ EK(Si) Ti = Ci ⊕ EK(Si) Si = f(Si-1, Ci) José Alves Marques. João Barreto, Ricardo Chaves 16 Departamento de Engenharia Informática Algoritmos de Cifra Simétrica • • • • • • • DES Triple DES RC4 RC5 IDEA Blowfish AES – Advanced Encription Standard – norma futura dos EUA com chaves de 128, 196 e 256 bits 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Algoritmos de Cifra Simétrica (Comp.) • Rijndael - Advanced Encryption Standard (AES) • Fonte: Computer Networks, Andrew Tanenbaum 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 17 Departamento de Engenharia Informática Criptografia Assimétrica 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Algoritmos de cifra assimétrica • • • • Diffie Hellman RSA DSS – baseado ElGamal Curvas elípticas 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 18 Departamento de Engenharia Informática RSA - Rivest Shamir Adleman • Algoritmo de cifra de chave pública mais divulgado • Patente expirou recentemente • Enquanto era válida, os autores permitiram aos browsers utilizar o algoritmo sem pagar desde que reconhecessem a sua empresa (VeriSign) como autoridade para gerar certificados 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática RSA - Rivest Shamir Adleman • O método baseia-se na existência de duas chaves • Qualquer uma pode ser usada para cifrar ou decifrar • Uma das chaves é pública Kp (todos conhecem) e outra é privada ou secreta Ks • O emissor cifra a mensagem efectuando a exponenciação da informação elevada à chave Kp e efectuando o módulo com N: {M}Kp = MKp mod N • O receptor decifra a informação efectuando a exponenciação com a outra chave e calculando o módulo N: M= ({M}Kp)Ks mod N 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 19 Departamento de Engenharia Informática Fundamento do RSA • • • • • P,Q números primos da ordem de 10100 N = P*Q Z = (P-1)*(Q-1) Kp e Ks são primos com Z tais que Kp*Ks = 1 mod Z (Fundamento matemático: i Ks * Kp = i mod N) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Chaves • São trocados N e Kp que constituem a chave pública • N e Ks são a chave privada 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 20 Departamento de Engenharia Informática Exemplo do cálculo das Chaves 1- Escolhem-se dois números primos P e Q e calcula-se N e Z, – Vamos supor P = 11, Q = 13: – N = P * Q = 11 x 13 = 143 – Z = (P - 1)*(Q - 1). = 10 x 12 = 120 2 - A chave Kp é um número co-primo com Z. Neste caso, Z = 2*2*2*3*5, pelo que podemos escolher K p = 7 3 - Para calcular Ks é necessário resolver a equação Kp* Ks = 1 mod Z, – Ks *7= 1 mod 120 – Ks * 7 = 1, 121, 241, 361, 481, 601, 721 – Ks = 721:7 = 103 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Exemplo do cálculo das Chaves 4 - Os blocos sobre os quais se efectua a cifra têm que ser inferiores a N. – Podemos usar 27 = 128 <143. Neste caso, a cifra calcular-se-ia efectuando as seguintes operações sobre blocos de informação de 7 bits. Emissor: M7 mod 143 => {M }Kp Receptor: {M }Kp103 mod 143 => M 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 21 Departamento de Engenharia Informática Segurança do RSA • Actualmente, chaves são normalmente de 1024-2048 bits • Recomendação é de 2048 bits, pelo menos – Chaves de 256 bits quebradas em poucas horas com PC – Em 1999, chave de 512 bits foi quebrada por sistema distribuído de centenas de computadores – Alguns peritos acreditam que 1024 bits será quebrável a curtoprazo – Computador quântico (se algum dia vier a existir) quebra chave RSA facilmente (tempo polinomial) • Usando Algoritmo de Shor 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Segurança do RSA (2) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 22 Departamento de Engenharia Informática Cifra Mista • Os algoritmos de cifra assimétrica como são computacionalmente complexos não são usados normalmente para cifrar a informação. • O uso habitual é para trocar uma chave secreta que será usada para cifrar com um algoritmo de cifra simétrica a informação • Cifras mistas – Usa-se cifra assimétrica para trocar apenas uma chave secreta – Usa-se cifra simétrica e a chave secreta para os restantes dados 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Distribuição e gestão de chaves 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 23 Departamento de Engenharia Informática Distribuição e gestão de chaves • Distribuição das chaves é problema de difícil resolução • Cifras simétricas – Há que divulgar um valor secreto a universos limitados de interlocutores legítimos • Que o devem manter secreto • Cifras assimétricas – Há que garantir que a chave privada apenas é conhecida pela entidade a que pertence – Há que garantir que a chave pública é verdadeira e que não foi modificada para induzir um agente a trocar informação com um atacante • Ataque “man in the middle” • Autoridades de certificação 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Diffie-Hellman • O objectivo deste protocolo é criar uma chave simétrica a partir da troca de valores em claro entre os dois interlocutores • O algoritmo baseia-se na dificuldade computacional de efectuar logaritmos de grandes números. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 24 Departamento de Engenharia Informática Diffie-Hellman • 1 - A e B escolhem números primos de 512 bits n e g e trocam-nos abertamente na rede. • 2 - Cada um escolhe agora aleatoriamente um número de 512 bits e mantém-no secreto (designemo-los por x e y). Calculam respectivamente: • TA = gx mod n • TB = gy mod n • 3 - TA e TB são trocados entre os dois interlocutores. • 4 - A calcula TBx mod n e B calcula TAy mod n. Estes valores são a chave secreta a utilizar pelos interlocutores. Os valores são idênticos, porque: TBx mod n = (gy)x mod n = gx.y mod n = (gx)y mod n = TAy mod n Propriedade de 2008/09 aritmética modular José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Man-in-the-Middle 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 25 Departamento de Engenharia Informática Autenticação 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Autenticação • A autenticação baseia-se sempre em o sistema apresentar um desafio que o agente deve saber responder. • O desafio pode ser: – Fornecer um informação que deve ser secreta, • Senha – Apresentar um identificador físico • Cartão, Chave física – Fornecer informação biométrica • Impressões digitais, estrutura da íris 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 26 Departamento de Engenharia Informática Autenticação em sistemas distribuídos: Aproximações • Uso do mecanismo local de autenticação – Autenticação por cada ligação TCP/IP • telnet, ftp, http • Envio em claro de pares (nome, senha) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Protocolo Simples de Autenticação 1) 2) 3) C ->S: S ->C: C ->S: “Iniciar Sessão” D {D}K cs O segredo neste caso é a chave Kcs O protocolo tem vários problemas: – Não é recíproco, só autentica o cliente; – O valor de D tem de variar senão pode ser reutilizado; – É necessário estabelecer a chave secreta entre o cliente e o servidor. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 27 Departamento de Engenharia Informática Protocolo de Needham-Schroeder – criptografia simétrica C S Saut C C, S, Nc {Nc ,S, Kcs, {Kcs, C}Ks}Kc Saut S Kcs Saut Kc Ks {Kcs, C}Ks C {Ns}Kcs S {Ns-1}Kcs Pode ser alvo de Replay Attack se atacante descobrir KCS e enviar esta mensagem para S 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Autenticação: Kerberos Kerberos Ticket Autenticação Granting Service 1) 2) Cliente Servidor 3) 4) Identificação (login) Pedido de acesso ao servidor 5) Execução das operações 2008/09 6) 1) Identifica-se 2) Ticket para o TGS 3) Pedido de acesso ao Servidor 4) Ticket para o Servidor 5) Pedido Operação 6) Resultado Operação José Alves Marques. João Barreto, Ricardo Chaves 28 Departamento de Engenharia Informática Autenticação : Kerberos (Simplificado) C, S, n C login C {Kc,s, n}Kc, ticketc,s Saut 2008/09 S Kc,s Saut Kc KS ticketx,y = {x, y, T1, T2, Kx,y}Ky authx,y = {x, Treq}Kx,y S {Treq, resposta}Kc,s Saut C ticketc,s, authc,s, pedido, Treq acesso a S S José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Autenticação : Kerberos (V5) C, TGS, n C login {Kc,tgs, n }Kc , ticketc,tgs C Saut 2008/09 {Treq, resposta}Kc,s Saut S Kc,s TGS Kc,tgs Saut Kc Ks Ktgs TGS ticketx,y = {x, y, T1, T2, Kx,y}Ky ticketc,s, authc,s, pedido, Treq acesso a S TGS C ticketc,tgs, authc,tgs, S, n2 pedido de acesso a S{Kc,s, n2 }Kc,tgs, ticketc,s S Porquê a separação Saut/TGS? S authx,y = {x, Treq}Kx,y José Alves Marques. João Barreto, Ricardo Chaves 29 Departamento de Engenharia Informática Kerberos • Escalabilidade – Subdivisão em realms – Cada realm possui um Saut e um TGS – Um realm pode aceitar autenticações feitas por outro • Exploração – Segurança física dos servidores e das respectivas BDs • Saut e TGS – Relógios sincronizados • Para validar tickets e authenticators 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Protocolo de Needham-Schroeder criptografia assimétrica C, S {KpS, S} K s Saut Saut { NC, C } K PS S,C C Saut {KpC, C} KSaut S {NC, NS, S} KPC {NS} KPS 8/28/2003 2008/09 José Alves Marques José Alves Marques. João Barreto, Ricardo Chaves 30 Departamento de Engenharia Informática Protocolo de Needham-Schroeder – criptografia assimétrica 1: C -> Saut: C, S 2: Saut -> C: {Kps, S}KsSaut • O cliente pede ao servidor de autenticação a chave pública do servidor S • O servidor de autenticação envia para o cliente a chave pública do servidor (Kps), cifrada com a sua chave privada para garantir a autenticação da informação. • A mensagem é decifrada utilizando a chave pública do servidor de autenticação, conhecida de todos. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Protocolo de Needham-Schroeder – criptografia assimétrica 3: C -> S: • • O cliente envia ao servidor uma mensagem cifrada com a chave pública do servidor (Kps) que contém o seu identificador e um carimbo. Só o servidor, utilizando a sua chave privada, pode ver o conteúdo da mensagem. 4: S -> Saut: 5: Saut -> S: • {Nc, C} Kps C,S {Kpc, C} KsSaut As etapas 4 e 5 repetem o protocolo do lado do servidor. Este pede ao servidor de autenticação a chave pública do cliente. 6: S -> C : 7: C -> S: 2008/09 { Nc, Ns, S}Kpc { Ns }Kps José Alves Marques. João Barreto, Ricardo Chaves 31 Departamento de Engenharia Informática Assinatura Digital Autenticação e Integridade da Informação 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Assinaturas digitais • Semelhantes às assinaturas textuais. • Objectivos: – Identificar inequivocamente o autor de um texto (autenticidade) – Impedir alterações do texto (integridade) – Impedir que o autor repudie o conteúdo a posteriori (não-repudiação) • As assinaturas não fazem sentido isoladas; só junto do texto a que se referem 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 32 Departamento de Engenharia Informática Propriedades de Cifra de Chave Pública • E(D(P)) = P • Utilização inversa da usual • RSA tem esta propriedade 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Assinaturas digitais • Técnica base de Autenticação – Assinatura de T por A • {T}Kprivada A – Validação da assinatura: • T == {assinatura}Kpública A • Como é evidente, o sistema de cifra tem de ser de chave assimétrica senão não havia possibilidade de garantir que a assinatura não era forjada • Problemas? 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 33 Departamento de Engenharia Informática Funções de Resumo ou Dispersão (Digest/Hash) • Função H que recebe um texto (possivelmente longo) e devolve uma sequência de bits de comprimento fixo (e.g., 160 bits) • Propriedades: – Não-invertível – dado H(P) é impossível determinar P cujo resumo é H(P) – Sem colisões – impossível encontrar P1, P2 tais que H(P1) = H(P2) • Devem também ser muito eficientes (versus criptografia assimétrica) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Paradoxo do Aniversário • Quantas operações são necessárias para encontrar uma colisão numa chave de m bits? • Qual a probabilidade de duas pessoas na aula terem o mesmo aniv.? • Para n>=23, p>50% – Numero de pares de aniversários = C(23,2) = 22 * 23 / 2 = 253 pares • Resposta à pergunta inicial: 2m/2 (muito menos do que 2m) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 34 Departamento de Engenharia Informática Funções Resumo (Digest) • A função MD5 [Rivest92]. – A informação é processada em blocos de 512 bits (16 palavras de 32 bits) e o valor do resumo é uma palavra de 128 bits. – Em cada etapa é calculado um novo valor de resumo baseado no valor anterior e no bloco seguinte de 512 bits da mensagem. • A função SHA-1 é a norma dos EUA. Resumo de 160 bits • A mais recente função SHA-2 produz um resumo de 256 a 516 bits Message MD5 Digest I need a raise of $10,000. 9i5nud5r2a9idskjs2tbuop2ildax I need a raise of $100,000. 8m4ikijuelaidsfg8asyfnasdfgll I need a raise of $1,000,000. 4M9i2t8c7h4361712t1h4e1d1otg7 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Protocolo de Assinatura Digital 1. A -> B: I, A, {D(I)} KsA A envia para B a informação I e a respectiva assinatura constituída pelo resumo da informação obtido pela função resumo D, cifrado com a chave privada de A. 2. B -> SAUT : A 3. SAUT -> B: A, KpA B pede ao servidor de autenticação a chave pública de A. 4. B: 5. B: calcula D(I) decifra ({D(I)} com KpA Com a chave pública de A (KpA), B decifra a assinatura 6. B: Compara os dois Se for idêntica, a mensagem não foi modificada, garante a integridade e tem a certeza que foi A que a enviou, garante a autenticação. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 35 Departamento de Engenharia Informática MAC (Código de autenticação de mensagem) • Garante integridade e autenticidade de mensagens • Pressuposto: interlocutores partilham segredo (ou “chave secreta” KAB) • Exemplo (HMAC): – – – – 2008/09 m = mensagem k = segredo KAB opad,ipad = padding fixo h = função de hash José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática MAC (Código de autenticação de mensagem) • Emissor envia <m, HMAC(m)> • Receptor calcula HMAC da mensagem recebida, e compara com HMAC recebido • Se são iguais, há garantia de integridade e que foi produzida pelo (outro) detentor de KAB • Propriedade das assinaturas digitais não oferecida? Porquê? 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 36 Departamento de Engenharia Informática Certificados de chaves públicas • Validação de assinaturas digitais – Sensível à correcção das chaves públicas respectivas • Têm de ser as correctas • Têm que estar ainda em uso • Certificados de chaves públicas – Documento que associa uma chave pública a: • Um dono (nome, e-mail, etc.) • Datas (de emissão, de validade) • Outra informação – assinado por uma autoridade de certificação • Institucional ou não • A norma X.509 é a mais utilizada para formato de certificados 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Formato do Certificado X509 Subject Distinguished Name, Public Key Issuer Distinguished Name, Signature Period of validity Not Before Date, Date Administrative information Version, Serial Number Not After Extended information 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 37 Departamento de Engenharia Informática Autoridades de certificação: Sistemas ad-hoc ou hierárquicos • Certificação ad-hoc – Cada utilizador escolhe em quem confia como autoridade de certificação (ex. PGP) • Certificação hierárquica – Existe uma hierarquia de certificação (institucional) • Árvore de Certification Authorities (CAs) – Cada CA emite certificados assinados com a sua chave pública • Que é distribuída em certificados assinados pela CA acima na hierarquia • A chave pública da raiz é bem conhecida (configurada manualmente, e.g., os browsers reconhecem a VeriSign) – Funções de uma CA • Emissão e distribuição de certificados • Gestão e distribuição de listas de certificados revogados 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Public Key Infrastructure (PKI) • Infra-estrutura de apoio ao sistema de Chavespúblicas – Criação segura de pares de chaves assimétricas – Criação e distribuição de certificados de chavespúblicas – Definição e uso das cadeias de certificação – Actualização, publicação e consulta da lista de certificados revogados – Revogação de certificados: qual o compromisso? 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 38 Departamento de Engenharia Informática 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Autorização 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 39 Departamento de Engenharia Informática Política de Autorização • Baseia-se na autenticação – Num ambiente distribuído é mais difícil manter um esquema de protecção baseado na identificação dos utilizadores – As UID têm de ser definidas num espaço único ou então devem ser convertidas em cada máquina. – Não é pratico ter passwords para os vários servidores – Os tickets do Kerberos são uma solução para a autenticação porque são independentes de qualquer identificação local 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Matriz de direitos de acesso Objectos Agentes O1 O2 O3 O4 A1 R RW RX --- A2 RX --- RW R • Decomposição da tabela – Listas de controlo de acesso (Access Control Lists, ACLs) • Guardadas junto de cada objecto – Capacidades (capabilities) • Guardadas junto de cada agente • A autenticação dos agentes é fulcral – Para determinar a parcela da ACL que lhe é aplicável – Para distribuir as capacidades correctas 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 40 Departamento de Engenharia Informática Uma ilustração do que constitui uma capacidade • Um utilizador tem um nome de um ficheiro ex.: /etc/passwd . Este nome é apenas um identificador • Supondo que temos também os direitos /etc/passwd O_RDWR. Temos o nome e os direitos mas não é uma capacidade porque não são validados por nenhum monitor de autorização • Consideremos a habitual abertura de ficheiro - int fd = open("/etc/passwd", O_RDWR); • A variável fd pode ser considerada uma capacidade que pode ser usada nos acessos subsequentes ao ficheiro • A razão de ser segura é que a tabela de ficheiros abertos não pode ser manipulada pelo utilizador 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Canal de Comunicação Seguro 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 41 Departamento de Engenharia Informática Canais de comunicação seguros: Funcionalidade • Privacidade – Dos dados • Cifra dos dados enviados – Dos fluxos de informação • Integridade – Das mensagens • Adição de valores de controlo não forjáveis – Dos fluxos de mensagens • Contextos de cifra e/ou controlo • Autenticidade – Dos interlocutores • Cifra de valores pré-combinados e frescos – Com uma chave secreta partilhada por emissor e receptor – Com a chave privada do emissor • • Não Repudiação Autorização 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Argumento “extremo-a-extremo” (End-to-end principle) • As funcionalidades dos protocolos de comunicação devem ser implementadas pelos extremos do canal de comunicação (sempre que possível), pois… – Ao implementar nos níveis mais baixos, obrigam todos os canais a pagar o seu custo, mesmo que não queiram – Evitam redundâncias, quando as funcionalidades têm de ser repetidas extremo-a-extremo • Princípio de desenho do IP 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 42 Departamento de Engenharia Informática Nível de Protocolo • Nível de protocolo onde realizar o canal seguro – Ligação de dados • Podia ser eficientemente implementado no hardware do controlador de rede. • Não evita o ataque aos comutadores – Rede • ex.: IPsec – para Virtual Private Networks • Não vai até ao nível do transporte – Interfaces de Transporte • Sockets - ex.: SSL – Aplicação : • ex.: HTTPS, SSH, PGP, PEM, SET, Handlers dos Web Services 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Exemplo: Correio Electrónico • Idealmente, o correio deveria ser capaz de oferecer os seguintes tipos de serviço: – Privacidade — apenas o receptor é capaz de ler o conteúdo da mensagem; – Autenticação — o receptor pode assegurar-se da identidade do emissor; – Integridade — assegurar ao receptor que a mensagem não foi alterada desde que foi enviada pelo emissor; – Não Repudição — o emissor não pode negar o envio de uma mensagem e o receptor pode, perante uma terceira entidade, provar que o emissor lhe enviou uma mensagem; – Prova de submissão — prova que o emissor enviou a mensagem, semelhante ao registo no correio tradicional; – Prova de entrega — prova que o receptor recebeu a mensagem, semelhante ao aviso de recepção no correio postal. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 43 Departamento de Engenharia Informática PGP – Pretty Good Privacy • Autenticação, privacidade, e assinaturas digitais para email • Não requer confiança em nenhuma autoridade central de certificação (ou PKI) • Gratuito • Usa algoritmos criptográficos existentes 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática PGP 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 44 Departamento de Engenharia Informática Representação de dados binários em texto • Codificação de base 64 • Usa um sub-conjunto de 64 caracteres do ASCII que são os caracteres mais "universais", ou seja, caracteres que são iguais em practicamente todos os códigos: A-Z, a-z, 0-9, +, / • Caracter ‘=‘ usado no final para identificar quantidade de padding requerido • Aumenta tamanho do conteúdo. Qual o overhead? 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Mensagem PGP 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 45 Departamento de Engenharia Informática Gestão de Chaves no PGP • Cada utilizador mantem “anel de chaves públicas” – Chaves públicas conhecidas – Grau de confiança – Depende da forma como chave foi obtida (e.g., número e grau de confiança nas autoridades que a certificaram) • Modelo “web of trust” – Deixa as decisões sobre confiança nas mãos dos utilizadores – Ausência de entidade(s) centralizada(s) (raíz(es) de confiança) 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Privacy Enhanced Mail • Standard IETF para correio electronico seguro (RFCs 1421-4) • Requer uma PKI hierárquica – Autoridades de certificação certificadas pela IPRA – Suporta revogação de certificados – Certificados são validados antes de serem utilizados 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 46 Departamento de Engenharia Informática Privacy Enhanced Mail • No PEM considera-se que o utilizador pode pretender diferentes tipos de serviço: – dados sem protecção; – MIC-CLEAR: • garantia de autenticidade e integridade, • é adicionada uma assinatura (MIC —Message Integrity Code); • os dados não são cifrados; – MIC-ONLY: • garantia de autenticidade e integridade e dados codificados. O PEM codifica a mensagem no código de 6 bits (Base 64) que passará nos servidores de e-mail sem ser modificada – ENCRYPTED: • dados codificados, cifrados e garantia de autenticidade e integridade. • O PEM calcula a assinatura e cifra a mensagem e a assinatura com uma chave secreta escolhida aleatoriamente. A mensagem cifrada, a assinatura e a chave são codificadas para passar nos servidores de e-mail como texto normal. 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Exemplos PEM: MIC-CLEAR From: Alice To: Bob Subject: Ola Date: Sun April 1, 2007 -----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, MIC-CLEAR Content-Type: RFC822 Originator-ID-Asymmetric: <certificate ID> MIC-Info: RSA-MD5, RSA, <encoded MIC> Ola Bob Alice -----END PRIVACY ENHANCED MESSAGE----- 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 47 Departamento de Engenharia Informática Exemplos PEM: MIC-ONLY From: Alice To: Bob Subject: Ola Date: Sun April 1, 2007 -----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, MIC-ONLY Content-Type: RFC822 Originator-ID-Asymmetric: <certificate ID> MIC-Info: RSA-MD5, RSA, <encoded MIC> <mensagem codificada Base 64> -----END PRIVACY ENHANCED MESSAGE----- 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Exemplos PEM: ENCRYPTED From: Alice To: Bob Subject: Ola Date: Sun April 1, 2007 -----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, ENCRYPTED Content-Type: RFC822 DEK-Info: DES-CBC, IV Originator-ID-Asymmetric: <Originator certificate ID> Key-Info: RSA, <chave simetrica cifrada com chave publica da Alice> MIC-Info: RSA-MD5, RSA, <MIC cifrado e base-64> Recipient-ID-Asymmetric: <Recipient certificate ID> Key-Info: RSA, <chave simetrica cifrada com chave publica do Bob> <mensage cifrada com DES-CBC, codificada em base-64> -----END PRIVACY ENHANCED MESSAGE----- 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 48 Departamento de Engenharia Informática PEM vs. PGP Item PGP PEM Mensagem Cifrada? Sim Sim Autenticação? Sim Sim Compressão Sim Não Algoritmo cifra IDEA DES Confiança em entidades? Não (web-of-trust) Sim: IPRA Revogação de Chaves Difícil Sim Standard? Não Sim Desenhado por Investigadores Comité de standards 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Autenticação Básica do HTTP Web Browser Web Server GET /protected/index.html HTTP/1.0 HTTP/1.0 401 Unauthorized WWW-Authenticate: Basic realm = “Basic Authentication Area” Input password GET /protected/index.html HTTP/1.0 Authorization: Basic U2thdGVib2FyZFdhcmVob3VzZTp3c2Jvb2tleGFtcGx1 Codific. Base 64 de “user:password” HTTP/1.0 200 OK 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 49 Departamento de Engenharia Informática Protocolo do SSL SSL Client I •Handshake Start •Client Random •Supported Cipher Suites •Supported Compression Algorithms II •Server Random •Decided Cipher Suite •Decided Compression Algorithm •Server Certificate •Server Public Key III • Client Certificate • Client Public Key •Encrypted Premaster Secret •Handshake Finished IV encrypted and compressed • Handshake Finished • Application Data 2008/09 José Alves Marques. João Barreto, Ricardo Chaves Departamento de Engenharia Informática Canal seguro e os RPC • Se a cifra para garantir o canal seguro for efectuada antes dos stubs perde-se a sua capacidade de tratar a heterogeneidade – Uma grande vantagem dos sistemas de RPC é tratar a heterogeneidade automaticamente nas funções de adaptação - stub • A cifra tem de ser feita depois – Mas convém que seja dentro do mecanismo de RPC para garantir segurança de extremo a extremo, • O RPC pode ser baseado num canal SSL mas há limitações importantes • Se a mensagem SOAP tiver intermediários estes têm de receber parte da informação mas não necessitam de a receber toda em aberto. – Necessidade de cifrar apenas partes da mensagem. • Nos Web Services os handlers foram pensados para permitir implementar as funções de segurança na sequência certa 2008/09 José Alves Marques. João Barreto, Ricardo Chaves 50