2016년 8월 14일 일요일

Facebook 로그인, 이메일은 신뢰할 수 있을까?


많은 IT 서비스에서 Facebook API 를 이용해서 가입/로그인 을 지원하는 경우가 많다. 이는 기업과 고객 모두에게 이득이다. 기업은 회원가입의 장벽을 낮추어 많은 회원을 확보할 수 있고 고객 또한 간편하고 빠르게 가입하여 서비스를 이용할 수 있기 때문이다.

그런데 페이스북을 통한 가입 기능을 구현하다 보면 한가지 궁금한 점이 생긴다. " 페이스북의 이메일은 과연 신뢰할 수 있을까? " 왜 이런 생각을 하게 되었는지는 그 과정을 생각해보면 알 수 있다.

페이스북은 기본적으로 이메일을 아이디로 사용하고 있다. 그래서 이메일은 페이스북을 통해 우리의 서비스 유저 DB 와 통합할때 중요한 키 값으로 활용된다. 페이스북 로그인 과정은 간단하게 보면 아래와 같다.

1. 페이스북 로그인 요청
2. 페이스북 앱에서 해당 서비스에 대한 접근 권한 승인 요청
3. 요청 APP 에 승인 여부와 함께 요청한 회원 정보 전송.
4. 요청 APP 은 이 정보를 토대로 자신들의 유저 DB 에 해당 유저를 등록 시킨다.

만약 가입하려는 유저가 google@gmail.com 이라는 이메일로 페이스북에 가입되어 있었다면 새로이 가입하는 APP 에도 google@gmail.com 으로 가입이 되는 것이다. (물론 APP에 따라 아이디로 이메일을 사용하지 않을 수도 있다.) 여기서 우리는 페이스북 에서 제공하는 이메일 주소가 신뢰할 만한 것인지를 생각해 볼 필요가 있는 것이다. 두가지 시나리오를 생각해 볼 수 있다.

[시나리오 1 : 타인의 이메일로 APP 에 가입할 수 있는 가능성 ]

어떤 누군가가 타인의 이메일 주소인 king@inthenorth.com 통해서 페이스북 에 가입했다. 그리고 페이스북 아이디를 통해 '먹스타그램'APP 에 가입을 하였다. 몇 개월의 시간이 지난후 '먹스타그램' APP 은 매우 유명해져서 많은 이들이 가입하게 된다. 이때 king@inthenorth.com의 실제 주인은 가입을 시도 하지만 자꾸 중복된 이메일 이라고 나온다. 그는 자신이 이전에 가입했던 기억이 있었나 하고 어리둥절해 할 것이다.

[시나리오 2 : 타인의 계정 권한을 획득할 수 있는 가능성 ]

북부의 왕은 '먹스타그램' APP 이 일찍이 핫 하다는것을 깨달았다. 그는 페이스북을 사용하지 않는 고집있는 사람이었고 평소 사용하는 이메일 'king@inthenorth.com' 로 가입을 했다. 그런데 왕좌를 노리는 누군가가 그의 이메일 주소로 페이스북에 가입을 하였고 다시 이 페이스북 아이디로 '먹스타그램' APP 에 가입후 로그인 한다. 그리고는 해당 계정에 북부의 왕의 흑역사 사진을 마구 올려 그를 왕좌를 위태롭게 만들었다.

위의 2가지의 시나리오는 서비스의 내부 구현에 따라서 조금씩 달라질 수 있다. 하지만 페이스북 메일이 본인 확인되지 않은 경우에는 생각해볼 수 있는 시나리오이다. 그러나 페이스북에서 제공하는 이메일이 이미 확인(verified) 된 이메일 이라면 위와 같은 시나리오는 발생할 수 없다. 타인이 해당 이메일을 도용하여 페이스북을 이용할 수 없을뿐 더러 새로운 APP 에도 가입할 수 없기 때문이다.

이런 의문이 들자마자 임의의 이메일로 페이스북에 가입을 시도 해보았다. 가입은 이루어지며 로그인 이후에 이메일 인증을 하라는 메시지가 나온다. 그렇다면 이제 이 상태에서 이 아이디로 다른 APP 에 가입할 수 있을까? 답은 '아니다' 이다. 이메일 인증을 거치지 않은 계정에 대해서는 Facebook API 가 사용을 허용하지 않기 때문이다. 이와 같은 궁금증은 이미 stackoverflow.com 에 질문으로 등록되어 답변이 잘 정리 되어있다. 결론은 내가 말한 것과 같다. 글 전체를 통해 보다 자세한 설명을 보고 싶다면 아래 링크를 통해 확인할 수 있다.

http://stackoverflow.com/questions/14280535/is-it-possible-to-check-if-an-email-is-confirmed-on-facebook

댓글 없음 :

댓글 쓰기