From a657093d4c16c060575b3905b691256c24fed7d9 Mon Sep 17 00:00:00 2001 From: LucasVerdelho Date: Tue, 23 Apr 2024 11:18:53 +0100 Subject: [PATCH] [PD1] - Topics for Report --- Projs/PD1/README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Projs/PD1/README.md b/Projs/PD1/README.md index a123365..1447890 100644 --- a/Projs/PD1/README.md +++ b/Projs/PD1/README.md @@ -2,6 +2,10 @@ ## Introdução + +Adicionar uma historia a justificar a existencia do serviço + + O nosso principal objetivo com este projeto foi consolidar os conceitos lecionados assim como simular interações com um cliente/entidade que nos "encomendou" o serviço, procurando satisfazer as necessidades e requisitos. O projeto consiste num sistema Cliente/Servidor, em que a aplicação cliente seria executada por cada utilizador que queria aceder ao serviço de mensagens, e o servidor seria responsável por responder aos pedidos dos utilizadores e armezenar de forma segura a informação. Para tal, o sistema deveria permitir a troca de mensagens entre os utilizadores, garantindo a autenticidade das mensagens. Algumas notas sobre o projeto: - Optamos por escolher **Golang** como linguagem visando uma implementação mais eficiente, robusta e segura ao nível de concorrência. @@ -15,9 +19,14 @@ Neste projeto, a arquitetura do sistema é composta por 2 componentes principais - **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 + +Justificar a necessidade de cifrar e autenticaçao e explicar melhor o processo de encryption com o diagrama + + É 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 @@ -41,7 +50,7 @@ Este package serve como uma camada de abstração que facilita a comunicação e ### Data Store - +Verificaçao de dados ? Proteçao contra ataques a base de dados ## Client