From 4ff3e7317ffa028040b292170b85ba1040e13eaf Mon Sep 17 00:00:00 2001 From: LucasVerdelho Date: Sun, 28 Apr 2024 16:05:04 +0100 Subject: [PATCH] [PD1] - Improved Introduction --- Projs/PD1/README.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Projs/PD1/README.md b/Projs/PD1/README.md index b95fb34..7149408 100644 --- a/Projs/PD1/README.md +++ b/Projs/PD1/README.md @@ -2,14 +2,21 @@ ## Introdução -Adicionar uma historia a justificar a existencia do serviço +A comunicação eficaz dentro de uma organização é essencial para a eficiência do seu funcionamento. No entanto, num ambiente cada vez mais digital, garantir a segurança e autenticidade das comunicações tem-se vindo a tornar uma preocupação fundamental. Em resposta a esta necessidade, este primeiro projeto de desenvolvimento visa criar um serviço de mensagens seguro e autenticado. + +Para contextualizar o projeto, consideremos uma organização onde informações confidenciais são frequentemente trocadas entre membros de equipas distribuídas geograficamente. Neste cenário, é crucial que as mensagens enviadas e recebidas sejam protegidas contra acessos não autorizados e manipulação por partes externas. Além disso, garantir que a identidade do remetente e a integridade da mensagem sejam verificadas é essencial para manter a confiança e a segurança das comunicações internas. + +Perante estas necessidades, o projeto de desenvolvimento propõe a criação de um sistema cliente/servidor que oferece um serviço de mensagens seguro e autenticado. Através deste sistema, os membros da organização poderão trocar mensagens com garantias de autenticidade, protegendo assim a confidencialidade e integridade das comunicações. + +Ao longo deste relatório iremos detalhar as decisões mais importantes tomadas no desenvolvimento do projeto, bem como as medidas de segurança implementadas para garantir a confidencialidade, integridade e autenticidade das mensagens trocadas entre os utilizadores. -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. +- Optamos por escolher **Golang** como linguagem visando uma implementação mais eficiente, robusta e segura ao nível de concorrência. O modelo de concorrência baseado em goroutines e canais facilita a criação de programas concorrentes e sistemas distribuídos. Com uma sintaxe simples, semelhante a **C**, o **Go** promove a escrita de código legível e de alta qualidade. Além disso, o **Go** possui um ecossistema robusto de bibliotecas e ferramentas, tornando-o uma escolha adequada para o desenvolvimento de sistemas distribuídos e serviços de back-end. + - 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. + +Nas secções seguintes iremos detalhar cada componente do sistema, bem como as funcionalidades implementadas. ## Certificates and Keys @@ -24,7 +31,7 @@ Neste projeto, a arquitetura do sistema é composta por 2 componentes principais ### Crypto -![Digital Envelope](report_content/digital-envelope-diagram.drawio.png3) +![Digital Envelope](report_content/digital-envelope-diagram.drawio.png) Justificar a necessidade de cifrar e autenticaçao e explicar melhor o processo de encryption com o diagrama