가짜 임시 이메일 주소 차단하기

글로벌 고객들을 대상으로 하는 서비스들은 이메일을 기준으로 하나의 계정을 만드는 정책으로 운영되고 있다. 내가 운영하는 서비스 또한 한 명이 여러개의 계정을 생성하는 것을 막기 위해 이메일 인증을 통해 계정을 인증하고 있었다. 그런데 가짜 임시 이메일 주소를 생성하여 무수히 많은 계정을 생성하는 악성 사용자들이 발견되었다. 계정 생성시 제공하는 보너스 포인트 때문이였다. 자 이 녀석들을 막아보자.

어떤 것이든 필터링을 하기 위해서는 필터링할 기준이 되는 정보, 즉 리스트가 필요하다. 기준이 될 리스트가 만들어졌다면 이제 이 리스트에 있는 것만 허용할지 아니면, 이 리스트에 있는 것들을 제외할 지를 결정해야하는데 전자를 whitelist 후자를 blacklist라고 부른다. 뭐 이 정도는 누구나 알고 있는 사실일테고, 지금 나에게 주어진 업무는 Disposable, Throwaway, Temporary, Fake 와 같은 단어로 서비스되는 임시 메일들 을 차단하는 것이다.

글로벌을 대상으로 하다보니 화이트리스트는 쉽지 않다. 나야 한국인이니 네이버, 네이트, 다음 메일을 화이트리스트에 추가해 놓을 수 있다하더라도, 내가 콩고, 호주, 이집트와 같은 나라에 있는 공신력있는 이메일 도메인을 알 수가 있나… 그렇다고 하늘같은 고객님께 너님 구글이나 야후 메일은 있지? 그거 써! 라고 강요할 수도 없고 결국엔 블랙리스트 밖에는 답이 없다는건데…

이와 같은 고민을 가지고 있는 서비스들이 적지 않았는지 이미 이런 문제에 대한 솔루션을 제공하는 유료 API 서비스가 많이 존재했다.

유료 API

공짜는 없을까?

하지만 비용을 최소한으로 해야 하는 스타트업인지라 비용이 들지 않고 해결할 수 있는 방법이 없을까 고민해 보았다. 그리고 찾은 또 다른 방법으로는 임시 이메일 주소 도메인들을 리스팅해서 이 도메인을 포함한 이메일을 차단하는 방법이다. 다행히도 지속적으로 가짜 임시 도메인들을 모아놓은 gist가 존재했다.

이 리스트들을 DB에 저장해놓고, 서비스 배포시 메모리에 이 도메인들을 올려놓고, 이메일에 리스트에 존재하는 도메인이 포함되어있다면 다른 이메일을 입력받도록 구현하였다.

더 근본적인 해결 방법

이래저래 가짜 임시 이메일들을 막긴 했는데, 가짜 임시 이메일 서비스는 수시로 생기고 사라지고 있어서 근본적인 해결 방법이라고 볼 수는 없다. 더 근본적인 해결 방법은 무엇일까?

내가 내린 결론은 계정을 많이 생성할 이유가 없도록 하는 것, 그리고 계정에 대한 아이덴티티를 더욱 강하게 가져가는 것이다. 새로운 계정을 생성했을 때의 이점보다는 기존 계정을 유지했을 때 더 많은 이점이 있도록 서비스를 개선하는 것이다. 우리가 페이스북 아이디를 무제한 생성하지 않는 이유는 그 계정의 가치가 나의 활동들에 있기 때문이다. 새로운 계정을 생성하는 것보다 기존 계정에서 활동을 더 활발히 하는게 이점이 크다.

마치며

솔직히 이메일 인증 기능을 넣으면 한 사람당 최대 만들 수 있는 계정은 10개 미만일 거라고 생각했었다. 이메일을 새롭게 생성하는 건 상당히 귀찮은 일이니까. 그런데 가짜 임시 이메일을 통해 이렇게 쉽게 이메일 계정을 얻는 방법이 있을거라고는 예상하지 못했다. 추후에는 가짜 이메일 차단 솔루션을 도입하는 방안도 고려해봐야 할 듯하다.