둠 캡챠(Doom Captcha) (2021)
(vivirenremoto.github.io)- Doom Captcha는 일반 CAPTCHA를 DOOM 스타일 미니게임으로 바꾼 재미용 프로젝트로, 보안 목적보다는 웃음과 경험에 초점을 둠
- HTML 폼에 붙여 쓰는 데모 형태이며, 이메일 입력과 Unsubscribe 버튼이 있는 예시 코드로 동작 방식을 보여줌
- 설정은
countdown,label,enemies로 단순하며,enemies기본값은 CAPTCHA 완료에 필요한 적 처치 수 4임 - 데스크톱 모드에서는
iddqd로 CAPTCHA를 완료하고,idkfa로 super shotgun을 해금하는 이스터에그가 있음 - 소스 코드는 GitHub에 공개되어 있으며, Product Hunt 성과와 John Carmack의 좋아요까지 더해져 장난스러운 개발 프로젝트로 주목받음
DOOM으로 바꾼 CAPTCHA 경험
- Doom Captcha는 지루한 CAPTCHA 대신 DOOM 스타일의 작은 게임을 플레이하게 만드는 데모 프로젝트임
- 프로젝트에는 너무 진지하게 받아들이지 말라는 단서가 붙어 있으며, 코딩을 알면 보안을 깨기 쉽다고 안내함
- 사용 예시는 일반 HTML 폼 구조로 제공됨
action="success.html"인<form>안에 이메일 입력 필드가 있음- 버튼 텍스트는
Unsubscribe임
설정값과 이스터에그
- 지원하는 Parameters
countdown:on/offlabel: CAPTCHA 앞에 표시할 텍스트이며 비워둘 수 있음enemies: CAPTCHA 완료를 위해 죽여야 하는 적 수이며 기본값은4- 마지막 업데이트는
30/05/2021
- 데스크톱 모드에서 시작을 클릭한 뒤 입력할 수 있는 Easter eggs
iddqd: CAPTCHA 완료idkfa: super shotgun 해금
공개 코드와 반응
- 소스 코드는 GitHub에 공개되어 있으며, pull request 기여나 fork가 가능함
- Doom Captcha는 Product Hunt에서 TOP 1 Product of the Day가 되었음
- 아이디어는 금요일에 떠올랐고, 첫 버전은 토요일 아침에 개발됐으며, 그날 밤 공개되고 일요일에 라이브됨
- 2021-05-26 업데이트로 Doom 제작자 John Carmack이 좋아요를 눌렀음
댓글과 토론
Hacker News 의견들
-
아쉽게도 바로 이번 주에 누군가 Mistral-7B 대규모 언어 모델을 미세조정해서 DOOM을 플레이하게 만들었음 :P
https://news.ycombinator.com/item?id=39813174- “플레이”의 기준을 아주 낮게 잡아야 할 듯함. 실시간 부담 없이 데모 파일을 녹화해 재생하게 했다면 더 인상적이었을 수도 있음
지금은 앞으로/뒤로 이동, 회전, 발사만 가능하고, 벽에 부딪히면 반대쪽을 바라보는 정도만 아는 상태라 기본적인 Doom 봇보다도 한참 못 미쳐서 플레이한다고 부르기 조심스러움
ASCII 중간 표현도 불필요하고 제약이 커 보이지만, 실시간에 가깝게 유지하려는 선택일 수도 있음. 보기에 1 FPS 정도인 듯함
왜 Mac에서 돌리는지도 의문임. 계산을 더 빠르게 할 수 있는 GPU 달린 강한 PC를 쓰면 되지 않나 싶음
그래도 재미있는 도전으로 보이고, 추가 미세조정이나 학습으로 더 나아질 수 있을 듯함 - “살아 있는 쥐 뉴런을 키워서... DOOM을 플레이?”가 떠올랐음
https://www.youtube.com/watch?v=bEXefdbQDjw - 앱스토어에 배포 가능한 흥미로운 봇 플레이 아이디어용으로, GPL이 아닌 오픈소스 게임을 플레이하도록 미세조정된 모델이 있는지 궁금함
- 이게 대체 어떻게 학습 데이터에 들어갈 수 있었는지 궁금함
- “플레이”의 기준을 아주 낮게 잡아야 할 듯함. 실시간 부담 없이 데모 파일을 녹화해 재생하게 했다면 더 인상적이었을 수도 있음
-
정말 마음에 듦. 특이한 캡차는 좋음
이것도 떠올랐음: http://random.irb.hr/signup.php- 개인 블로그 댓글란에 미적분 문제로 캡차를 만든 적이 있음. 그런데 졸업 5년 뒤에는 본인도 푸는 법을 기억 못 해서 바꿨음 :-/
- 사실 많은 게 필요하지 않음. 스팸이 오던 폼에 그냥 “여기에 42를 쓰세요”를 추가했더니, 실제로 읽는 사람은 채울 수 있었고 스팸은 0이 됐음
조금 더 유명한 사이트라면 충분하지 않겠지만, 악의적으로 겨냥되지 않은 인터넷의 작은 구석에서는 “모든 폼 채우기”식 퍼징 스팸을 막기에 충분했음 - 받은 문제는 놀랄 만큼 단순했음. “다항식 p(x) = (x+5)(x-4)(x+1)의 가장 작은 실근을 찾으라”는 식이었음
의지가 있는 공격자라면 Tesseract로 대충 인식해서 GPT-3.5에 넣는 식으로 이런 문제의 정답을 빠르게 얻을 수 있음
LLM 실행은 싸거나 확장성이 좋지 않으니, 그런 의미에서는 캡차가 제 역할을 하는 셈일 수 있음. 하지만 더 어려운 문제를 내면 상당수 인간 사용자도 걸러지기 시작함
다른 답들을 보면 현재 난이도에서도 이미 많은 인간 사용자를 막고 있으면서, 앞서 말한 설정을 갖춘 공격자는 쉽게 통과할 수 있는 상태로 보임 - 예전의 지금은 사라진 팬 사이트는 세계관 지식 문제를 캡차로 냈던 기억이 있음. 다만 LLM이라면 답할 수 있을 것 같음
- 시각장애가 있으면 음성 통화로 플레이할 수 있나?
-
권총으로 cacodemon을 공격하려 했는데도 통과시켜 줬음
Doom은 이식성이 워낙 유명해서, 실제로 브라우저에서 Doom을 실행하고 간단한 맵을 완료하는 방식일 줄 알았음 -
아직 누군가 Mona Lisa Captcha를 만들어 주길 기다리고 있음: https://www.youtube.com/watch?v=WqnXp6Saa8Y
-
완전 훌륭함
다만 수직축 자동 조준이 빠졌음. 조준점이 적 아래에 있어도 맞출 수 있어야 함
어쨌든 잘 만들었음!- 친구들에게 DOOM을 소개하려 할 때마다 “위로는 어떻게 조준해?”가 가장 큰 걸림돌이었음
Halo와 Call of Duty를 하며 자란 십 대에게 전파하려 할 때는 이해가 되지만, 90년대 후반에 같은 또래 친구들에게서도 이런 걸림돌이 보이기 시작했음 - 진짜 Doom 플레이어가 여기 있네!
- 친구들에게 DOOM을 소개하려 할 때마다 “위로는 어떻게 조준해?”가 가장 큰 걸림돌이었음
-
왜 실제 Doom이 아닌지 궁금함. 선택할 수 있는 JavaScript Doom 구현이 여러 개 있을 텐데
- “UV Hangar를 13초 안에 클리어하세요.”
쉽게 달성 가능[0]하지만, 철저히 짜증남[1]. 모든 캡차가 그렇듯이
[0] 터치스크린이라면 신의 가호가 필요함
[1] 대부분의 사람에게. 특히 신기함이 사라진 뒤에는 더 그럼 - 마지막으로 알기로 Doom은 아직 저작권 보호를 받음. 소스는 GPL이지만, 에셋이 자유 라이선스로 풀린 적이 있나? 거의 방치된 저작물에 가까운 듯함
그래도 할 수는 있겠지만, 공유할 프로젝트라면 개인적으로 저작권을 엄격히 지키려 함. 아니면 저작권 관련 잡음이 따라붙는 느낌이 불편함 - 맞아, 좀 김이 빠졌음
- “UV Hangar를 13초 안에 클리어하세요.”
-
Doom을 완전한 3D 구현으로 만들어 보면 좋겠음. JavaScript로 적어도 수십 번은 이식됐을 것 같음
- 거기서 멈출 이유가 있나. 실제 게임의 WebAssembly 포트를 쓰고, 어딘가에 실제 사이트로 이어지는 포털을 해킹해 넣으면 되지 :P
-
작업이 끝나길 기다리는 동안 사용자가 Doom을 플레이할 수 있는 진행 창이 있으면 좋겠음
-
이제 Men In Black 모드가 원해짐. 팝업이 제시하는 위협을 식별하고 그에 맞게 쏘는 식임
턱걸이하는 외계인? 괜찮음. 어두운 골목에서 양자물리학 책을 든 8살 여자아이? 수상함...- 최근 그 영화를 다시 봤는데, 그 판단이 틀리지 않음. 겉보기엔 8살 여자아이가 들고 있기엔 정말 이상한 책임
게다가 영화들 전반에 걸쳐 인간처럼 보이는 외계인이 꽤 많음
- 최근 그 영화를 다시 봤는데, 그 판단이 틀리지 않음. 겉보기엔 8살 여자아이가 들고 있기엔 정말 이상한 책임
-
WoW 낚시 미니게임 기반으로도 만들 수 있나? 적절한 순간에 찌를 클릭해야 하는 방식임
더 오래 버틸 거라고 기대하진 않지만, 이쯤이면 꽤 괜찮은 낚시 봇도 있을 법함