diff --git a/Projs/PD1/README.md b/Projs/PD1/README.md index 52ea82b..04d1b74 100644 --- a/Projs/PD1/README.md +++ b/Projs/PD1/README.md @@ -71,6 +71,42 @@ Esta análise de risco do sistema visa identificar as potenciais vulnerabilidade Esta breve análise de risco destaca a importância de identificar e mitigar potenciais vulnerabilidades e ameaças para garantir a segurança do sistema desenvolvido. A implementação de medidas de segurança adequadas é essencial para proteger os dados e garantir o funcionamento seguro. +## Decisões de Arquitetura e Implementação + +Tendo em consideração as vulnerabilidades e ameaças identificadas na análise de risco, foram tomadas várias decisões de design e implementação para garantir a segurança e autenticidade do sistema de mensagens. As decisões tomadas visam proteger a confidencialidade, integridade e autenticidade das mensagens trocadas entre os utilizadores, bem como garantir a segurança da comunicação entre o cliente e o servidor. + +1. **TLS (Transport Layer Security)** + + - Cada conexão entre cliente e servidor é protegida pelo protocolo TLS, garantindo que a comunicação seja segura e privada. + - Cliente e servidor trocam certificados para autenticar as suas identidades. + - Ambos verificam se o certificado foi emitido pela Autoridade de Certificação (CA) central. + - O cliente verifica se comunica com o servidor legítimo. + +1. **End-to-End Encryption (E2EE)** + + - Ao enviar uma mensagem, o cliente assina a 'hash' do texto simples com a sua chave privada. + - A assinatura é anexada ao texto limpo e esse conjunto é cifrado com uma chave de sessão gerada aleatoriamente. + - A chave de sessão é cifrada com a chave pública do destinatário, Isso garante que apenas o destinatário possa decifrar a mensagem. + +1. **Visualização de Mensagens** + + - Quando um cliente solicita a sua lista de mensagens não lidas, apenas o assunto é enviado, não o conteúdo cifrado. + - O cliente deve decifrar o assunto para visualizá-lo. + +1. **Troca de Chaves Públicas** + + - Quando um cliente precisa da chave pública de outro cliente, solicita o certificado desse cliente ao servidor. + - Verifica-se se o certificado foi emitido pela CA central e se pertence ao cliente desejado. + +1. **Verificação de Inputs** + + - Tanto cliente quanto servidor realizam verificações básicas nos ‘inputs’ para garantir a sua integridade. + - Ambos desconfiam um do outro e verificam cuidadosamente todos os ‘inputs’. + +1. **Confiança na CA Central** + + - A única confiança absoluta neste sistema é depositada na Autoridade de Certificação central, responsável por emitir os certificados. + ## Certificates and Keys @@ -121,38 +157,3 @@ falar da fakeCA [Commands used to generate the key stores](./certs/README.md) - - -## Decisoes tomadas - -1. TLS (Transport Layer Security): - - - Cada conexão entre cliente e servidor é protegida pelo protocolo TLS, garantindo que a comunicação seja segura e privada. - - Cliente e servidor trocam certificados para autenticar as suas identidades. - - Ambos verificam se o certificado foi emitido pela Autoridade de Certificação (CA) central. - - O cliente verifica se comunica com o servidor legítimo. - -1. End-to-End Encryption (E2EE): - - - Ao enviar uma mensagem, o cliente assina a 'hash' do texto simples com a sua chave privada. - - A assinatura é anexada ao texto limpo e esse conjunto é cifrado com uma chave de sessão gerada aleatoriamente. - - A chave de sessão é cifrada com a chave pública do destinatário, Isso garante que apenas o destinatário possa decifrar a mensagem. - -1. Visualização de Mensagens: - - - Quando um cliente solicita a sua lista de mensagens não lidas, apenas o assunto é enviado, não o conteúdo cifrado. - - O cliente deve decifrar o assunto para visualizá-lo. - -1. Troca de Chaves Públicas: - - - Quando um cliente precisa da chave pública de outro cliente, solicita o certificado desse cliente ao servidor. - - Verifica-se se o certificado foi emitido pela CA central e se pertence ao cliente desejado. - -1. Verificação de Inputs: - - - Tanto cliente quanto servidor realizam verificações básicas nos ‘inputs’ para garantir a sua integridade. - - Ambos desconfiam um do outro e verificam cuidadosamente todos os ‘inputs’. - -1. Confiança na CA Central: - - - A única confiança absoluta neste sistema é depositada na Autoridade de Certificação central, responsável por emitir os certificados.