diff --git a/relatorio/relatorio.pdf b/relatorio/relatorio.pdf index 094a3fb..505073b 100644 Binary files a/relatorio/relatorio.pdf and b/relatorio/relatorio.pdf differ diff --git a/relatorio/relatorio.synctex.gz b/relatorio/relatorio.synctex.gz index 0b4a000..dcd20ac 100644 Binary files a/relatorio/relatorio.synctex.gz and b/relatorio/relatorio.synctex.gz differ diff --git a/relatorio/relatorio.tex b/relatorio/relatorio.tex index 1745227..718f209 100644 --- a/relatorio/relatorio.tex +++ b/relatorio/relatorio.tex @@ -65,9 +65,8 @@ Todas as chaves foram criadas no mesmo computador, com as variáveis que estão neste código. Aspetos importantes para mais tarde serão os parâmetros de Comon Name (CN) pois servem para a validação do certificado ambos pelo OpenSSL e pelo browser. -Nós optamos por assumir que num cenario real, teriamos acesso fisico ás maquinas, por isso em vez -de utilizar, por exemplo SCP ou FTP, escolhemos partilhar os ficheiros a partir da maquina host. No entanto outra abordagem também estaria correta. -%John LIMBUS HIMSELF +Nós optamos por assumir que num cenário real, teríamos acesso físico às máquinas, por isso em vez +de utilizar, por exemplo SCP ou FTP, escolhemos partilhar os ficheiros a partir da máquina host. No entanto, outra abordagem também estaria correta. \begin{codeblock}[bash]{create\_all\_keys.sh} cert_ca="/C=PT/ST=Coimbra/L=Coimbra/O=UC/CN=CoimbraVPN" @@ -549,23 +548,25 @@ openssl ca -revoke user.crt -config cheese.cfg -keyfile ca.key -cert ca.crt \section{Teste Integrado} -%What we already do everything right????? +Para validar a solução completa, efetuámos um teste fim-a-fim englobando todos os requisitos: +\begin{enumerate} + \item Na máquina \textit{Road Warrior}, iniciámos a ligação OpenVPN fornecendo o certificado de cliente e, como password, a concatenação da password do utilizador com o código TOTP gerado pelo \textit{Google Authenticator}. + \item O \textit{Gateway} OpenVPN verificou o certificado cliente contra o servidor OCSP e validou o TOTP, permitindo o estabelecimento do túnel. + \item Através do túnel VPN, acedemos ao endereço \texttt{https://10.60.0.1} no browser. + \item O servidor Apache solicitou o certificado X.509 do utilizador e validou a sua autenticidade e estado de revogação no OCSP. + \item Finalmente, o Apache apresentou a página de login para o segundo fator, onde inserimos as credenciais e o código TOTP, concedendo acesso à página interna protegida. +\end{enumerate} +Este teste confirmou que a comunicação está segura, com dupla verificação de identidade e validação contínua da integridade dos certificados. \section{Conclusão} -% Conclusão!!!! +Atingimos o objetivo deste trabalho: conseguimos configurar o túnel VPN, +o \textit{two-factor authentication} em múltiplos serviços, e conseguimos gerir o ciclo de vida dos +certificados emitidos através de uma CA própria e OCSP. Utilizar mais máquinas para simular um cenário +maior seria redundante e apenas exigiria a emissão de mais certificados, não acrescentando muito ao nível de aprendizagem. -Atingimos o objetivo deste trabalho, conseguimos configurar o VPN tunnel, -o two-factor authentication e conseguimos criar e retirar acesso aos -certificados que emitimos. Utilizar mais maquinas para simular um cenario -maior seria redundante, teriamos que emitir mais certificados mas não iamos -aprender muito mais. Se fossemos aplicar o que fizemos no trabalho anterior -podiamos dar DROP aos pacotes que não nos interessa nesta cenario, -e implementar suricata para identificar possiveis ataques nos serviços. - -%È estranho que para uma cadeira de cybersegurança nós implementamos -%pouca you know segurança. - -% Para aprofundar (???) yeah +Aplicando conhecimentos de trabalhos anteriores, +poderíamos aplicar políticas mais restritas nas \textit{iptables} (ex: regras de DROP aos pacotes indesejados), +e implementar ferramentas como o Suricata para identificar possíveis anomalias e ataques aos serviços. \end{document}