AUTENTICAÇÃO BASEADA EM SESSÃO
APRIMORANDO CONTROLE E SEGURANÇA UTILIZANDO SOCKET.IO
Palavras-chave:
Autenticação, Criptografia, Token, Socket.IOResumo
Introdução: este artigo aborda o estudo e a implementação de um sistema de autenticação aplicando técnicas de segurança na web como assinatura e criptografia com uma conexão em tempo real entre cliente e servidor. Junto a isso, também foram estudados e aplicados meios para a prevenção de ataques DDoS. Objetivo: oferecer uma alternativa robusta e segura à autenticação baseada em tokens, que permite que o servidor mantenha uma conexão ativa com o cliente para o envio de dados em tempo real visando o gerenciamento da sessão de autenticação; isso com quesitos como performance e escalabilidade mantidos em mente para garantir que a autenticação e verificação da sessão continuassem rápidos e íntegros. Metodologia: durante o desenvolvimento do presente trabalho, não foi notada a necessidade de seguir algum framework ou metodologia consolidada; porém princípios de agilidade foram usados através de encontros semanais para alinhamentos e mudanças baseados no estado do projeto, visando fomentar a transparência e a rápida mudança perante as necessidades do trabalho. Resultados: foi implementada uma solução baseada em sessões gerenciadas pelo lado do servidor, permitindo maior controle e gerenciamento sobre o acesso de recursos no mesmo. O projeto foi desenvolvido utilizando Node.js juntamente com o framework Express.js para a configuração base de um servidor web HTTP e Socket.IO para a configuração da conexão em tempo real baseada em eventos no servidor. Também foi utilizado o JWT como recurso para assinatura, para atender ao quesito de autenticidade, e algoritmos de criptografia AES para garantir a confidencialidade. Conclusão: não usar metodologias muito robustas e consolidas, porém manter princípios ágeis durante o desenvolvimento, foi eficiente para o desenvolvimento do presente trabalho. Vale ressaltar que para aumentar a segurança do servidor, questões de usabilidade, escalabilidade e performance foram afetadas. Uma vez que se tornou necessária a autenticação do usuário de maneira mais recorrente, a centralização da base de dados que armazena as sessões dos usuários, caso múltiplos servidores fossem necessários, uma etapa de acesso a um registro do lado do servidor foi adicionado. Logo implementações de segurança sempre devem estar alinhadas aos seus respectivos contextos.