
계정을 일일이 만드는 일은 참 번거롭습니다. 우리는 앱의 서비스를 이용하고 싶을 뿐, 이메일과 비밀번호, 기본 정보를 입력하며 5분을 보내고 싶지는 않으니까요. 그래서 '페이스북으로 로그인', '구글로 로그인' 버튼이 인터넷 곳곳에서 흔히 볼 수 있게 된 것입니다.

사용자들은 이러한 연합 로그인(federated login) 방식 덕분에 계정 생성이 훨씬 쉬워졌기 때문에 좋아하고, 웹사이트와 앱 역시 더 많은 사용자가 가입하도록 유도할 수 있어 반깁니다. 구글, 페이스북, 트위터, 마이크로소프트, 링크드인, 깃허브, 위챗, VK, 웨이보 등 다양한 서비스로 계정을 만들 수 있으니, 여러분도 이미 한 번쯤은 사용해 봤을 것이고, 동시에 '이게 과연 좋은 걸까?'라는 의문을 잠깐 품었을 수도 있습니다. 그 의문은 당연합니다. 편리하기는 하지만 보안 면에서는 트레이드오프가 존재하고, 개인정보 측면에서는 사실상 일방통행이나 다름없기 때문입니다.
소셜 로그인은 어떻게 작동할까?

모든 시스템이 똑같이 작동하지는 않지만, 기본적인 절차는 상당히 비슷합니다. 대부분의 타사 로그인 서비스는 OpenID와 OAuth 프로토콜을 조합해 사용합니다. OpenID는 사용자 인증을 담당하고(페이스북에 로그인하면 해당 사이트에 내 신원이 확인되는 방식), OAuth는 다른 사이트가 내 데이터(이름, 나이, 관심사, 친구 목록 등)에 접근하는 방식을 규정합니다.
소셜 로그인 과정에는 세 가지 주체가 관여합니다.
- 앱이나 사이트에 접근을 요청하는 사용자(바로 여러분!)
- 사용자가 이용하려는 앱 또는 사이트
- 신원을 확인하고 데이터 접근을 통제하는 인증 제공자(페이스북, 구글 등)
일반적인 소셜 로그인은 다음 순서로 진행됩니다.
- 사용자가 'OOO으로 로그인' 버튼을 클릭합니다.
- 앱이 인증 제공자 사이트에 로그인하라는 링크를 엽니다. 이 링크에는 어떤 사이트가 요청했는지 알려주는 정보가 담겨 있습니다.
- 사용자가 인증 제공자 사이트에 아이디와 비밀번호를 입력합니다. 즉, 앱은 사용자의 정보를 직접 볼 수 없습니다.
- 인증 제공자가 일회용 코드를 생성해 앱에 전송합니다.
- 앱은 이 코드를 인증 제공자에게 보내며 API 접근을 요청합니다.
- 인증 제공자가 코드를 검증하고, 앱이 특정 사용자 정보를 요청할 수 있게 해주는 토큰(보통 유효 기간 있음)을 발급합니다.
보안 장점: 이메일·비밀번호 로그인보다 더 안전할 수 있다

소셜 로그인의 보안 수준은 결국 이를 운영하는 회사의 보안 수준에 달려 있는데, 다행히 그 주체들이 세계 최대급 IT 기업들이라 '꽤 괜찮은' 편에 속합니다. 페이스북이나 구글이 좌우로 해킹당하는 모습은 잘 보이지 않습니다. 두 회사 모두 사이버 보안에 상당히 신경을 쓰고, 평범한 유통업체보다 훨씬 많은 비용을 이 분야에 투자하기 때문입니다.
연합 로그인을 사용하면 계정을 만드는 사이트가 실제로는 사용자의 아이디와 비밀번호에 접근할 수 없습니다. 따라서 누군가 여러분의 계정 자체를 훔쳐갈 가능성이 줄어듭니다(물론 일부 연관 정보는 노출될 수 있습니다).
또한 여기저기서 비밀번호를 입력할 필요가 없다는 점도 큰 장점입니다. 우리는 흔히 같은 비밀번호를 재사용하는 경향이 있으므로, 이는 분명 좋은 일입니다. 어차피 모두가 최선의 비밀번호 관리 습관을 지키고 있지 않다면, 나쁜 보안 습관을 널리 퍼뜨리지 않는 것이 낫습니다.
보안 단점: 소셜 계정이 무너지면 모든 계정이 함께 무너진다

그렇다면 만약 페이스북이나 구글이 실제로 해킹당하거나, 누군가 내 계정에 침입한다면 어떻게 될까요? 두 회사 모두 과거 데이터 문제를 겪은 적이 있고(캠브리지 애널리티카 사건, 구글+ 사건), 링크드인은 명백히 해킹당한 바도 있습니다. 빅테크라고 해서 100% 완벽한 보안 기록을 갖고 있는 것은 아닙니다.
소셜 미디어 로그인 정보를 손에 넣은 사람이, 소셜 로그인으로 가입한 모든 앱과 사이트에서 나인 척할 수 있을까요? 기본적으로는 그렇습니다. 시스템 전반의 보안 침해든, 취약한 비밀번호든, 컴퓨터에 숨어 페이스북 로그인을 기다리는 악성코드든, 로그인 정보를 확보한 사람이라면 다른 앱에서 나로 위장할 수 있습니다. 이것이 바로 소셜 로그인이 '단일 실패 지점(single point of failure)'이 되는 이유이며, 인증 계정이 침해되면 도미노처럼 연쇄 피해가 발생할 수 있습니다.
결국 소셜 미디어 계정의 보안에 많은 것이 달려 있는 셈입니다. 페이스북, 구글, 트위터는 계정 보호에 힘쓰고 있지만, 그들의 노력만으로는 부족합니다. 비밀번호가 123456789 수준이거나(강력한 비밀번호 설정 팁을 참고하세요), 공용 기기나 물리적으로 접근 가능한 기기에 계속 로그인 상태를 유지한다면 아무 소용이 없습니다. 소셜 로그인을 사용한다면, 그 계정을 해당 로그인으로 접근 가능한 모든 계정의 '열쇠'처럼 다뤄야 합니다.
개인정보 장점

이 섹션이 짧은 이유는 간단합니다. 사용자 입장에서 개인정보 보호 측면의 이점은 사실상 없기 때문입니다. 소셜 로그인이 요청하는 대로 데이터를 마구 넘겨주지만은 않는데, 이는 어찌 보면 최소한의 예의일 뿐입니다. 이메일과 비밀번호 조합을 사용할 때보다 훨씬 많은 개인 정보를 넘겨주게 되는 경우가 대부분입니다.
개인정보 단점: 모두가 당신에 대해 더 많이 알게 된다

이용하는 서비스에 따라, 앱이 소셜 프로필에서 가져갈 수 있는 데이터의 범위를 어느 정도 통제할 수는 있습니다. 하지만 의도보다 많은 정보를 허용하기 쉽고, 앱들은 대부분의 사용자가 기본값인 '예'를 누를 것임을 알기에 원하는 정보를 마음껏 요청합니다. 친구 목록, 위치, 게시글 이력, 관심사 등 개인 정보가 여러분도 모르는 사이 긁어가질 수 있습니다.
한편, 로그인 서비스를 제공하는 대부분의 회사는 사용자에 대한 더 많은 데이터 수집에 큰 관심이 있다는 점도 기억해야 합니다. 어떤 앱을 사용하는지, 얼마나 자주 사용하는지, 심지어 앱 안에서 무엇을 하는지까지 더 세밀한 정보를 알고 싶어 합니다. 이들을 통해 로그인하는 것은 사실상 그런 정보를 직접 전달해주는 것과 같습니다. 페이스북과 구글이 자사 로그인을 사용하는 앱으로부터 정확히 얼마나 많은 데이터를 받는지는 명확히 공개되지 않았지만, 한 회사가 앱 내 활동을 상세히 알게 될 가능성이 불편하다면 그 회사와 계정을 연동하지 않는 것이 좋습니다.
그래서 소셜 로그인을 써야 할까?

많은 경우 소셜 로그인이 더 안전할 수 있습니다. 특히 메인 계정을 철저히 잠가두고 있고, 이용하려는 앱이나 사이트의 사이버 보안 수준이 확실치 않다면 더욱 그렇습니다. 의심스러운 앱이나 사이트에는 오히려 소셜 로그인으로 접속하는 것이 안전합니다. 여러 사이트에서 재사용하고 있을지 모르는 비밀번호를 넘겨줄 필요가 없기 때문입니다. 반면, 민감한 정보를 담게 될 계정을 보안이 잘 갖춰진 서비스에 만든다면 강력한 이메일·비밀번호 조합이 최선의 선택입니다.
개인정보 문제는 순전히 개인의 선택입니다. 앱이 필요 이상으로 자신에 대해 알기를 원하지 않는다면 페이스북으로 로그인하지 않으면 됩니다. 반대 방향도 마찬가지입니다. 타사가 추가 데이터를 수집하는 것이 불편하다면 타사 인증 서비스를 이용하지 않으면 됩니다.