비밀번호, 요청 제한, 그리고 이메일 없는 계정
Blocks Beyond The Stars는 아이들도 플레이해요. 그래서 게임 디자인뿐 아니라 그 뒤의 보안 설계도 달라져요. 세 가지 예를 소개할게요.
일부러 이메일 없는 계정. 우리 플레이어 계정은 이메일 주소가 필요 없어요. 빠진 기능이 아니라 하나의 결정이에요. 특히 어린 플레이어의 개인정보는 가능한 한 적게 갖고 싶어요. 저장하지 않은 것은 잃어버릴 수도 없으니까요. (솔직한 이면도 있어요. 그래서 이메일로 “비밀번호 찾기”를 할 수는 없어요. 이 점은 숨기지 않고 알려 드려요.)
제대로 만든 월드 비밀번호. 월드를 보호하면 비밀번호는 평문이 아니라 PBKDF2 해시로 저장돼요. 우리조차 읽을 수 없어요. 비밀번호는 월드를 깨우기 전에 확인하기 때문에, 낯선 사람이 입장 시도만으로 남의 월드를 켤 수 없어요. 그리고 15분 안에 열 번 틀리면 무차별 대입을 막기 위한 대기 시간이 걸려요.
자동화된 파수꾼. 우리 코드는 GitHub의 정적 보안 분석인 CodeQL을 거쳐요. 실제로 한 번 걸린 적이 있어요. 언어 쿠키가 처음에는 Secure와 HttpOnly 플래그 없이 설정되어 있었어요. 별것 아닌 것 같지만 괜히 공격받기 쉬운 상태였죠. 고쳤고, 그 뒤로는 새 경고를 하나도 빠짐없이 살펴봐요.
공통된 흐름은 이거예요. 우리에게 보안은 하나의 부서가 아니라 작고 일관된 결정들이 이어진 거예요. 내 아이에게 주는 게임이라면, 그래야만 마음이 놓여요.
댓글