Estudo de níveis de criptografia a partir de um site com as funções de registro de conta e login.
A intenção é de aplicar diferentes ferramentas para desenvolver a criptografia e segurança do site, desde o uso de uma string como chave até formas mais complexas.
Um link para o commit com as mudanças referentes as vesões está disponível após suas descrições.
Criptografia construída a partir do uso de uma string chave (usando mongoose-encryption) e environment variables (usando dotenv), para criptografar a senha do usuário e esconder a chave de criptografia, respectivamente. Commit f8150f9
Troca do método de chave + variáveis para criptografia por hashing e identificação por comparação do hash, utilizando a extensão no node.js, md5. Commit 89b96ae
Nesta versão foi aplicado o método de salting + hashing. O modulo utilizado para o hashing foi trocado, do md5 para o BCrypt, com o objetivo de complexificar o hash e com isso aumentar a segurança. O BCrypt também inclui a função de salting, que foi aplicada em 10 rodadas para esse teste. Commit 0bcd5bd
Essa versão inclui a aplicação dos métodos anteriores em conjunto e a adição de cookies, com a utilização do Passport e Express-session. String chave, salting e hashing são executados por esse módulos, e a integração à database (MongoDB), para criptografar as senhas guardadas e autenticação, é feita a partir do módulo Passport-local-mongoose. Nessa aplicação, com a introdução dos cookies, é possível manter o login autenticado e a página /secrets acessível até que o navegador seja fechado. Commit 080c3d5
Nessa ultima versão as páginas de registro e login foram alteradas para incluír o método OAuth de cadastro e autenticação pela conta do Google. O módulo usado para a integração foi o passport-google-oauth20, e todos os módulos e métodos de criptografia anteriores foram mantidos para os usuários que escolherem o registro pelo aplicativo. Commit 79b8f39