# Respostas das Questões ## Q1 Para verificar que as chaves fornecidas constituem um par RSA valido, podemos extrair a chave publica do certificado e da chave privada (separadamente) e verificar se a chave publica é igual à chave publica extraída da chave privada. ![Verificação da chave publica](https://github.com/uminho-mei-es/2324-G05/blob/main/TPs/TP05/Images/Q1.png) ## Q2 Utilizando o comando `openssl x509 -text -noout -in xxx.cert` podemos visualizar o conteúdo do certificado. Correndo o comando para o certificado `ALICE.crt` obtemos o seguinte resultado: ```bash Certificate: Data: Version: 3 (0x2) Serial Number: 08:f8:5a:5f:c9:e6:a2:a1:bc:b2:71:6b:7c:d7:be:b1:a8:89:f0:2b Signature Algorithm: sha256WithRSAEncryption Issuer: C = PT, ST = Minho, L = Braga, O = Universidade do Minho, OU = MSGS, CN = Entidade Certificadora, pseudonym = EC Validity Not Before: Mar 8 21:39:38 2024 GMT Not After : Jun 16 21:39:38 2024 GMT Subject: C = PT, ST = Minho, L = Braga, O = Universidade do Minho, OU = MSGS, CN = ALICE, pseudonym = CLIENT Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) ... X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature, Non Repudiation X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption Signature Value: ... ``` Neste certificado, os campos importantes incluem: - **Serial Number**: Identificador único do certificado. - **Validity**: Indica o período durante o qual o certificado é válido. - **Subject**: Informações sobre a entidade a quem o certificado é emitido. - **Subject Public Key Info**: Detalhes sobre a chave pública, incluindo o algoritmo e o tamanho. - **X509v3 extensions**: Contém informações adicionais, como restrições básicas, uso de chaves e uso de chaves estendido. - **Signature Algorithm**: Algoritmo usado para assinar o certificado. - **Signature Value**: O valor de assinatura real que garante a integridade do certificado. ## Q3 Para provocar erros do tipo de validação do certificado, podemos alterar o certificado de várias maneiras, como: - Alterar a data de validade para uma data anterior à data atual. - Alterar o nome do emissor ou do sujeito. - Alterar a chave pública ou privada. Para provocar erros na validação da assinatura, podemos alterar a assinatura do certificado, o que invalidará a assinatura e resultará em um erro de validação.