Reconstruímos as contas da Luxine: palavras-passe novas, verificação por e-mail e multiconta
Depois do aviso da SifG22, refiz de raiz o sistema de contas. Por segurança, reiniciámos todas as palavras-passe. Conto o que mudou, como recuperar o teu acesso e porque é que os painéis com aspeto de terminal eram uma pista do que vinha aí.

Há dois dias contei a falha que a equipa SifG22 me demonstrou: o meu sistema de recuperação de palavra-passe deixava entrar numa conta alheia sem verificar de verdade quem a pedia. Fechei o acesso, as contas e os comentários, e prometi voltar com o sistema refeito.
Já está. E não foi um remendo: reconstruí a autenticação por inteiro.
Aviso importante antes de mais: reiniciámos as palavras-passe de todas as contas. Nenhuma palavra-passe anterior funciona. Abaixo explico exatamente como recuperar o teu acesso consoante o teu caso.
Primeiro: como voltas a entrar
Há duas situações, e dependem de teres ou não um e-mail de recuperação associado.
Se tinhas e-mail de recuperação
Podes fazê-lo sozinho, agora mesmo. Vai a Iniciar sessão → «Esqueci-me da palavra-passe» e segue os três passos. A quem está neste caso já enviámos um aviso para o e-mail.
Se não tinhas e-mail de recuperação
Precisas que te emita uma palavra-passe temporária, mas não tens de andar à minha procura: tenta o processo à mesma. Ao indicares o teu utilizador, se a conta existir e não tiver e-mail associado, chega-me um aviso automático e trato disso.
Podes também escrever para contactoluxine@gmail.com indicando o teu nome de utilizador, sobretudo se eu demorar. Ao entrares com a temporária, o site obriga-te de imediato a escolher uma palavra-passe própria.
É mais incómodo, e lamento. Mas a alternativa — dar acesso a quem simplesmente diz ser tu — é exatamente a falha que a SifG22 me apontou.
O que mudou, uma coisa de cada vez
Recuperar a palavra-passe já não é adivinhar um e-mail
Este era o buraco. Antes, bastava acertar no nome de utilizador e no e-mail de recuperação para o sistema deixar mudar a palavra-passe. O problema salta à vista assim que o dizemos em voz alta: o e-mail de alguém não é um segredo. Aparece num perfil, num comentário antigo, em qualquer lado.
Agora o e-mail já não é a prova, é só o destinatário. O processo tem três passos:
- Indicas o teu utilizador e o teu e-mail.
- Enviamos um código de 6 dígitos para esse e-mail. Se não fores tu, o código chega à caixa do dono real e tu ficas de fora.
- Só depois de verificares o código podes escolher a nova palavra-passe.
O código expira ao fim de 15 minutos, admite 5 tentativas e é queimado ao ser usado. E há um detalhe que importa: quando os dados não batem certo, o sistema responde exatamente igual a quando batem. Antes, uma mensagem diferente para «esse utilizador não existe» transformava o formulário numa ferramenta para descobrir que contas estavam registadas.
Além disso, o envio de e-mail agora funciona mesmo. No sistema anterior, o link de recuperação pura e simplesmente não chegava, mas o site dava o envio como bem-sucedido. Isso era mentir ao utilizador, e estava no meu código.
Aqui tens para carregar. No passo 2 há dois botões: um faz de dono da conta, o outro de alguém que só conhece o e-mail.
Palavras-passe temporárias que expiram
Para as contas sem e-mail, um administrador pode emitir uma palavra-passe temporária. Mas com regras estritas:
- Expira (por omissão em 24 horas).
- Quem entra com ela não pode usar o site até definir uma palavra-passe própria. Não é uma sugestão: qualquer página a que tente ir devolve-o ao ecrã de alteração.
- Emiti-la destrói a palavra-passe anterior. Se a conta estava comprometida, a antiga deixa de servir nesse instante.
- É mostrada uma única vez. Na base de dados fica apenas a sua impressão cifrada. Se se perder, não pode ser consultada: é preciso emitir outra.
E a parte que mais me importa deixar clara: eu não vejo as vossas palavras-passe. Nem a temporária depois de fechada a janela, nem — sobretudo — a que escolhem a seguir. A única coisa registada é a data em que a mudaram. Não é uma promessa: tecnicamente não existe em lado nenhum onde eu a possa ler.
É este o aspeto que tem por dentro. Executa os comandos e compara o que o sistema antigo respondia com o que responde o atual:
Várias contas no mesmo navegador
Isto não é segurança, é comodidade, mas aproveitei para o fazer bem. Agora podes ter várias contas abertas ao mesmo tempo e alternar entre elas a partir do menu de utilizador sem reescrever a palavra-passe, como no correio.
Cada conta guarda a sua própria sessão em separado, e todas continuam a expirar à hora exata. Ter várias abertas não prolonga o acesso de nenhuma.
As sessões agora podem mesmo ser cortadas
Antes, uma sessão iniciada continuava válida até expirar, acontecesse o que acontecesse. Agora ficam registadas e são cortadas quando devem: ao mudares a palavra-passe fecham-se todas as outras sessões da tua conta. Se alguém tinha entrado com a tua palavra-passe antiga, é expulso no ato.
Transferir o teu histórico para outra conta
Se tinhas contas repetidas ou queres consolidar, podes mover os teus comentários para outra conta tua. Exige a tua palavra-passe e escrever uma frase de confirmação, para não acontecer por acidente. Fica registado: eu vejo que a transferência ocorreu, entre que contas e quando. Nunca qualquer palavra-passe.
Sobre os painéis com aspeto de terminal
Vários me perguntaram nestes dias: porque é que os painéis internos têm aquele ar de consola, com os $ comandos e o verde sobre preto?
A resposta curta: sim, era uma pista.
Quando comecei a refazer isto, a primeira coisa que mudou não foi o código de segurança mas a interface de administração. Não por capricho estético. Um painel que parece um terminal obriga-te a tratar cada ação como aquilo que é: um comando com consequências, não um botão bonito que carregas sem pensar. $ ban, $ chmod, $ passwd -t. Quando o ecrã to escreve assim, pensas duas vezes antes de carregar.
E há algo mais prático. Ao redesenhá-los, tive de enumerar, uma a uma, todas as ações que um administrador podia executar. Esse inventário foi o que me fez ver quais não pediam confirmação, quais não ficavam registadas em lado nenhum e quais — as mais graves — não exigiam reescrever a minha palavra-passe. Hoje, mudar um cargo ou emitir uma temporária pede a minha palavra-passe de administrador de cada vez, mesmo com a sessão aberta.
Por isso, quando viram aparecer esses painéis, o que estavam a ver era o princípio deste trabalho. A reconstrução já estava em curso.
O que não resolvi
Prefiro dizê-lo a que o descubram vocês.
- As contas sem e-mail dependem de mim. O aviso automático faz com que eu saiba, mas não resolve o fundo da questão: não há forma de verificar que alguém é quem diz ser sem um canal verificado, por isso essa comprovação continuo a fazê-la à mão. Se eu demorar a responder, essas pessoas esperam. A única solução real é associarem um e-mail de recuperação assim que entrarem.
- O limite de tentativas vive na memória do servidor. Na prática trava a força bruta a partir de um IP, mas um atacante distribuído por várias instâncias conseguiria mais tentativas do que o limite nominal. Está identificado e vou movê-lo para um armazenamento partilhado.
- Isto não passou por uma auditoria externa. Corrigi o que a SifG22 encontrou e o que eu próprio vi ao rever. Isso não é o mesmo que dizer que não ficou nada.
Se encontrares alguma coisa
A forma como a SifG22 fez isto — avisar-me em privado, demonstrá-lo sem divulgar qualquer dado — é exatamente a correta. Se encontrares algo estranho, escreve para contactoluxine@gmail.com antes de o contares por aí. Vou agradecer, mesmo que seja uma banalidade.
Obrigado pela paciência nestes dias. E obrigado à SifG22: um aviso de um amigo custa muito menos do que a alternativa.
El usuario pide recuperar su contraseña.
luxine_fanl***n@gmail.comAntes, este paso ya permitía cambiar la contraseña. Ese era el fallo.
Hay que demostrar acceso a ese buzón.
Solo ahora se puede elegir contraseña.
••••••••••••••••••••••••Nadie más la ve, tampoco el administrador: solo queda la fecha del cambio.
INVESTIGAÇÃO RECENTE (COMENTÁRIOS)