Exercícios MT2
Nenhum exercício corresponde a esta pesquisa.
Cifras simétricas, hash e MAC
One-time pad em bitsEscolha múltipla
Teste 2, 2024/25
Considere a cifra one-time pad da mensagem com a chave . Qual é o texto cifrado associado?
Solução
O texto cifrado é .
No one-time pad, cada bit do texto cifrado é o XOR do bit da mensagem com o bit da chave: , , , , , , , , obtendo .
- . O one-time pad faz XOR bit a bit: .
- . Esse valor resulta de somar em vez de fazer XOR.
- . Esse valor resulta de aplicar AND aos bits.
- . Esse valor não corresponde a nenhuma operação bit a bit entre a mensagem e a chave.
Cifra de substituição monoalfabéticaEscolha múltipla
Teste 2, 2024/25
Porque é que as cifras de substituição monoalfabética não garantem confidencialidade segundo os padrões criptográficos modernos?
Solução
Porque os textos cifrados revelam padrões (por exemplo, frequências de letras) das mensagens originais.
Numa cifra de substituição monoalfabética, cada letra é sempre substituída pela mesma letra do alfabeto, pelo que as frequências relativas se mantêm. Um atacante pode explorar esses padrões com análise de frequências para recuperar a mensagem.
- Porque a cifra substitui letras por outras, permitindo ler parte da mensagem original. A substituição em si não torna a mensagem legível sem a chave.
- Porque o espaço de chaves é demasiado pequeno e um computador moderno testa a chave por força bruta. O problema não é o tamanho do espaço de chaves, mas a preservação de padrões estatísticos.
- Porque um adversário pode adulterar a mensagem subjacente alterando o texto cifrado. Isso descreve um problema de integridade, não de confidencialidade.
- Porque os textos cifrados resultantes revelam padrões das mensagens cifradas. A substituição preserva frequências de letras, permitindo análise de frequências.
Colisão de uma função de hashEscolha múltipla
Teste 2, 2024/25
Considere uma função de hash . O que é uma colisão de ?
Solução
Uma colisão ocorre quando mas .
Uma função de hash não é injetiva em geral: o espaço de entradas é maior que o de saídas. Uma colisão é precisamente um par de mensagens distintas com o mesmo valor de hash, e a resistência a colisões exige que seja computacionalmente inviável encontrar esse par.
- Se e produz uma saída com um prefixo semelhante ao de . Semelhança de prefixos não é o conceito de colisão.
- Se e produz a mesma saída que . É a definição exata de colisão.
- Acontece quando duas funções de hash percorrem direções opostas. Não tem significado criptográfico.
- Se e produz a mesma saída que . Entradas iguais não são uma colisão.
Garantias da cifragem autenticada simétricaEscolha múltipla
Teste 2, 2024/25
Qual das seguintes garantias NÃO é assegurada por uma cifragem autenticada simétrica?
Solução
O não repúdio não é assegurado.
A cifragem autenticada simétrica garante confidencialidade (cifra) e integridade/autenticidade de origem (MAC com chave partilhada). Como a mesma chave secreta é conhecida pelas duas partes, nenhuma delas pode negar ter gerado a etiqueta, pelo que o não repúdio exige criptografia de chave pública com assinatura digital.
- Não repúdio. Como a chave é partilhada, qualquer das partes pode ter produzido o MAC, logo não há não repúdio.
- Integridade. É precisamente o que o MAC acrescenta à cifra.
- Correção. A decifra devolve a mensagem original quando a verificação passa.
- Confidencialidade. É a garantia base da cifra simétrica.
Criptografia de chave pública
RSA simples é determinísticoEscolha múltipla
Teste 2, 2024/25
Considere a cifra RSA simples: chave pública e chave privada , com c = m^e mod n e m = c^d mod n. Qual das seguintes afirmações é verdadeira?
Solução
O RSA simples não garante confidencialidade porque é determinístico.
Como c = m^e mod n não usa qualquer valor aleatório, cifrar a mesma mensagem duas vezes produz o mesmo texto cifrado, o que permite detetar repetições e facilita ataques. Na prática usa-se RSA-OAEP, com preenchimento aleatório (padding), que torna a cifra probabilística.
- Este esquema não garante confidencialidade porque é determinístico. Sem aleatoriedade, cifrar duas vezes a mesma mensagem dá o mesmo texto cifrado.
- Este esquema não garante confidencialidade porque, dada um texto cifrado, um adversário recupera a mensagem. Recuperar a partir de sem equivale a resolver o problema RSA.
- Este esquema é seguro contra computadores quânticos. O algoritmo de Shor quebra o RSA com um computador quântico.
- Este esquema é seguro se a fatorização de inteiros for um problema computacionalmente difícil. Essa é a condição de segurança do RSA, mas não resolve por si a falta de confidencialidade da cifra determinística.
Assinaturas digitais versus MACEscolha múltipla
Teste 2, 2024/25
Que garantia de segurança é assegurada por assinaturas digitais, mas não por códigos de autenticação de mensagem (MAC)?
Solução
O não repúdio.
Um MAC usa uma chave simétrica partilhada, pelo que qualquer conhecedor da chave pode produzi-lo: não permite atribuir a autoria a uma entidade concreta. Uma assinatura digital usa a chave privada do signatário, pelo que só esse signatário a pode ter gerado, garantindo não repúdio.
- Unicidade. Não é o conceito em causa.
- Não repúdio. Só o titular da chave privada pode assinar, logo não pode negar a autoria.
- Anonimato. As assinaturas não dão anonimato.
- Integridade. Tanto a assinatura como o MAC garantem integridade.
Cifrar e assinar uma mensagemEscolha múltipla
Teste 2, 2024/25
A Alice tem o par de chaves e o Bob tem . Ambos conhecem as duas chaves públicas. A Alice quer enviar a mensagem ao Bob. Como deve cifrar e assinar a mensagem?
Solução
Cifra-se com e assina-se com .
Para confidencialidade, cifra-se com a chave pública do destinatário (), de modo a que só o Bob, com , decifre. Para autenticidade e não repúdio, assina-se com a própria chave privada (), que só a Alice possui.
- Cifrar com ; assinar com . Usa as chaves no papel errado: cifra com a privada e assina com a pública.
- Cifrar com ; assinar com . Só o Bob pode decifrar (chave privada ) e só a Alice pode ter assinado ().
- Cifrar com ; assinar com . Usa as chaves no papel errado.
- Cifrar com ; assinar com . A cifra ficaria apenas decifrável pela Alice e a assinatura seria do Bob.
Decifra do paradigma híbridoEscolha múltipla
Teste 2, 2023/24
No paradigma híbrido, a mensagem é primeiro cifrada com uma chave simétrica nova: . Esse texto cifrado é enviado, bem como a cifra dessa chave com a chave pública do destinatário: . Como se faz a decifra de tal mensagem?
Solução
e depois .
A chave de sessão foi cifrada com a chave pública do destinatário, logo só a chave privada correspondente () a recupera. Com recuperada, decifra-se o corpo com a cifra simétrica. Assim, a morosidade da cifra assimétrica aplica-se apenas a uma chave curta.
- ; . A decifra de exige a chave privada, não a pública.
- ; . O destinatário usa a sua chave privada para recuperar e depois decifra o corpo da mensagem.
- . Não existe uma decifra conjunta assim.
- ; . Troca os papéis de e .
Modos de cifra e cifragem autenticada
Alterar bits no modo CTREscolha múltipla
Teste 2, 2024/25
Considere a cifra AES em modo CTR, com blocos de 16 bits. Se alterarmos 3 bits do segundo bloco do texto cifrado, quantos bits da mensagem original são afetados na decifra?
Solução
3 bits da mensagem original ficam afetados.
No modo CTR, , pelo que a decifra é . Alterar 3 bits de altera apenas os mesmos 3 bits de ; não há propagação de erro como no CBC.
- 19 bits. Esse valor não corresponde a nenhum efeito do CTR.
- 0 bits. Os bits alterados propagam-se para a mensagem.
- 16 bits. No CTR não há encadeamento de blocos, logo não se perde o bloco inteiro.
- 3 bits. No modo CTR cada bloco de texto cifrado é XOR com o keystream; alterar 3 bits do bloco afeta exatamente esses 3 bits da mensagem.
EtM, MtE ou EtM na cifragem autenticadaEscolha múltipla
Teste 2, 2024/25
Considere um par de chaves , uma cifra e um MAC . O esquema de cifragem autenticada funciona assim: ; ; devolve-se . Que tipo de cifragem autenticada é esta?
Solução
É MAC-then-Encrypt (MtE).
A etiqueta é calculada sobre a mensagem em claro e só depois o conjunto é cifrado com a chave . Essa ordem, MAC sobre o texto em claro seguido de cifra, caracteriza o modo MAC-then-Encrypt.
- MAC-and-Encrypt. Nesse modo o MAC de é enviado ao lado do texto cifrado de , não dentro dele.
- MAC-then-Encrypt. Calcula-se primeiro o MAC sobre e depois cifra-se .
- Encrypt-and-MAC. Nesse modo cifra-se e calcula-se o MAC em paralelo.
- Encrypt-then-MAC. Nesse modo cifra-se primeiro e calcula-se o MAC sobre o texto cifrado.
Troca de chaves Diffie-HellmanEscolha múltipla
Teste 2, 2023/24
Considere a troca de chaves Diffie-Hellman: a Alice e o Bob geram e , respetivamente, e enviam e pela rede. Como podem usar isto para trocar um segredo?
Solução
A Alice calcula e o Bob calcula ; esse valor comum é o segredo partilhado.
Cada parte eleva o valor recebido à sua chave privada: e . Um atacante que só vê , e enfrenta o problema do logaritmo discreto para obter .
- e são o mesmo valor e podem ser usados como segredo. Em geral .
- A Alice calcula e o Bob calcula , sendo ambos iguais a . .
- A Alice calcula e envia-o ao Bob. A Alice não conhece , logo não pode calcular diretamente.
- O segredo é dividido por . Não existe essa operação no protocolo.
TLS e segurança de redes
Função do handshake TLSEscolha múltipla
Teste 2, 2024/25
Qual é o papel do protocolo de handshake no TLS?
Solução
Estabelecer o material criptográfico e os parâmetros para a comunicação.
Durante o handshake, cliente e servidor autenticam-se (tipicamente o servidor via certificado), concordam cifras e parâmetros e derivam as chaves de sessão que o protocolo de registo usa depois para cifrar e autenticar os dados.
- Divulgar a identidade dos participantes no canal. A identidade não é o objetivo central do handshake.
- Notificar regularmente a vitalidade do canal. Isso não é função do handshake.
- Estabelecer o material criptográfico e os parâmetros da comunicação. É o que o handshake negoceia antes da troca de dados.
- Cifrar e decifrar as mensagens trocadas no canal. Isso é papel do protocolo de registo, não do handshake.
TLS, PKI e cifras assimétrica e simétricaEscolha múltipla
Teste 2, 2024/25
Qual é a relação entre TLS, PKI e a criptografia de chave pública e simétrica?
Solução
O TLS valida as chaves públicas através de certificados da PKI e usa-as para estabelecer uma chave simétrica de sessão.
Numa sessão HTTPS habitual, o servidor apresenta um certificado X.509 emitido por uma autoridade de certificação; o cliente valida a assinatura desse certificado (confiando na raiz da PKI) e usa a chave pública autenticada do servidor para estabelecer, por exemplo via (EC)DHE, uma chave simétrica de sessão.
- A Alice e o Bob usam canais TLS para trocar chaves simétricas, que depois cifram as chaves públicas. As chaves públicas não são cifradas com chaves de sessão.
- As PKI usam canais TLS para comunicar certificados, que transportam chaves simétricas. Os certificados transportam chaves públicas, não simétricas.
- As assinaturas digitais autenticam chaves simétricas, que depois autenticam os utilizadores no protocolo TLS. Confunde o papel das assinaturas no handshake.
- O TLS usa certificados de uma PKI para validar chaves públicas, que são depois usadas para estabelecer uma chave simétrica e criar um canal seguro. Descreve corretamente a cadeia de confiança e a derivação da chave de sessão.
IPsec e falsificação de IPEscolha múltipla
Teste 2, 2024/25
Porque é que o IPsec é resiliente à falsificação de endereços IP (IP spoofing), ao contrário do TLS?
Solução
Porque o IPsec opera na camada de rede e autentica o conteúdo dos cabeçalhos IP.
Com o Authentication Header (AH), o IPsec calcula um MAC sobre o cabeçalho IP (incluindo os endereços de origem e destino), pelo que pacotes com endereços forjados falham a verificação. O TLS opera acima da camada de rede e não protege o cabeçalho IP.
- Porque o IPsec usa mecanismos de cifra mais fortes que o TLS. A força da cifra não é o que impede o spoofing.
- Porque o IPsec existe na camada de rede e pode validar o conteúdo dos cabeçalhos IP. O AH/ESP autenticam o cabeçalho IP, detetando endereços forjados.
- Porque o IPsec é usado em firewalls, que validam origem e destino dos pacotes. Isso descreve a filtragem da firewall, não o IPsec.
- Devido ao protocolo de acordo de algoritmos usado no IPsec. O acordo de algoritmos não impede o spoofing.
Ataque de Rogue DHCPAutoavaliação
Exame final, 2021/22
Descreva um ataque de Rogue DHCP e explique porque pode ser útil no contexto do lançamento de ataques man-in-the-middle.
Solução
Um Rogue DHCP é um servidor DHCP falso na rede local que responde aos pedidos dos clientes antes do servidor legítimo, distribuindo como gateway ou servidor DNS uma máquina do atacante. Assim, o tráfego da vítima passa pela máquina do atacante, que pode intercetá-lo ou modificá-lo (man-in-the-middle).
O DHCP não autentica as respostas: o cliente aceita o primeiro servidor que responder. Se o atacante colocar um servidor falso na rede, consegue indicar-se a si próprio como gateway padrão ou como DNS, fazendo passar por si todo o tráfego da vítima, que pode então ler ou alterar antes de reencaminhar.
Confere a tua resposta:
- A resposta descreve um servidor DHCP falso que responde antes do servidor legítimo.
- A resposta indica que o atacante distribui endereços IP e o endereço do gateway/DNS próprio.
- A justificação liga o controlo do gateway/DNS ao redirecionamento do tráfego da vítima (MITM).
Segurança Web e autenticação
Vulnerabilidade de injeção SQLAutoavaliação
Exame final, 2021/22
Considere o código seguinte, que prepara uma consulta SQL. Identifique a vulnerabilidade que contém.
uName = getRequestString("username");
uPass = getRequestString("userpassword");
sql = 'SELECT * FROM Users WHERE Name ="' +
uName + '" AND Pass ="' + uPass + '"';
Solução
O código é vulnerável a injeção SQL: os valores de username e userpassword são concatenados diretamente no texto da consulta, sem qualquer escapagem ou consulta parametrizada.
Se o utilizador introduzir " OR "1"="1 no campo do nome, a consulta torna-se SELECT * FROM Users WHERE Name ="" OR "1"="1" AND Pass ="...", que é verdadeira para todas as linhas, permitindo autenticação sem palavra-passe. A correção passa por consultas parametrizadas (prepared statements), que tratam os dados como dados e nunca como código SQL.
Confere a tua resposta:
- A resposta identifica injeção SQL (SQL injection).
- A justificação explica que os parâmetros do utilizador são concatenados diretamente na consulta.
- A resposta indica um exemplo de entrada maliciosa que altera a condição (por exemplo,
" OR "1"="1).
XSS refletido versus XSS armazenadoAutoavaliação
Exame final, 2021/22
Qual é a diferença entre um ataque reflected XSS e um ataque stored XSS?
Solução
No XSS refletido, o script malicioso é injetado num pedido da vítima (por exemplo, num parâmetro do URL) e o servidor devolve-o na resposta, sem o validar. No XSS armazenado, o script é guardado permanentemente no servidor (por exemplo, num comentário ou perfil) e é servido a todas as vítimas que acedem à página afetada.
Em ambos os casos o navegador da vítima executa código JavaScript do atacante no contexto da origem legítima. A diferença está na persistência: o refletido exige enganar a vítima para seguir um link especial, enquanto o armazenado persiste no servidor e atinge automaticamente todos os visitantes, sendo potencialmente muito mais grave. A defesa comum é a sanitização/validação de todas as entradas e a codificação das saídas consoante o contexto.
Confere a tua resposta:
- A resposta explica que no XSS refletido o script malicioso vem no próprio pedido (por exemplo, num parâmetro do URL).
- A resposta indica que o servidor reflete esse script na resposta sem o sanitizar.
- A resposta explica que no XSS armazenado o script fica guardado no servidor (por exemplo, numa base de dados) e é servido a todos os visitantes.
Armazenamento de palavras-passe com saltAutoavaliação
Exame final, 2021/22
Considere três servidores que guardam credenciais de utilizadores: o servidor A guarda em claro; o servidor B guarda ; e o servidor C guarda , em que o salt é gerado independentemente para cada utilizador. Explique porque é que as garantias de segurança, em caso de fuga da base de dados (data breach), são superiores no servidor C.
Solução
No servidor A, uma fuga expõe diretamente as palavras-passe. No servidor B, os hashes sem salt podem ser atacados com tabelas rainbow ou dicionários pré-computados, e utilizadores com a mesma palavra-passe têm o mesmo hash. No servidor C, o salt aleatório e único por utilizador inviabiliza as tabelas pré-computadas e obriga a um ataque de força bruta individual por conta, aumentando muito o custo do ataque.
O salt não torna o hash mais forte por si só, mas elimina os atalhos coletivos: sem salt, um atacante calcula para milhões de palavras-passe uma única vez e compara com todos os hashes da base de dados. Com salt único por utilizador, cada hash exige um ataque separado, pelo que a fuga de credenciais fica contida.
Confere a tua resposta:
- A resposta compara os três esquemas: texto em claro, hash sem salt e hash com salt.
- A justificação menciona ataques de dicionário e tabelas rainbow contra hashes sem salt.
- A resposta explica que o salt único por utilizador impede o uso de tabelas pré-computadas e obriga a atacar cada hash individualmente.