Você está na página 1de 38

Engenharia da Segurança em SI

Trabalho 3

Certificados e PKIs

Grupo 1 TP1
2022/2023
Constituição do Grupo
Índice
1. Introdução ....................................................................................................................................... 6
2. Gestão de Chaves ............................................................................................................................ 7
2.1. Opção PGP ............................................................................................................................... 7
1. ..................................................................................................................................................... 7
2. 3. 4. ............................................................................................................................................. 7
5. ..................................................................................................................................................... 8
6. ..................................................................................................................................................... 9
7. ................................................................................................................................................... 10
9. ................................................................................................................................................... 11
10. ................................................................................................................................................. 13
11. ................................................................................................................................................. 16
12. ................................................................................................................................................. 17
2.2. Opção X509 ............................................................................................................................ 19
13 .................................................................................................................................................. 19
14 .................................................................................................................................................. 20
15. ................................................................................................................................................. 21
16. ................................................................................................................................................. 23
17. ................................................................................................................................................. 24
18. ................................................................................................................................................. 25
3. Enviar e Receber Mensagens Seguras ............................................................................................ 27
1. ................................................................................................................................................... 27
2. ................................................................................................................................................... 27
3. ................................................................................................................................................... 31
4. ................................................................................................................................................... 33
4. Proteger Documentos Locais ......................................................................................................... 35
5. Conclusão ...................................................................................................................................... 38
Índice de Figuras
Figura 1 - Criação de um Key Pair ........................................................................................................... 7
Figura 2 - Advanced Settings ................................................................................................................... 8
Figura 3 - Certificado criado com sucesso ................................................................................................ 8
Figura 4 - OpenPGP Certificate ............................................................................................................... 9
Figura 5 - Public Key Block .................................................................................................................... 9
Figura 6 – Subkeys ................................................................................................................................ 10
Figura 7 - Adicionar servidor ................................................................................................................. 11
Figura 8 - Servidor adicionado ............................................................................................................... 12
Figura 9 - Certificado enviado para o servidor ....................................................................................... 13
Figura 10 - Certificado de Pedro Silva encontrado no servidor ............................................................... 13
Figura 11 - Certificado de Pedro Silva importado................................................................................... 14
Figura 12 - Certificado de Pedro Silva validado ..................................................................................... 14
Figura 13 - Importação realizada com sucesso ....................................................................................... 15
Figura 14 - Pesquisa por endereço de e-mail .......................................................................................... 16
Figura 15 - Pesquisa por nome ............................................................................................................... 16
Figura 16 - Envio da chave por e-mail .................................................................................................... 17
Figura 17 - Revogação de um certificado ............................................................................................... 17
Figura 18 - Revogação realizada com sucesso ........................................................................................ 18
Figura 19 - Verificação da versão do openss........................................................................................... 19
Figura 20 - Geração da chave privada .................................................................................................... 20
Figura 21 - Geração da chave privada .................................................................................................... 20
Figura 22 - Criação do pedido de certificado .......................................................................................... 21
Figura 23 - Verificação do estado do pedido de certificado .................................................................... 22
Figura 24 - Criação de ficheiro com o certificado auto assinado ............................................................. 23
Figura 26 - Verificação do estado do ficheiro com certificado auto assinado Error! Bookmark not defined.
Figura 27 - Pedido de certificação do par de chaves ............................................................................... 24
Figura 28 - Ficheiros Obtidos ................................................................................................................. 24
Figura 29 - Criação do ficheiro com o certificado assinado e chave privada ............................................ 25
Figura 30 - Verificação do estado do ficheiro ......................................................................................... 25
Figura 31 - Verificação do estado do ficheiro ......................................................................................... 25
Figura 32 - Verificação do estado do ficheiro ......................................................................................... 26
Figura 33 - Instalação Thunderbird ........................................................................................................ 27
Figura 34 - Configuração dos certificados............................................................................................... 28
Figura 35 - Carregamento do certificado assinado pelo CA..................................................................... 28
Figura 36 - Registo do CA ....................................................................................................................... 29
Figura 37 - Registo do CA (II) .................................................................................................................. 29
Figura 38 - Registo do CA (III) ................................................................................................................. 29
Figura 39 - Acesso às definições de conta .............................................................................................. 30
Figura 40 - Definição do certificado pessoal ........................................................................................... 30
Figura 41 - Certificados dos colegas adicionados .................................................................................... 31
Figura 42 - Mensagem não encriptada recebida por Fábio ..................................................................... 31
Figura 43 - Mensagem encriptada recebida por Fábio ............................................................................ 32
Figura 44 - Mensagem não encriptada recebida por Rui ........................................................................ 32
Figura 45 - Mensagem encriptada recebida por Rui ............................................................................... 33
Figura 46 - Revogação do certificado ..................................................................................................... 33
Figura 47 - Certificado Revogado ........................................................................................................... 33
Figura 48 - Receção da mensagem encriptada por Fábio ........................................................................ 34
Figura 49 - Sign/Encrypt FIles ................................................................................................................. 35
Figura 50 - Signing and Encryption Succeeded ....................................................................................... 35
Figura 51 - Decryption Succeeded .......................................................................................................... 36
Figura 52 - Encriptação para outros ....................................................................................................... 36
Figura 53 - Tentativa de desencriptação Rui........................................................................................... 37
Figura 54 - Tentativa de desencriptação José ......................................................................................... 37
Figura 55 - Sucesso na Desencriptação .................................................................................................. 37
1. Introdução
No âmbito da unidade curricular de Engenharia da Segurança em Sistemas de Informação, foi
proposto pela equipa docente a realização de um projeto relativo ao tema Certificados e PKI’s. Para a
realização deste projeto é necessário a gestão das chaves e pretende-se que alguns elementos do grupo de
trabalho criem chaves pela opção PGP enquanto outros elementos criem pela opção X509, seguindo um
conjunto de passos fornecidos pela equipa docente.
O intuito deste projeto passa pelo envio e consequente receção de mensagens seguras, via email, e
também a proteção de documentos locais.
2. Gestão de Chaves
Para ser possível ter uma comunicação segura, é necessário que cada utilizador crie pelo menos um
par de chaves composto por uma chave privada e uma chave publica. Neste sentido, as aplicações possuem
um mecanismo que permitem transferir um par de chaves facilmente, quando se faz a importação da cópia
da chave publica de uma pessoa e se adiciona ao nosso keyring devemos validar a mesma, determinando
assim se a identificação existente na chave corresponde efetivamente à pessoa com quem pretendemos
comunicar.

2.1. Opção PGP

1.
Instalação do Kleopatra para gestão de chaves.
2. 3. 4.

Figura 1 - Criação de um Key Pair

Foi criada uma conta com um nome e um email da universidade protegido por uma passphrase.
Figura 2 - Advanced Settings

Procedeu-se à criação de uma chave PGP. Para isso foram executados os seguintes passos: Foi
criada uma chave, do tipo RSA, com 2048 bits e sem data de validade.

Figura 3 - Certificado criado com sucesso

Foi gerado um certificado para esta nova chave e gerada a respetiva fingerprint.

5.
Este passo foi realizado posteriormente, tal como sugerido no enunciado.
6.
Na seguinte imagem, é possível visualizar todos os dados referentes à chave criada.

Figura 4 - OpenPGP Certificate

Figura 5 - Public Key Block

Nesta imagem estão representados os atributos mais relevantes da assinatura e da chave, sendo o
bloco de texto a chave pública e em cima a fingerprint visualizada em hexadecimal.
Pergunta: Esta chave é a sua chave privada ou a pública? Que elementos ligam a assinatura com a
sua chave privada?
Nas imagens anteriores, a chave apresentada é a chave pública do indivíduo. Relativamente à
segunda questão a ligação entre a assinatura e a chave privada é que a chave privada é utilizada para assinar
de modo a garantir confidencialidade, integridade e não-repúdio.

7.

Figura 6 – Subkeys

Devido às limitações do Kleopatra, não foi possível criar subchaves pois esta opção não existia.
Pergunta: Essas subchaves são chaves públicas ou privadas? Qual é a relação destas com a
chave master? Qual a utilidade de ter várias subchaves associadas a uma mesma chave?
As subchaves apresentadas são, respetivamente, uma chave privada e uma chave pública. A
primeira subchave, serve para certificar e assinar, enquanto a segunda é utilizada para encriptar. As
subchaves são criadas através da chave master e podem ser revogadas e armazenadas independentemente
da chave master. Uma subchave serve para realizar uma das funções referidas, sem utilizar a chave master,
assegurando a confidencialidade. No caso de perda de uma subchave, existe a possibilidade de revogar a
mesma utilizando a master, garantido a sua segurança.
9.

Figura 7 - Adicionar servidor

Neste passo foi configurado o repositório global suportado pela organização que fornece o
OpenPGP (o repositório encontra-se em keyserver.pgp.com), usando o protocolo LDAP. Foi adicionado
também um servidor com o nome pgpkeys.mit.edu e a porta 11371, que pode ser verificado da na imagem
posterior.
Figura 8 - Servidor adicionado
10.
Neste passo, primeiramente foi exportado o certificado para o servidor configurado
previamente como pode ser visto na imagem em baixo.

Figura 9 - Certificado enviado para o servidor

De seguida foi feita uma pesquisa por email de uma chave criada por outro aluno através do
Kleopatra.

Figura 10 - Certificado de Pedro Silva encontrado no servidor

Após encontrada procedemos à importação e certificação da mesma.


Figura 11 - Certificado de Pedro Silva importado

Nesta imagem está a prova que o certificado importado foi validado.

Figura 12 - Certificado de Pedro Silva validado

De seguida, podemos visualizar que a importação foi realizada com sucesso.


Figura 13 - Importação realizada com sucesso

Pergunta: Utilizando o site web referido no passo 8, procure por chaves públicas através de
um endereço de e-mail (hsantos@dsi.uminho.pt) e depois por nome (i.e., Henrique Santos). Comente
o resultado obtido.
Ao efetuar uma pesquisa por endereço de e-mail no website, obtemos como resposta todas as chaves
associadas apenas a esse endereço. É apresentada, também um conjunto de informações adicionais como o
tipo, os bits/keyID, a data e o userID. Por outro lado, ao pesquisar pelo nome, aparecem chave de todas as
pessoas que possuem esse nome, não ficando restringidos ao individuo que queremos. Estas diferenças
podem ser visualizadas nas duas imagens seguintes.
Figura 14 - Pesquisa por endereço de e-mail

Figura 15 - Pesquisa por nome

11.
Pergunta: Faça o envio por e-mail de uma chave com o colega de grupo e descreva o processo usado.
Após a receção deverá fazer mais alguma operação, antes de utilizar a chave do colega?
Aquando da instalação do GP4Win, foi também instalado o plugin GpgOL que integra os serviços
do GnuPG no Outlook, permitindo o envido de mensagens encriptadas para outros utilizadores. Isto pode
ser visualizado nas seguintes imagens.
Figura 16 - Envio da chave por e-mail

Para a execução deste ponto, recorremos à aplicação Outlook para enviar mensagem encriptadas
entre dois intervenientes.

12.
Nas imagens seguintes, podemos verificar todos os passos realizados para revogar uma chave
através do Kleopatra.

Figura 17 - Revogação de um certificado


Figura 18 - Revogação realizada com sucesso
2.2. Opção X509

13. A equipa começou por identificar se o OpenSSL já se encontrava instalado no sistema operativo
Ubuntu, após esta verificação foi identificado que o OpenSSL já estava instalado na versão 3.0.2.

Figura 19 - Verificação da versão do openss


14. Neste passo foi gerado um par de chaves através do comando “openssl genrsa -out
<nome_ficheiro>.pem 2048”. Este comando cria uma chave privada e uma chave pública de 2048 bits.

Figura 20
21 - Geração da chave privada

É verificado também o estado da chave privada através do comando “openssl rsa –in
<nome_ficheiro>.pem –check”. Ao executar este comando, o resultado apresentado é “RSA KEY Ok”,
e apresenta também a chave privada RSA.

Figura 21 - Verificação da chave privada


15.
Com o objetivo de integrar numa KPI, foi desenvolvido o seguinte ficheiro com pedido de certificado que
inclui a chave pública, associada a uma chave privada e alguma informação pessoal e organizacional. Este
email será enviado para a autoridade certificadora que validará o certificado. Para este passo foi utilizado o
comando openssl req – new -key privkey.pem -out cert.csr. País: PT; Concelho: Braga; Localidade:
Fama; Instituição: UM; Departamento: ESSI; Nome: Fabio; e-mail: fasife26@gmail.com.

Figura 22 - Criação do pedido de certificado


Para verificar o estado do ficheiro com o pedido de certificado é executado o comando “openssl req –text
–noout –verify –in <nome_ficheiro>.csr” devolvendo os atributos do pedido e do futuro certificado.

Figura 23 - Verificação do estado do pedido de certificado


16.
Para gerar o certificado auto assinado foi usado o comando “openssl x509 -req -in cert.csr -signkey
privkey.pem -out privcert.crt”

Figura 24 - Criação de ficheiro com o certificado auto assinado

Figura 25 - Verificação do estado do ficheiro com certificado auto assinado


Relativamente ao certificado, os elementos mais importantes são as datas de validade do certificado, o
algoritmo de assinatura e o emissor do certificado. Estes elementos asseguram que a mensagem é valida
e que temos uma entidade responsável.

17.
Optou-se por utilizar a entidade CA fornecida pelo professor. Através do site https://hdsca.mafica.xyz/
procedeu-se à certificação do par de chaves, depois de submeter o pedido de certificado, foi feito
download do certificado assinado onde, posteriormente, precedemos também ao download do
certificado público da CA.

Figura 26 - Pedido de certificação do par de chaves

Depois extraiu-se o ficheiro “cacert.crt” que é o certificado público da entidade e “certificate.cer” que é o
certificado assinado pela entidade. Estes ficheiros são usados para a criação de um ficheiro PKCS#12 que
é usado para a utilização da chave em diferentes aplicações.

Figura 27 - Ficheiros Obtidos


18.

Figura 28 - Criação do ficheiro com o certificado assinado e chave privada

Figura 29 - Verificação do estado do ficheiro

Figura 30 - Verificação do estado do ficheiro


Figura 31 - Verificação do estado do ficheiro

Comparando o PKCS#12 e o certificado x509 apesar de ambos os certificados possuírem


informação idêntica, nomeadamente relativamente aos dados da entidade, estes diferem em certos aspetos.
Em relação ao PKCS#12, este contém a chave primária relativa ao certificado, assim como o próprio
certificado, tratando-se assim de um conjunto. Em relação ao certificado x509, este contém a chave pública
encriptada da entidade, o hash de desencriptação dessa mesma chave e o respetivo certificado.
3. Enviar e Receber Mensagens Seguras
Neste tópico, foi utilizado o cliente email Thunderbird de modo a realizar experiências quer com
os certificados PGP quer com certificados X509.

1.

A equipa procedeu à instalação do Thunderbird para proceder ao carregamento do certificado


público da entidade e dos ficheiros PKCS#12 de cada membro, em diferentes secções da aplicação como
iremos demonstrar a seguir. Procedeu-se à criação da conta utilizando os respetivos emails.

Figura 32 - Instalação Thunderbird

2.
Após a instalação do Thunderbird os elementos do grupo procederam à importação dos certificados.
Para isso teve de aceder à opção “Manage Certificates” dentro das definições de “Privacy & Security” como
demonstra na imagem seguinte.
Figura 33 - Configuração dos certificados

a) Após abrir o gestor de certificados, procedeu-se ao carregamento do certificado assinado pela CA,
dentro da secção “Authorities”. Deve ficar anotado que este passo foi ignorado uma vez que após
o carregamento do documento PKCS#12 a entidade que assinou o certificado foi automaticamente
reconhecida como uma autoridade.

Figura 34 - Carregamento do certificado assinado pelo CA


Figura 35 - Registo do CA

Figura 36 - Registo do CA (II)

De salientar de que em caso de nova tentativa de carregamento do certificado da CA, é notificado


com a seguinte mensagem como demonstra a seguinte imagem.

Figura 37 - Registo do CA (III)


b) Nesta etapa de forma a utilizar o certificado assinado carregado para assinar, encriptar e desencriptar
temos que proceder,na aplicação, às seguintes etapas: selecionar “Account Settings” e dentro selecionar a
opção “End-To-End Encryption”.

Figura 38 - Acesso às definições de conta

Nesta secção sobre o S/MIME (Secure/Multipurpose Internet Mail Extensions) é possível definir o
certificado carregado como o certificado pessoal para a assinatura digital e encriptação.

Figura 39 - Definição do certificado pessoal


3.
Após a realização das etapas anteriores, os elementos do grupo encontram-se agora prontos para
realizar o envio e receção de mensagens através dos e-mails. No entanto para realizar essas trocas de
mensagem é necessário carregar os respetivos certificados assinados, pertencentes aos elementos do grupo,
na aplicação Thunderbird de forma a ser possível interpretar as suas mensagens. A imagem que se segue
demonstra o elemento Rui que adicionou o certificado dos seu colegas.

Figura 40 - Certificados dos colegas adicionados

Procedendo agora ao envio das mensagens, foi realizada uma troca de dois tipos de mensagens,
encriptada e não encriptada, entre os elementos Rui e Fábio. De notar que o elemento José, apesar de ter
efetuado todos os passos anteriores, não conseguiu receber nem enviar mensagens para outros utilizadores
devido a problemas com o seu email.

Figura 41 - Mensagem não encriptada recebida por Fábio


Figura 42 - Mensagem encriptada recebida por Fábio

Figura 43 - Mensagem não encriptada recebida por Rui


Figura 44 - Mensagem encriptada recebida por Rui

4.
Nesta parte procedemos a revogação do certificado do Rui e foi testado novamente o envio de uma
mensagem encriptada para o elemento Fábio.

Figura 45 - Revogação do certificado

Figura 46 - Certificado Revogado


Figura 47 - Receção da mensagem encriptada por Fábio

Como foi possível observar, após a revogação do certificado do elemento Rui, os processos de
envio e receção de mensagens encriptadas mantiveram-se os mesmos.
4. Proteger Documentos Locais
Para encriptar uma pasta, foi utilizado a funcionalidade disponibilizada pelo Kleopatra, como pode
ser visto nas imagens seguintes.

Figura 48 - Sign/Encrypt FIles

Figura 49 - Signing and Encryption Succeeded


De forma a testar mais funcionalidade em relação a este tópico, a pasta anteriormente encriptada, foi
desencriptada através do Kleopatra e os seus conteúdos foram verificados de forma a garantir o sucesso do
processo.

Figura 50 - Decryption Succeeded

Por fim também é possível encriptar para outros. Como é mostrado na imagem é feita uma encriptação
para o Rui pelo que apenas este conseguirá ver o conteúdo do ficheiro.

Figura 51 - Encriptação para outros


Por fim após enviar o ficheiro encriptado para o rui é possível ver que este após a introdução da sua chave
o consegue desencriptar o mesmo já não acontece para o José

Figura 52 - Tentativa de desencriptação Rui Figura 53 - Tentativa de desencriptação José

Figura 54 - Sucesso na Desencriptação


5. Conclusão
A criptografia com o OpenPGP é uma forma segura de proteger informações confidenciais e garantir
a privacidade dos dados. A utilização de chaves públicas e privadas permite a criptografia das mensagens
de forma segura, garantindo que apenas as pessoas autorizadas possam aceder aos dados.

Além disso, a assinatura digital proporciona uma forma segura de verificar a autenticidade e a
integridade dos dados, permitindo que as partes envolvidas na comunicação possam ter confiança de que
as informações não foram alteradas ou adulteradas durante a transmissão.

É importante ressaltar que a segurança da criptografia com o OpenPGP depende do cuidado na gestão
das chaves privadas. É fundamental mantê-las em um local seguro e protegido por senhas fortes para
evitar que elas caiam em mãos erradas. Dessa forma, a criptografia com o OpenPGP é uma poderosa
ferramenta para proteger informações confidenciais, mas deve ser utilizada com responsabilidade e
cuidado.

O X.509 é uma tecnologia madura e bem estabelecida, com suporte em diversas plataformas e
sistemas operacionais. No entanto, sua eficácia depende da confiabilidade das autoridades de certificação
(CAs) que emitem os certificados digitais, uma vez que a confiança na identidade da outra parte é baseada
na validade e integridade do certificado digital apresentado.

É importante ressaltar que, embora o X.509 seja uma tecnologia de segurança confiável, é necessário
seguir as boas práticas de segurança ao utilizá-lo, como o armazenamento seguro das chaves privadas e
a escolha criteriosa de autoridades de certificação confiáveis.

Você também pode gostar