nostr:nprofile1qqs923ewnsqlx7347cpjhxmcmt0rsmnwf3tasr736pjx4wee9q89ufcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs99thmf qual melhor forma de usar as chaves no front. Sem correr risco de deixar elas expostas no sessionstorage.

Eu estava inspecionando os clientes do nostter e do snort... No nostter app eu consegui achar a nsec dentro do dev tools... Então qualquer extensão que conseguisse acessar isso poderia ser um risco.

Já no snort social. Eu vi que não tem como achar... Mas não sei o que foi feito lá. Pelo menos eu inspecionando não achei.

Aí fiquei com dúvida sobre qual melhor forma de armazenar as chaves privadas ao construir meu cliente.

Eu sei queremos extensões. Como a nos2x, porém queria saber se tem alguma abordagem que possamos usar pra ter segurança quanto as chaves.

Tem a opção de usar no backend, mas não sei o que é mais o interessante.

Queria saber se vc tem alguma dica ou se acha ue tem algo importante que eu não esteja sabendo... Tmj mano mises

nostr:npub124rja8qp7dartasr9wdh3kk78phxunzhmq8ar5ryd2anj2qwtcnsz3tuhs exemplo,

veja que no snort não é possivel localizar as chaves, já no nostter a gente acha mto fácil, o que prova que o cliente é bem menos seguro sepa.

Se liga no nostter.app ->

OBS: chaves de conta teste, obviamente kkk

Reply to this note

Please Login to reply.

Discussion

No snort, por mais que eu inspecionasse, no localstorage ou session storage, não tem como localizar... Aquele ícone do SNORT, que é usado pra pra copiar a chave privada, ao clicar, ele não executa nada em NETWORK, o que quer dizer que isso não está em um banco de dados, e sim no client, no front-end... porém de alguma forma isso esta protegido, fiquei muito curioso em saber como que isso funciona....

Novamente, queria saber de opções sem usarmos extensão de armazenamento de chaves, sabe...

Desde já agradeço, valeu por compartilhar conosco teus conhecimentos...

Minha honra, magnata! <3

Se for feito em React Js deve estar utilizando a bibliotéca secure storage, se for em outro framework alguma lib equivalente. Mas a forma correta que todos utilizam, incluindo o nostrudel, é salvar em localStorage, a chave criptografada com uma senha que você digita, essa senha não é salva em nenhum lugar, e você digita, dai o cliente pega a chave privada criptografada, descriptografa com a sua senha, dai armazena temporáriamente para assinar os eventos que você postar.

Se você tiver utilizando React ou coisa do tipo, procure pela bibliotéca secure storage, ela guarda dados criptografados de forma segura no navegador, não sei se em localStorage, daí você pode utilizar uma senha que o usuário digita, ou gerar um "token"(senha), na sesão de login que você usa pra descriptografar a nsec.

Fiquei impressionado que cometeram a tosquice de armasenar a nsec em texto aberto kkkkk Se você puder, report para os desenvolvedores desse cliente.

Onde tem o contato desses mano será?

Não sei, depois vou dar uma olhada, é um bom report, parabéns!

Valeu mano, mas não foi meu mérito. Tenho um amigo que me ajudou a investigar, ele que chegou a esta conclusão. Maluco é brabo iehiuehuieh

Creditos À este meu brother

Abri uma issue no github do nostter.app

Armazenar chaves privadas em banco de dados é de longe uma desgraça kkk, não faça isso.

Boa descoberta no cliente nostter, as chaver serem guardadas em localStorage dessa forma em texto aberto é uma desgraça, compartilhe com mais pessoas ou se possível, notifique os desenvolvedores do cliente.

A forma mais adequada, que não é a coisa mais segura do mundo mas ao menos é uma redundância, é salvar em localstorage, porém criptografada com uma senha que o usuário defina, assim, a chave privada pode ser encontrada no localStorage, mas só pode ser descriptografada com a senha que o cliente digitou. essa senha não deve ser salva, fica em memória apenas enquando o usuário não faz reload da página, quando ele entra novamente, para assinar eventos, solicita a senha novamente para descriptografar a nsec e guardar em memória novamente em hexadecimal.

A nsec NUNCA deve transitar na internet até o back-end, e você jamais deve armazenar chaves privadas de usuários, mesmo nesse caso do cliente nostter, a chave está na máquina do usuário, ele só perde ela se a maquina dele for comprometida, mas salvar em texto aberto assim é uma forma porca de se fazer.

Desconheço cliente web que exige senha adicional 🤔

Eu costumo usar a extensão no desktop. Mas no mobile, copio e colo a nsec direto no cliente.

O Nostrudel pede senha, os outros devem gerar um token na sessão de login e criptografar a chave com ele, ou utilizar uma biblioteca como secure storage que salva as coisas criptografadas.

O primal pede essa senha, quando você loga ele deixa você cadastrar, se não me engano.

Pode cree, entendi. Valeu mano.

Que doidera isso ficar exposto assim no client Nostter, vamos tentar alertar o pessoal. É muito vulnerável mesmo, bizarro.

Vou de base aqui, valeu mano, até mais!