본문 바로가기

IT/법령정책

트위터와 수사협조

2년 전 모 기관 세미나 자리에서 발표했던 슬라이드의 제목을 따왔습니다. 그때나 지금이나 똑같은 질문을 받고 똑같은 답변을 하고 있어야 하니 이건 서글프다고 해야할지.

우선, 제가 재직중인 회사는 트위터 한국 지사가 아닙니다(트위터는 한국내에 자신의 입장을 대변할 홍보대행사 등 협력사도 존재하지 않습니다). twtkr(http://twtkr.olleh.com)을 포함한 국내 트위터 관련 서비스를 영위하는 사업자, 혹은 개인은 모두 서드 파티(3rd Party)로 트위터와 제휴 관계가 아닌, API에 대한 사용권만을 부여받은 갑-을 관계에 지나지 않습니다.

서드 파티의 이해

서드 파티는, 서비스 제공자(퍼스트 파티·1st Party)외 사용자(세컨드 파티·2nd Party)가 아닌, 제3자가 1) 퍼스트 파티의 리소스를 이용한 서비스를 제공하거나, 2) 기능을 확장하는 플러그인을 제공하여 세컨드 파티가 이용할 수 있도록 하는 역할을 수행하며, 퍼스트 파티와 별도의 제휴 관계를 맺는 경우도 있고(주로 꼭 필요한 기능이나 서비스이지만 퍼스트 파티에서 직접 개발하거나 제공할 여력이 없는 경우), 그런 것 없이 리소스 사용 계약만을 체결하는 경우도 있습니다. 물론 별도 제휴건, 리소스 사용 계약이건 퍼스트 파티가 하기 싫으면 언제든 끝낼 수 있다는 점에서 결국 비용이 오고 감을 감안하지 않더라도 슈퍼갑-을 관계가 이루어지는 것만은 확실합니다.

트위터에 적용하여 각 파티를 설명해보면..

1) 퍼스트 파티: (당연히) 트위터 본사
2) 세컨드 파티: (당연히) 트위터 서비스에 가입하여 사용하는 사용자들
3) 서드 파티: 트위터 API를 이용한 각종 클라이언트 애플리케이션과 서비스들

* 단, 원래 서드 파티였다가 인수(tweetie, tweetdeck 등)되거나 전략적 제휴를 통한 기능 제공(photobucket 등)을 하게 된 경우는 서드 파티가 아닌 퍼스트 파티로 간주합니다.

대표적인 서드 파티로는 twtkr, 파랑새, UberSocial, twicca 등의 웹/앱 클라이언트, twitaddons, twitpic, lockerz, twitvid, LiveRe 등의 서비스가 있습니다.

서드 파티의 한계

트위터의 경우 API를 통해 서드 파티가 액세스할 수 있는 데이터의 범위가 한정되어있습니다. API 종류 별로 모두 범위가 다른데, 대표적으로 몇가지만 예를 들어보면…

1) statuses/home_timeline: 내가 팔로우하는 사용자들의 트윗을 한번에 모아보는 홈 타임라인에 대한 API로, 팔로잉한 다른 사용자의 리트윗(retweet)을 포함한 최근 800개까지의 트윗을 불러올 수 있습니다.
2) statuses/user_timeline: 특정 사용자가 작성한 트윗을 불러오는 API로, 리트윗을 포함한 최근 3,200개까지의 트윗을 불러올 수 있습니다(protected user인 경우 인증한 계정이 해당 사용자를 팔로우하고 있어야합니다).
3) statuses/mentions: 내 계정을 멘션(mentions·@특정 계정 표현이 포함된)한 트윗들을 불러오는 API로, 최근 800개까지의 트윗을 불러올 수 있습니다.

뭐 대충 이정도인데, 각각 API에 걸려있는 제한을 확인해보시려면 twitter developer > Documentation > REST API Resources에 방문하시면 됩니다. 대충 둘러보시면 아시겠지만, 트위터는 절대 모든 데이터베이스를 서드 파티에게 100% 개방하지 않습니다. 기술적 이유도 있겠고, 정책적 이유도 있으니까요.

더군다나, 트위터 회원 가입을 해보면 알겠지만, 거의 대부분의 항목을 허위(!)로 작성(한국에서 주민등록번호/i-Pin을 받는 것과 달리 Social Security Number 따위 요구하지 않습니다)할 수 있음에도 불구하고 반드시 정확한 정보를 제공해야하는 항목은 이메일 주소입니다. 왜냐 하면 이메일은 가입 혹은 회원정보 수정 후 해당 메일 주소로 보낸 인증 메일 내 인증 절차를 수행해야하기 때문에 이 부분만은 허위로 작성할 수 없습니다. 그래서인지, 트위터는 회원 데이터베이스의 대부분의 항목을 확인할 수 있도록(일부는 수정할 수 있도록) API를 제공하고, ID와 프로필 이름의 경우 protected user 여부와 관계없이 무조건 공개하고 있으면서도, 이메일 주소만은 공개하거나 API를 통해 제공하지 않습니다. 즉, 트위터의 서드 파티는 트위터 회원의 이메일 주소를 확인할 수 없습니다.

정보통신 관련 수사

현재 국내 대부분의 수사 기관은 포털 등 일반적인 웹사이트를 수사할 경우 특정 회원의 가입 정보, 혹은 로그 기록을 요청합니다. 가입 정보는 전기통신사업법에 규정된 통신 자료, 로그 기록은 통신비밀보호법에 규정된 통신사실 확인자료라 합니다(그 외 형사소송법에 규정된 압수수색검증과 통신비밀보호법에 규정된 통신제한(감청) 조치가 있습니다만 이 포스트에서는 논외로 하겠습니다).

전통적으로 특정 가입자의 신원을 확인하기 위해서는 가입시 실명 인증이 수반되는 대형 포털의 가입자 인적 사항을 확인하고 있습니다. 특히, 대형 포털의 주요 서비스에 이메일 서비스가 있다는 점, 그리고 정보통신망 이용촉진 및 정보 보호에 관한 법률에 의해 (아직까지) 제한적 본인확인제가 적용되고 있어 회원 가입 정보가 비교적 정확하다는 (수사 기관 입장에서의) 이점이 있기 때문에, 수사 기관은 정보통신 관련 수사 진행시 거의 반사적으로 통신자료 제공요청 또는 통신사실 확인자료 제공요청을 집행하고 있습니다.

트위터 관련 수사는?

하지만 실명 인증 절차가 존재하지 않는 트위터의 경우, 앞서 언급한 바와 같이 이메일 주소를 제외한 다른 모든 항목을 허위로 작성할 수 있습니다. 제가 새로 가입하는 계정의 프로필 이름이 조지 부시일 수도 있고, 가카 일 수도 있죠. 그래서, 수사기관은 트위터에 대한 수사를 진행할 때, 트위터 본사가 아닌 twtkr 등의 서드 파티에게 연락을 하게 되는데(트위터와 연관된 국내 법인이 없음에도 불구하고 당장 수사는 해야하는 처지이기 때문에 국내 서드 파티에게 연락), 연락을 해봤자 허탕입니다. 앞서 얘기한 바와 같이 서드 파티는 트위터 회원의 이메일 주소를 확인할 수 없기 때문이며, 이로 인해 서드 파티는 수사 기관에게 “제공할 수 있는 정보가 없습니다” 따위의 답변을 줄 수 밖에 없습니다.

이메일 주소는 회원 정보에 포함되기 때문에 통신자료에 해당합니다. 이는 제공이 불가능하다 치고, 그렇다면 로그 기록인 통신사실 확인자료는 제공할 수 있는 것이 아니냐라고 생각할 수 있고, 실제로 많은 수사 기관에서 그렇게 문의합니다. 심지어 국내 정보통신사업자이면서도 국가 법령에 협조하지 않는다고 준엄하게 꾸짖는 몰상식한 경우도 있습니다(뭐 저 같은 경우 그런 소리를 하면 거의 비아냥조로 답변을 하는 편이긴 합니다만…).

트위터 개인정보취급정책에 따르면 트위터 서비스는 IP 주소를 포함하는 로그 기록을 수집하고 있습니다.

로그 데이터: 저희 서버는 당신이 서비스를 이용할 때 자동으로 정보("로그 데이터")를 저장합니다. 로그 데이터에는 당신의 IP 정보, 브라우저 종류, 조회 된 도메인, 방문 웹페이지, 이용 통신사 구분, 휴대장치와 애플리케이션 ID, 검색어 등이 포함 될 수 있습니다. 저희 웹사이트와의 상호작용, 애플리케이션과 광고 또한 로그 데이터에 포함 될 수 있습니다. 이미 로그 데이터가 이미 삭제 된 상태가 아니라면 18개월이 지난 뒤 삭제하거나 계정명과 같은 통상 계정 식별자들을 제거합니다.

최소 3개월분만 저장하면 되는 국내 사업자와 달리(통신비밀보호법), 트위터는 안시켜도 알아서 18개월분을 저장합니다. 그런데 이건 트위터 얘기입니다. 서드 파티가 그 저장한 로그 데이터를 확인할 수 있다거나, 서드 파티에게도 로그 데이터를 별도 저장할 수 있는 권리가 있다는 식의 얘기는 단 한마디도 없습니다. 약관이라던지 개인정보취급방침이라는 정책 특성상, “한다/안 한다/할 수 있다/할 수 없다/해야한다/하지 말아야한다”가 명확히 규정되어있지 않은 경우, 서드 파티는 애매한 것은 애정남에게 물어보던지 일단 안하는 것이 상책입니다. 서드 파티라는 입장 특성상 뭘 섣부르게 했다가, 트위터가 “아아 너님들 API 약관 위반임. 바이바이” 이러면서 API 끊어버리면 그걸로 서비스가 쫑나니까요.

더불어, 트위터 인증 방식이 2010년 8월 31일부 OAuth 전면 사용으로 바뀌면서, 서드 파티 웹/앱에 직접 아이디와 패스워드를 입력하여 인증하는 방식(Basic Authentication)을 폐지하고, 서드 파티 웹/앱에는 단순히 “로그인” 버튼만 존재하고, 해당 버튼을 클릭하면 트위터의 로그인 창이 직접 떠서 인증을 수행하도록 바뀌었기 때문에 로그 기록을 서드 파티 쪽에서 따로 보관하기가 어려워졌습니다. 예를 들어 서드 파티 웹 클라이언트 서비스인 twtkr의 경우:

1) http://twtkr.olleh.com 접속
2) [Sign in with Twitter] 클릭
3) 트위터 로그인/앱의 계정 사용 승인 여부를 묻는 페이지(twitter.com 주소)로 이동
4) 로그인 후 인증되었다는 키값만 twtkr로 넘기면서 twtkr.olleh.com으로 돌아옴(로그인 완료)

이렇게 진행됩니다. 웹이던 앱이던 다 이렇게 진행하고 있습니다(물론, 아이디와 패스워드를 직접 입력할 수 있는 xAuth가 허용되는 케이스가 있긴 한데 이건 통상의 API 허가와는 절차도 다르고, 좀처럼 트위터에서 허가를 해주는 것도 아니라서 요즘은 xAuth는 거의 안 씁니다). OAuth 키값을 저장하고 쓸 수 있는 로그인 상태 유지가 제공되지 않거나 사용자가 설정해놓지 않는 한, 무조건 위의 절차를 따르도록 되어있습니다.

이렇게 진행된다는 것은, 로그인 처리를 트위터에서 직접 할테니 니들은 데이터베이스에 저장되어있는 패스워드 같은 건 알 필요가 없다 = 사용자 개인정보의 보호 수준을 높인다는 의도가 있습니다. 더군다나 소셜 네트웍 서비스라는 특성상 패스워드가 잘못 유출되면 특정 사용자에게 치명적인 사회적 피해가 발생할 수도 있는 노릇인지라, 서드 파티들이 귀찮아질지언정, 방향은 맞는 것 같습니다. 트위터의 관련 공지에서도 그런 내용이 들어가 있습니다.

What does this mean for me?
The move to OAuth will mean increased security and a better experience. Applications won’t store your username and password, and if you change your password, applications will continue to work.

더불어, 서드파티 웹 클라이언트의 경우, 로그인을 안 하더라도 http://twtkr.olleh.com 등의 탑페이지만 접속하는 경우도 많습니다. 그러면 이 접속에 대한 로그를 모두 가지고 있다가, 그 중에서 트위터 인증을 처리한 로그만 남기고 나머지는 버려야하는 리소스 낭비가 상상 이상으로 크게 발생하게 되지요. 국가 법령에 협조해야하니까 리소스 낭비라도 해야한다고요? 그렇다면 앱 클라이언트와의 형평성 문제가 발생합니다. 앱, 그중에서도 모바일 접속(트위터 모바일 웹 포함)이 전체 트윗에서 차지하는 비중은 2011년 이미 40%를 넘었으며, 계속 늘어가고 있습니다. 그런데 앱 클라이언트가 IP 어드레스를 포함하는 로그 데이터를 별도 저장한다는 얘기는 못 들어봤습니다. 사실 그거 있어봤자 별 쓸모도 없고요. 따라서 최소한 twtkr 만큼은 로그 기록을 보관하지 않습니다. 회원 데이터베이스가 twtkr의 소유가 아닌데, 로그 기록을 반드시 보관해야하는 당위성도 존재하지 않는다 판단됩니다.

그나마 가능한 정도는

결국 이런 저런 이유를 종합하면 가입자 인적 사항으로 대표되는 통신자료나, 로그 기록으로 대표되는 통신사실확인자료 모두 수사 기관이 국내 서드 파티를 조져봤자 얻을 수 있는 것이 없습니다. 이렇게 설명하면 “미국에라도 요청해야하는거냐!”라고 일갈하시는 분들이 꼭 계시던데… 네, 미국 트위터 본사에 영어로 요청하셔야합니다.

다행스럽게도, 아니 당연하게도 소송 천국 미쿡 캘리포니아주 샌프란시스코에 본사를 둔 트위터는 법 집행 담당 부서를 따로 두고 있으며, 법 집행(Law Enforcement)에 대한 안내 페이지를 구비하고 있습니다. 아주 어려운 영어는 아니니까 부담가지지 마시고요, 주의할 점은 아래 항목입니다.

Requests for User Information*
Twitter, Inc. is located in San Francisco, California and will only respond in compliance with U.S. law to valid legal process.

사용자 정보* 제공 요청
트위터社는 캘리포니아 샌프란시스코에 위치하고 있으며, 미국 법에 따른 정당한 법적 절차에만 응합니다.

* 여기서 말하는 사용자 정보는 가입자 정보 뿐 아니라 로그 데이터도 포함하는 개념입니다.

미국 법에 따른 정당한 법적 절차에만 응한다는 것이 명시되어있습니다. 이는 곧, 한국의 수사 기관(국정원이라 하더라도)이 그냥 팩스나 이메일을 보내서 “이 사용자에 대한 정보를 주시오” 해봤자 트위터의 Legal 파트는 이를 가볍게 무시할 가능성이 매우 높다는 것으로 해석할 수 있습니다. 물론, 한국과 미국은 한미국제형사사법공조조약을 체결하였고, 이를 통한 수사 공조가 가능합니다만, 절차도 엄청 복잡(신청 절차만 하더라도 경찰→검사→법무부장관→외교통상부장관→미국 국무부→미국 검찰→트위터 순)하고, 트위터 관련 수사의 상당수를 차지하는 명예훼손 따위의 잡범(…) 잡겠다고 저 짓거리를 하는 건 국가적 낭비요, 국격 손상 및 나라 망신에 가깝겠죠. 심지어 미국 대부분의 주는 명예훼손이 형사 범죄로 취급되지도 않습니다.

그러면 트위터 수사는 포기?

작정하고 범죄를 저지르기 위해 계정을 새로 팠다면 뭔 수를 써도 잡기가 어렵습니다. 이건 비단 트위터 뿐 아니라 기존의 국내 포털도 마찬가지 실정입니다. 그나마 트위터에는 protected user라 하더라도 사용자 ID와 프로필 이름이 공개되기 때문에 이를 통한 Social Tracking 정도는 가능합니다. 아이디를 일반 포털하고 동일하게 쓴다던지, 프로필에 적혀있는 Bio를 가지고 찾는다던지, Protected user가 아닌 경우 해당 사용자가 작성한 트윗을 가지고 유추한다던지.. 아주 실효성이 있다고 보기에는 무리겠지만 딱히 100% 실패하거나 하는 방법이 아니기 때문에, 정말 중요한 범죄피의자라면 한번쯤 시도해볼 가치는 있다고 생각합니다.

하지만, 국내 수사 기관들이 워낙 간편하게 팩스 한장 떨렁 보내서 인적 사항이나 로그 기록 받아오는, 정보통신망에서의 편한 수사 방법(일반적인 오프라인 수사와 비교했을 때)에 익숙해진 탓인지, 위에 말씀드린 내용을 잘 이해하지 않으시거나 귀찮아 하시는 것 같더라고요. 그렇다면, 뭐 할 수 없는거죠. 2년전 세미나에서 그리 얘기를 해도 안 먹히니 저로써는 뭐..

아, 그리고 국내 사업자가 보유한 회원이 아니고, 서드 파티 특성상 여러 클라이언트에서 트윗을 동시에 볼 수 있기 때문에 정보통신망법에 규정한 제한 조치(블라인드제) 및, 방송통신심의위원회의 시정 명령도 트위터에 대해서 적용할 수 없는 점은 참고하시길. 방통심의위의 SNS 규제에 대한 내용은 조만간 포스팅을 별도로 하겠습니다. ⓣ