[nodebr] Criptografar senha

388 views
Skip to first unread message

Leonardo S

unread,
Aug 13, 2013, 5:37:38 PM8/13/13
to nod...@googlegroups.com
Pessoal,

Qual a melhor maneira de armazenar senha usando Node.js ?
Tenho visto recomendações quanto a este pacote:

Caio Ribeiro Pereira

unread,
Aug 13, 2013, 5:39:29 PM8/13/13
to nod...@googlegroups.com
Geralmente eu uso os módulos nativos do Node.js para criptografia

--
Você está recebendo esta mensagem porque se inscreveu no grupo "NodeJS Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para nodebr+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

diego nunes

unread,
Aug 13, 2013, 5:51:14 PM8/13/13
to nod...@googlegroups.com
http://codahale.com/how-to-safely-store-a-password/

USE BCRYPT. USE BCRYPT. USE BCRYPT. USE BCRYPT. USE BCRYPT. USE
BCRYPT. USE BCRYPT.
Ou use Scrypt (que é melhor, na verdade, mas ainda menos popular
atualmente). Ou use pelo menos o PBKDF2. Mas não use
MD5/Sha1/Sha256/Sha512, pelo amor dos seus usuários. O node-bcrypt é
um ótimo pacote.

2013/8/13 Leonardo S <leonard...@gmail.com>:
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "NodeJS
> Brasil" dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para nodebr+un...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>



--
diego nunes
dnunes.com

Alan Hoffmeister

unread,
Aug 13, 2013, 5:53:42 PM8/13/13
to nod...@googlegroups.com
https://github.com/barrysteyn/node-scrypt ftw
--
Att,
Alan Hoffmeister

diego nunes

unread,
Aug 13, 2013, 6:30:39 PM8/13/13
to nod...@googlegroups.com
2013/8/13 Alan Hoffmeister <alanhof...@gmail.com>:
> https://github.com/barrysteyn/node-scrypt ftw

Scrypt é campeão :)

Só pra ser pedante (mas pra esclarecer pra quem não sabe a
diferença): não é criptografia, é hashing.

--
diego nunes
dnunes.com

Diogo Duailibe

unread,
Aug 13, 2013, 6:36:57 PM8/13/13
to nod...@googlegroups.com
bcrypt na veia.. hehehe


2013/8/13 diego nunes <dnu...@gmail.com>

--
diego nunes
dnunes.com

--
Você está recebendo esta mensagem porque se inscreveu no grupo "NodeJS Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para nodebr+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Atenciosamente,

Diogo Duailibe da Silva
Técnico de Informática
Procuradoria da República no Maranhão - MPF
Email: diodu...@gmail.com

Leonardo S

unread,
Aug 13, 2013, 8:35:13 PM8/13/13
to nod...@googlegroups.com
@Caio,

Valeu. Mas  encontrei poucos exemplos de como usar crypto para senhas. No livro, vc diz que prefere usar sempre o componente nativo - o que certamente é mais confiável, mas não vi muita coisa a respeito na web de usar o crypto para armazenar as senhas.

@Diogo @Diego @Jason
Valeu. O node-scrypt parece bom e intuitivo, mas vi isso na wikipedia: " Specifically, the algorithm is designed to use a large amount of memory compared to other password-based KDFs, making the size and the cost of a hardware implementation much more expensive". O uso do scrypt pode aumentar o custo de infra estrutura, ainda mais de memória que pesa bastante ?

Abs,

diego nunes

unread,
Aug 13, 2013, 8:40:56 PM8/13/13
to nod...@googlegroups.com
Leonardo, ele é mais caro numa aplicação de altíssimo volume
porque certamente exaure o seu hardware. E é justamente daí que vem a
segurança dele. Com que frequência você precisa fazer a checagem de
senha de alguém, por exemplo, legitimamente? Uma vez a cada 10
segundos, talvez, mesmo numa aplicação relativamente popular? Porque
uma vez checado, a sessão fica ativa, tem recursos de "manter logado"
por cookie, às vezes, e coisa que o valha. Então salvo em casos
excepcionais, ele deve te manter mais seguro sem nenhum custo
adicional.

Idealmente você deve fazer algum limite de requisição por IP ou
por login (checar o login primeiro e só conferir a senha caso o login
exista) pra evitar DoS da máquina. Como ele é um algoritmo
lento--propositalmente, vale sempre citar--, se alguém enviar várias
requisições ao mesmo tempo vai deixar o load do seu servidor bem alto
e talvez até fazer a máquina ficar temporariamente indisponível.
Simplesmente fazer uma contagem de quantas vezes o login "x" tentou
entrar no último minuto já deve bastar. Coisa de só permitir que ele
tente fazer login 6 vezes por minuto, por exemplo. 10 segundos de
intervalo entre cada tentativa, considerando o tempo para digitar os
dados e o tempo de carregamento da página me parece bem razoável e
dificilmente alguém vai estourar isso de forma legítima e acidental.

2013/8/13 Leonardo S <leonard...@gmail.com>:
diego nunes
dnunes.com
Reply all
Reply to author
Forward
0 new messages