Questão nº 67
Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 67)
O analista Edson desenvolveu o aplicativo TribunalSeguro. Desenvolvido em Java 8, o TribunalSeguro envia e recebe mensagens por meios digitais não confiáveis. Com o intuito de reforçar a segurança, antes de enviar uma mensagem, o aplicativo solicita ao usuário uma chave secreta para ser aplicada no cálculo da integridade da mensagem. Ao receber a mensagem, o usuário de destino deve informar a chave secreta compartilhada pelo usuário de origem, a fim de proceder com a verificação da integridade. Sendo assim, Edson recorreu à classe do pacote javax.crypto que provê, de forma específica, a funcionalidade de cálculo e verificação de integridade com o uso de chave secreta.
Edson recorreu à classe do javax.crypto:
- AMac (alternativa correta)
- BCipher
- CSealedObject
- DKeyGenerator
- EKeyAgreement
Resposta comentada
Gabarito Alternativa A
A integridade da mensagem garante que o conteúdo de uma mensagem não foi alterado durante o transporte. Para verificar essa integridade usando uma chave secreta compartilhada, utiliza-se um código de autenticação de mensagem (MAC - Message Authentication Code), que é uma espécie de "assinatura" gerada com a chave.
- (A) Correta: A classe
javax.crypto.Macé especificamente projetada para calcular e verificar Códigos de Autenticação de Mensagem (MACs), que provêm integridade e autenticidade da mensagem usando uma chave secreta compartilhada. - (B) Incorreta: A classe
javax.crypto.Cipheré usada para criptografia (confidencialidade) e descriptografia de dados, não para o cálculo e verificação de integridade com chave secreta de forma específica e primária, embora alguns modos de operação (como GCM) combinem confidencialidade e autenticação. A armadilha é queCipheré uma classe fundamental de criptografia, mas não é a ferramenta mais específica para a tarefa de integridade com chave secreta conforme descrito. - (C) Incorreta: A classe
javax.crypto.SealedObjecté utilizada para selar (criptografar) e desselar (descriptografar) objetos serializáveis, garantindo sua confidencialidade e integridade como um todo, mas não é a funcionalidade para calcular e verificar a integridade de uma mensagem arbitrária. - (D) Incorreta: A classe
javax.crypto.KeyGeneratoré usada para gerar chaves simétricas aleatórias para algoritmos de criptografia, não para calcular ou verificar a integridade de mensagens. - (E) Incorreta: A classe
javax.crypto.KeyAgreementé usada para estabelecer uma chave secreta compartilhada entre duas ou mais partes que não se conhecem previamente, como no protocolo Diffie-Hellman, não para o cálculo ou verificação de integridade de mensagens.
Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise de Sistemas - Segurança da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.