원문 캡처 · ciamweekly.substack.com
원문 캡처 · ciamweekly.substack.com

전화번호를 로그인 식별자로 쓰는 고객·인증·계정 관리(CIAM) 서비스는 번호가 새 사용자에게 재할당될 때 이전 계정의 개인정보가 노출될 수 있다. 서비스는 재할당 여부를 확인해 이전 계정을 보관 처리하거나, 새 사용자와 기존 계정 소유자를 구분하는 절차를 마련해야 한다.

이메일 주소는 개인 이메일 서비스에서 식별자를 재사용하지 않는 경우가 많고 주소 공간도 넓다. 다만 회사 이메일은 퇴사 뒤 회사가 재사용할 수 있는데, 이때 주소는 개인이 아니라 회사에 속한다. 전화번호는 사용을 중단하면 통신사 풀로 돌아가고, 나중에 다른 사람에게 배정될 수 있다.

예를 들어 앨리스가 전화번호로 서비스 계정을 만들고 몇 년 뒤 번호를 해지한 다음, 밥이 같은 번호를 받아 같은 서비스에 가입한다고 하자. 서비스는 이때 다음 중 하나를 택할 수 있다.

  • 밥을 앨리스로 간주하고 기존 계정 복구 절차로 보내기
  • 외부 정보를 바탕으로 밥을 새 사용자로 확인하기
  • 밥이 앨리스인지 새 사용자인지 확인하기

첫 번째 방식은 밥에게 앨리스 계정이 이미 있다고 알리고 기존 번호로 복구 절차를 보내므로, 번호를 새로 받은 밥이 앨리스의 정보에 접근할 수 있다. 계정 탈취를 일으킬 수 있어 피해야 한다.

번호 해지 여부를 신뢰할 수 있게 확인할 수 있다면, 이전 계정을 보관 처리하고 잠근 뒤 식별자를 바꾸는 방법이 있다. 미국에서는 FCC의 재할당 번호 데이터베이스를 이용할 수 있고, Twilio도 무료 API를 제공한다. 다른 국가에서는 같은 정보를 구하기 어려울 수 있다. 번호 상태를 주기적으로 확인해 한동안 비활성 상태였다가 다시 활성화된 것을 재할당의 신호로 삼을 수 있지만, 이는 완벽한 방법은 아니다. Twilio Lookup 같은 서비스를 이용할 수 있으며, 지원하려는 국가별로 추가 조사가 필요하다.

해지 신호가 없다면 가입 과정에서 번호 충돌이 발생했을 때 이름이나 생일, 서비스와의 과거 상호작용처럼 기존 계정에 기록된 정보와 대조할 수 있다. 정보가 맞지 않으면 기존 계정을 보관 처리하고 새 계정을 만들며, 일치하면 기존 계정의 복구를 진행한다. 확인은 가입 시점이나 로그인이 수개월 또는 수년간 없었던 뒤에 할 수 있다.

이 확인은 공격자의 인증을 대신하는 절차가 아니다. 번호 재할당에는 오랜 시간이 걸리고, 새 번호의 소유와 비활성 기간이 추가 장벽이 된다. 이름이나 생일 같은 질문은 밥과 앨리스가 같은 사람인지 구분하는 데만 쓰며, 밥을 인증하는 수단으로 쓰는 것이 아니다.

서비스가 해지 정보를 확보할 수 있다면 이전 계정을 보관 처리하는 방식이 가장 깔끔할 수 있다. 그 방법을 쓸 수 없다면 새 사용자와 기존 계정 소유자를 구분하는 절차를 둘 수 있다. 어떤 정책이 적절한지는 서비스와 이용 데이터에 따라 달라지므로, 서비스별 맞춤 흐름을 지원해야 한다는 것이 글의 결론이다.