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.
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:
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.