[PD1] - Finalized Architecture chapter
This commit is contained in:
parent
9b9c6993e2
commit
b234372070
1 changed files with 36 additions and 35 deletions
|
@ -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.
|
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
|
## Certificates and Keys
|
||||||
|
|
||||||
|
@ -121,38 +157,3 @@ falar da fakeCA
|
||||||
|
|
||||||
[Commands used to generate the key stores](./certs/README.md)
|
[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.
|
|
||||||
|
|
Loading…
Reference in a new issue