From 0889899b4907cf018a1a152704acdb4342de8bfd Mon Sep 17 00:00:00 2001 From: LucasVerdelho Date: Mon, 22 Apr 2024 15:08:11 +0100 Subject: [PATCH] [PD1] - Report - Arquitetura --- Projs/PD1/README.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Projs/PD1/README.md b/Projs/PD1/README.md index 8c66f37..0254b99 100644 --- a/Projs/PD1/README.md +++ b/Projs/PD1/README.md @@ -8,8 +8,30 @@ Algumas notas sobre o projeto: - Implementamos algumas funcionalidades extra, como o armazenamento dos dados no servidor numa base de dados **sqlite3** Nas secções seguintes iremos detalhar cada componente do sistema, bem como as funcionalidades implementadas. +## Arquitetura do Sistema + +Neste projeto, a arquitetura do sistema é composta por 2 componentes principais: +- **Cliente**: é a aplicação que cada utilizador executa para interagir com o servidor. O cliente é responsável por enviar mensagens para o servidor e receber mensagens de outros utilizadores (pelo servidor). +- **Servidor**: é a aplicação que recebe os pedidos dos clientes, processa-os e responde de acordo. O servidor é responsável por armazenar as mensagens dos utilizadores e garantir a autenticidade das mensagens. + +### Crypto +É importante destacar que, para garantir a segurança e integridade das mensagens, implementamos um protocolo de comunicação seguro. Este protocolo utiliza tanto criptografia simétrica quanto assimétrica. As mensagens são cifradas com a chave pública do destinatário para garantir a confidencialidade, enquanto são assinadas com a chave privada do emissor para autenticidade. Dessa forma, asseguramos que as mensagens sejam protegidas contra acessos não autorizados e que sua origem possa ser verificada. + +### Networking +O canal de comunicação estabelecido entre o cliente e o servidor nesta implementação garante uma troca de dados segura e criptografada utilizando o protocolo TLS (Transport Layer Security). Ambos, cliente e servidor, empregam configurações TLS para cifrar os dados durante a transmissão, assegurando confidencialidade e integridade. Durante o handshake TLS, o servidor valida o certificado do cliente para verificar sua autenticidade, prevenindo acessos não autorizados. Este mecanismo robusto de segurança protege o canal de comunicação contra escutas, adulterações e ataques do tipo "man in the middle", garantindo uma troca de informações segura e confiável entre o cliente e o servidor. + +### Protocolo de Comunicação + + + +## Diagramas + + + + +## Protocolo de comunicação + -## Key Store generation ## Server