2 pontos por GN⁺ 2024-03-29 | 1 comentários | Compartilhar no WhatsApp
  • Doom Captcha é um projeto divertido que transforma um CAPTCHA comum em um minigame no estilo DOOM, com foco mais no humor e na experiência do que em segurança
  • Funciona como uma demo para ser usada em formulários HTML, mostrando o funcionamento com um código de exemplo que inclui entrada de e-mail e botão Unsubscribe
  • A configuração é simples, com countdown, label e enemies, e o valor padrão de enemies é 4, que é a quantidade de inimigos que precisam ser derrotados para concluir o CAPTCHA
  • No modo desktop, há easter eggs: iddqd conclui o CAPTCHA, e idkfa desbloqueia a super shotgun
  • O código-fonte está disponível no GitHub e, junto com o desempenho no Product Hunt e até um like de John Carmack, chamou atenção como um projeto de desenvolvimento bem-humorado

A experiência de CAPTCHA transformada em DOOM

  • Doom Captcha é um projeto demo que faz o usuário jogar um pequeno game no estilo DOOM em vez de resolver um CAPTCHA entediante
  • O projeto vem com o aviso de que não deve ser levado muito a sério, e informa que, com conhecimentos de programação, é fácil quebrar a segurança
  • O exemplo de uso é fornecido em uma estrutura comum de formulário HTML
    • Dentro de um <form> com action="success.html", há um campo de entrada de e-mail
    • O texto do botão é Unsubscribe

Parâmetros e easter eggs

  • Parameters suportados
    • countdown: on / off
    • label: texto exibido antes do CAPTCHA, podendo ficar vazio
    • enemies: número de inimigos que precisam ser mortos para concluir o CAPTCHA, com valor padrão 4
    • A última atualização foi em 30/05/2021
  • Easter eggs que podem ser digitados após clicar em iniciar no modo desktop
    • iddqd: conclui o CAPTCHA
    • idkfa: desbloqueia a super shotgun

Código aberto e repercussão

  • O código-fonte está disponível no GitHub, e é possível contribuir com pull requests ou fazer fork
  • Doom Captcha ficou em TOP 1 Product of the Day no Product Hunt
    • A ideia surgiu na sexta-feira, a primeira versão foi desenvolvida no sábado de manhã, publicada naquela noite e colocada no ar no domingo
    • Na atualização de 2021-05-26, o criador de Doom, John Carmack, deixou seu like

1 comentários

 
GN⁺ 2024-03-29
Comentários no Hacker News
  • Infelizmente, bem nesta semana alguém fez fine-tuning do modelo de linguagem grande Mistral-7B para jogar DOOM :P
    https://news.ycombinator.com/item?id=39813174

    • Acho que é preciso definir um padrão bem baixo para “jogar”. Talvez tivesse sido mais impressionante se ele gravasse e reproduzisse arquivos de demo, sem a pressão do tempo real
      No momento, ele só consegue mover para frente/para trás, girar e atirar, e sabe apenas algo como virar para o outro lado quando bate numa parede; fica muito aquém até de um bot básico de Doom, então é delicado chamar isso de jogar
      A representação intermediária em ASCII também parece desnecessária e bastante limitante, mas pode ter sido uma escolha para manter algo próximo do tempo real. Pelo que parece, roda a cerca de 1 FPS
      Também me pergunto por que rodar isso em um Mac. Não seria melhor usar um PC potente com GPU, capaz de calcular mais rápido?
      Ainda assim, parece um desafio divertido, e talvez melhore com mais fine-tuning ou treinamento
    • Lembrei de “cultivar neurônios vivos de rato para... jogar DOOM?”
      https://www.youtube.com/watch?v=bEXefdbQDjw
    • Para uma ideia interessante de bot jogando algo que possa ser distribuído na App Store, fico curioso se existe algum modelo ajustado para jogar um jogo open source que não seja GPL
    • Fico imaginando como é que isso poderia ter entrado nos dados de treinamento
  • Gostei muito. CAPTCHAs esquisitos são legais
    Isso também me veio à mente: http://random.irb.hr/signup.php

    • Uma vez fiz um CAPTCHA com problema de cálculo na seção de comentários do meu blog pessoal. Mas, cinco anos depois de me formar, eu mesmo já não lembrava como resolver, então troquei :-/
    • Na verdade, não precisa de muita coisa. Em um formulário que recebia spam, eu só adicionei “escreva 42 aqui”, e quem realmente lia conseguia preencher; o spam caiu para 0
      Para um site um pouco mais famoso isso não bastaria, mas em um cantinho pequeno da internet que não é alvo malicioso, foi suficiente para barrar spam de fuzzing do tipo “preencher todos os formulários”
    • O problema que recebi era surpreendentemente simples. Algo como “encontre a menor raiz real do polinômio p(x) = (x+5)(x-4)(x+1)”
      Um atacante motivado poderia obter rapidamente a resposta desse tipo de problema fazendo um OCR aproximado com Tesseract e jogando no GPT-3.5
      Rodar LLM não é barato nem escala tão bem, então, nesse sentido, o CAPTCHA talvez cumpra seu papel. Mas, se os problemas ficarem mais difíceis, você começa a filtrar também uma parcela considerável dos usuários humanos
      Pelas outras respostas, parece que, mesmo no nível de dificuldade atual, ele já barra muitos usuários humanos, enquanto um atacante com a configuração mencionada passaria facilmente
    • Lembro que um antigo fan site, hoje extinto, usava perguntas de conhecimento do universo ficcional como CAPTCHA. Mas acho que um LLM conseguiria responder
    • Se você tiver deficiência visual, dá para jogar por chamada de voz?
  • Tentei atacar um cacodemon com a pistola e, mesmo assim, ele me deixou passar
    Doom é tão famoso por ser portável que eu achei que seria Doom rodando de verdade no navegador, completando um mapa simples

  • Ainda estou esperando alguém criar um Mona Lisa Captcha: https://www.youtube.com/watch?v=WqnXp6Saa8Y

  • Absolutamente excelente
    Só faltou a mira automática no eixo vertical. Mesmo que a mira esteja abaixo do inimigo, deveria ser possível acertar
    De qualquer forma, ficou muito bem feito!

    • Sempre que eu tentava apresentar DOOM a amigos, “como mira para cima?” era o maior obstáculo
      Faz sentido ao tentar convencer adolescentes que cresceram jogando Halo e Call of Duty, mas eu já comecei a ver esse obstáculo entre amigos da mesma idade no fim dos anos 90
    • Temos aqui um verdadeiro jogador de Doom!
  • Fico me perguntando por que não é o Doom de verdade. Deve haver várias implementações de Doom em JavaScript para escolher

    • “Conclua UV Hangar em até 13 segundos.”
      Fácil de conseguir[0], mas absolutamente irritante[1]. Como todo CAPTCHA
      [0] Se for em tela sensível ao toque, que Deus ajude
      [1] Para a maioria das pessoas. Especialmente depois que a novidade passar
    • Até onde sei, Doom ainda está sob proteção de direitos autorais. O código-fonte é GPL, mas os assets algum dia foram liberados sob licença livre? Parece quase uma obra abandonada
      Ainda assim, daria para fazer, mas, se for um projeto para compartilhar, pessoalmente prefiro seguir direitos autorais à risca. Ou então me incomoda a sensação de que virá algum ruído de copyright junto
    • É, isso tirou um pouco da graça
  • Seria legal fazer Doom como uma implementação 3D completa. Imagino que já tenha sido portado para JavaScript pelo menos dezenas de vezes

    • Por que parar aí? Dá para usar um port em WebAssembly do jogo real e hackear um portal em algum lugar que leve para o site de verdade :P
  • Seria bom ter uma janela de progresso em que o usuário pudesse jogar Doom enquanto espera a tarefa terminar

  • Agora quero um modo Men In Black. Seria identificar a ameaça apresentada pelo pop-up e atirar nela de acordo
    Alienígena fazendo barra fixa? Tudo bem. Menininha de 8 anos em um beco escuro com um livro de física quântica? Suspeito...

    • Revi esse filme recentemente, e aquele julgamento não estava errado. Pela aparência, é mesmo um livro muito estranho para uma menina de 8 anos estar carregando
      Além disso, ao longo dos filmes há muitos alienígenas que parecem humanos
  • Dá para fazer também baseado no minigame de pesca do WoW? Seria clicar na boia no momento certo
    Não espero que dure mais, mas a esta altura provavelmente já existem bots de pesca bem decentes