Sunday, September 28, 2014

ID 와 보안에 대한 단상 ─ 인터넷에서 무엇이 나를 확인해주나

Leave a Comment
벽한 기술이란 존재할까? 

이 질문에 '예'라고 대답할 수 있는 사람은 거의 없을 것이다. 기술이란 것이 결국 인간의 끊임없는 노력으로 연구하고 알아낸 사실들 (과학; science) 을 통해서 인간에게 유용할 것이라는 믿음을 가지고 만들어낸 산물이다. 그런데 기술을 만든 존재가 인간이기 때문에 인간의 불완전성 (imperfection) 과 불안정성 (instability) 에 의해 기술은 내재적으로 완전하지도 안정하지도 못하게 될 것이다. 같은 이유를 인터넷이란 기술에 적용하였을 때 인터넷을 구성하는 시스템은 불완전성 (incompleteness) 과 내재적 결함 (inherent deficiency) 을 가지게 된다. [ 나는 왜 여전히 카카오톡을 사용하지 않는가... ]


결국 완벽하다고 주장하고 문제가 없다는 이야기는 '아직 발견하지 못한 수많은 문제점들은 아직까지 관심가지지 않았다'는 이야기이다. 국내의 메신저 서비스 90% 을 점유하고 있는 서비스가 있다. 거의 모든 사람들이 사용하고 심지어 개인적으로 사용하지 않는다고 하면 정말 이상한 시선으로 바라보는 사람들까지 만난 적이 있다. 개인적으로 이 서비스에 가입조차 하지 않는 이유에 대해서는 [ 나는 왜 카카오톡을 사용하지 않는가 ] 를 통해 소개했다. 여러가지 이유가 있지만 두가지의 구조적 내용(structural features)을 생각하면 1) 자신을 증명할 수 있는 정보 (identifier) 가 변화 가능한 부분이란 것과 2) 개인정보의 관리 권한이 사용자가 아닌 시스템 관리자에게 있다는 점이다. 특정 메신저 서비스를 사용하지 않는 이유에 대해서 계속 쓰기 보다는 첫번째 구조적 내용인 자신을 증명할 수 있는 정보 (identifier) 에 대한 내용을 소개할 필요가 있을 것 같았다. 왜냐하면 많은 사용자들은 저 프로그램이나 앱 (소프트웨어) 가 나에게 어떤 기능을 해줄 수 있는지 (functional features) 에 집중하기 때문에 기능이 화려하면 쉽게 사용자가 되고 결국 사용자가 직접 볼 수 없는 구조적 내용 (structural features) 에 의해서 자신이 모르는 동안 개인정보 및 사용자 데이터를 전송하기도 하기 때문이다. 즉, 최근 만들어지는 많은 개인정보 (personal privacy) 와 보안 (security) 문제는 기능적 내용이 아닌 구조적 내용이 더 관련이 깊다는 점을 주목할 필요가 있다. 

조적 내용 vs. 능적 내용 

안드로이드 앱을 설치하려고 하면 앱 설치시 어떤 정보를 앱이 살펴볼 수 있으며 어떤 정보를 수정하거나 어떤 정보를 관리하게 된다는 것을 알려준다. 예를 들어 지도에 관련된 앱의 경우 사용자의 위치정보를 서버에 넘겨주어야 사용자가 위치한 근처의 지도 및 관련 정보를 보내줄 수 있다. 이 내용은 각 앱마다 Permission details 로 나와 있다. 앱의 기능에 따라 필요한 권한이 나와 있는 것이다. 사용자가 설치를 한다는 것은 앱을 사용하고 싶다는 의사표시이기도 하지만 동시에 앱이 필요한 권한을 허락한다는 뜻이기도 하다.


대부분 메신저 서비스를 제공하는 앱들은 사용자의 주소록 (Contacts) 와 위치 정보 (Location) 을 요구한다. 그외에도 많은 정보들을 요구하게 된다. 권한이 필요한 이유는 사용자들에게 좀 더 편리한 기능을 제공하기 위한 목적이 우선이다. 예를 들어 자신의 친구에게 사진찍은 사진을 보내기 위해서는 카메라/ 사진을 접근할 수 있어야 하고 음성 통화나 영상 통화를 위해서 마이크 접근도 가능해야 한다. 문제는 권한이 많다고 해서 과도한 개인 정보 (사용자 정보) 를 가져가는 것이 아니다. 주어진 권한에서 설치된 앱이 어떤 정보를 읽고 그 정보를 어떻게 관리하고 다루는가가 더 중요하다. 메신저 서비스에서 생각해보면 사용자의 주소록을 읽는 권한은 충분히 필요한 것이다. 내가 저장한 사람들 중 연락 가능한 사람이 누구인지 알아내기 위해서 꼭 필요한 정보이기 때문이다. 그런데 만약 사용자의 편의를 위해 친구추천이란 기능이 있다고 하자. 친구추천이란 내 연락처에는 존재하지 않지만 사용자가 알 수도 있는 다른 사용자들을 알려주는 서비스이다. 내 연락처 안에서 누가 서비스를 사용하는지를 알아보는 것은 아주 간단하다. 내 연락처 정보를 읽고 서비스를 사용하는 사용자인지 아닌지만 알려주면 된다. 

사용자 기기 - { 연락처 정보 } → 서비스 시스템 (서버) - { 서버시 사용여부 (Yes/No) } → 사용자 기기 (어떤 사용자가 서비스를 사용하는지 표시) 주) {        } : 전송되는 데이터 내용 ]

연락처에는 존재하지 않는 사람이 있는데 다른 사용자가 나의 연락처를 가지고 있서서 나에게 친구추천을 해주는 기능에 대해서 생각해보자. 단순히 연락처를 보내고 해당 사용자가 서비스 사용자인지 아닌지를 알려주는 방법으로는 친구추천은 가능하지 않다. 나에게는 연락처가 없는데 알 수 있을지 모르는 사용자가 누구인지 알려주기 위해서는 서비스 시스템에 해당 정보를 저장해야만 가능하다. 연락처를 읽을 수 있는 권한을 주었기 때문에 어쩔 수 없다 생각하면 할 수 없지만 서비스 시스템이 왜 내 연락처 정보들까지 다 저장하고 있어야 하는가는 다른 문제이다. 만약 사용자의 연락처 정보를 시스템에서 저장하고 있는데 서버가 해킹당하게 되어 정보가 유출된다면 사용자들의 관계망뿐만 아니라 해당 사용자들의 연락처까지 모두 다 알 수 있게 되는 것이다.


기능적 내용은 우리가 사용하는 내용으로 직접적으로 느낄 수 있는 내용이지만 구조적 내용은 서비스 제공하는 과정에서 어떤 정보를 어떻게 관리할 것인가 예를 들어 사용자들의 연락처 정보를 수집해서 어떻게 가공하고 관리하며 언제 폐기할 것인가와 같은 내용들을 말한다. 사용자들은 직접적으로 느끼기 어렵기도 하고 관리적 측면에서 서비스 운영의 정책과 밀접한 관련을 가지게 된다. 

인 식별자 정보 (Identifier) 

위키피디아의 정의를 그대로 인용하자면, 

An identifier is a name that identifies (that is, labels the identity of) either a unique object or a unique class of objects, where the "object" or class may be an idea, physical [countable] object (or class thereof), or physical substance (or class thereof). The abbreviation ID often refers to identity, identification (the process of identifying), or an identifier (that is, an instance of identification). An identifier may be a word, number, letter, symbol, or any combination of those. 

개인 식별자 정보 (Identifier) 는 줄여서 ID 라고 부를 수 있다. 아주 간단하게 사용자 정보 혹은 아이디라고 생각하기 쉽지만 이는 사용자의 시선이고 실제로 구조적 측면에서 바라보면 다르다. 예를 들어 meson 이라는 아이디로 어떤 웹 사이트에 가입했다고 하자. 해당 아이디는 유일한 (unique) 하기 때문에 다른 사람이 사용할 수 없다. 그리고 이를 쉽게 아이디라고 부르지만 시스템에서는 이를 identifier 로 사용하지 않을 수 있다. 만약 사용자가 아이디를 바꾸고 싶다고 하면 어떻게 되는지 생각해보면 된다. meson 이란 아이디가 마음에 안들어서 mesotron 으로 바꾼다면 meson 은 삭제되고 mesotron 이란 아이디가 생길 것이다. 그런데 다른 사용자가 meson 이란 아이디로 가입하게 된다면 어떻게 되는가? 만약 시스템의 권한이 meson 이라는 아이디로 설정이 되어 있다면 실제 mesotron 의 권한은 meson 이란 아이디로 가입한 사용자가 획득하게 될 것이다. 

이런 이유로 대부분은 시스템은 우리가 사용하는 아이디와 개인 식별자 정보 (Identifier) 는 다른 경우가 일반적이다. 즉, 실제 사용자는 meson 이란 아이디를 사용하지만 시스템 내부적으로는 해당 사용자의 식별 번호를 고유번호 예를 들어 10203420 과 같은 일련번호를 부여한다면 사용자 아이디가 변경되어도 시스템 내부적으로는 10203420 이란 일련번호에 맞춰 권한과 실행 여부를 판단하면 된다. 거의 대부분의 운영체제를 보면 실제 사용자 아이디(이름) 과 사용자의 고유 번호는 분리되어 있다. 이를 UID (User Identifier) 라고 부른다. 

경될 수 있는 개인 식별자 정보의 불편함

전국민이 사용하는 메신저 서비스를 사용하지 않는 가장 큰 이유 첫번째를 개인 식별자 정보 (identifier) 가 변경되기 쉬운 정보라는 점을 이야기했다. 예를 들어 어떤 사람(A)이 해당 서비스를 사용하다가 해외로 나가게 되어 번호를 해지하는 경우를 생각하자. 사용자 A 는 해당 서비스를 사용하지 않았다. 그런데 새로운 가입자 B 는 사용자 A 가 쓰던 번호를 부여받았다. 그리고 사용자 B가 해당 서비스를 가입하게 되면 사용자 A 의 해지한 번호를 저장하고 있던 사용자 A 의 지인들의 메신저 서비스에는 사용자 A 가 아닌 사용자 B 가 나타나는 것이다. 결국 사용자 A 의 지인들은 사용자 B 와의 행복한 대화(?)가 가능해질 뿐만 아니라 사용자 B 의 프로필을 얻게 되기도 한다.

친구추천 기능으로 알 수 있는 사용자를 알려준다. (선택 해제 가능) 변호가 변경되어도 서비스 가입을 하지 않으면 내 전화번호를 사용하던 이전 사용자의 프로필이 내 프로필로 나타난다.

반대의 경우도 있다. 오랫만에 한국에 들어온 사용자 C 는 한국에서 잠시 사용할 선불 유심 (USIM) 카드를 구매하고 사용하였다. 메신저 서비스를 가입하지 않고 지인들에게 선불 유심의 번호를 알려주었다. 지인들의 메신저 연락처에는 내 이름과 함께 전에 해당 번호를 사용하던 전혀 알지 못하는 사용자의 프로필이 뜨게 된다. 만약 친구추천 기능이 있다면 더 황당한 내용들이 나타나게 되는 것이다. 두가지 경우 무엇이 문제인가? 물론 두 경우 모두 큰 문제가 아니라고 생각하고 단순히 내가 아는 지인들과 연락하는 용도만 충실하다면 전혀 문제될 것도 불편함도 없을 것이다. 이런 일이 가능한 이유는 아주 간단하다. 개인 식별자 정보 (Identifier) 가 변경될 수 있다는 점, 실제 사용자와 다른 이전 / 이후 사용자의 정보를 저장하고 있다는 점이다. 이런 서비스의 구조는 내가 누구인지가 중요한 것이 아니라 어떤 번호를 사용하는지가 더 중요한 것이다. 

비슷한 경우는 애플의 아이메세지 (iMessage) 에서도 발견할 수 있다. 아이메세지는 발표될 당시 많은 사람들의 호응을 얻었던 서비스이다. 일반 문자 메세지를 보낼 때 송신자 / 수신자 양쪽 모두 iMessage 를 사용하는 경우 일반 문자 메세지가 아닌 애플이 서비스하는 메신저 서비스로 일반 문자 요금은 부과되지 않고 메세지의 데이터만 차감되는 서비스이다. 즉, 송신자가 메세지를 보내면 수신자가 아이메세지 사용자인지 아닌지 확인 후 사용자인 경우 통신사의 일반 문자 메세지 (SMS) 가 아닌 데이터를 이용한 메신저 내용으로 보내주는 것이다. 그런데 수신자가 아이폰과 아이메세지 서비스를 잘 사용하다가 길거리 통신사의 손해보고 판다는 문구에 혹해서 전화기를 안드로이드 폰으로 바꾼 경우 문자메세지를 받지 못하는 문제였다. 문제의 원인은 간단했다. 수신자는 아이메세지 서비스를 해지하지 않은 체 단말기를 바꾸었기 때문에 수신자는 여전히 아이메세지 서비스를 사용중인 것으로 나왔고 송신자에서 메세지를 보내면 해당 수신자는 여전히 사용중으로 나와서 아이메세지 서비스로 보내지만 수신자는 아이메세지 서비스에서 단말기로 받을 수가 없어서 아이메세지 서비스에서 문자 메세지가 유령이 되어 떠돈다. 이 경우도 결국 아이메세지 서비스는 개인 식별자 정보를 전화번호로 사용하고 있기 때문에 발생한 것이다. 

iMessage 를 사용하던 사용자가 아이폰이 아닌 단말기로 변경시 서비스 해제 (deactivation) 을 먼저 해야 한다.

결되어 있음 (stay connected) ... 

메신저 서비스를 한번 생각해 본다. 많은 경우 사용자의 편의를 위해(?) 그리고 서비스의 활성활를 위해 사용자의 연락처를 읽어들여 연락처 중 서비스를 사용하는 다른 사용자를 알려준다. 서비스는 더 친절하기 위해 연락처 정보를 저장하여 내가 아직 저장하지 못한 알 수 있는 사람을 알려주기도 한다. 그러나 스마트폰이 활성화되기 이전 메신저 서비스가 다 이런 편의를 제공했던 것은 아니다. 예전에는 사용자가 직접 대화 상대의 이메일 주소 혹은 서비스 아이디를 알아서 직접 입력해서 등록해야 대화가 가능한 경우도 있었다. 즉, 자신의 연락처를 통해 연결하는 것이 아니라 자신이 원하는 상대를 등록하는 방식이었다. 


스마트폰이 바꾼 세상의 모습 중 하나는 바로 '연결되어 있음 (stay connected)' 이다. 항상 인터넷에 연결되어 있어서 언제 어디서라도 메신저에 온라인으로 떠 있는 것이다. 과연 꼭 이렇게 항상 온라인이어야 하는지 의문이 들때가 많다. 책을 읽는 도서관에서도 버스에서도 걸어다니면서 심지어 운전 중에도 날라오는 문자 메세지, 전화, 메신저 대화는 수시로 수신되고 사용자는 확인해야 되는 병에 걸린 것만 같다. 단말기와 멀리 떨어져 잠시 자신만의 시간을 가지는 경우는 거의 없다. 한국은 이런 모습이 특히 더 심한 것 같다. 단말기 화면을 보면서 걸어다닌다. 앞에 오는 사람은 신경쓰지도 않는다. 미국의 코메디언 C.K. 루이는 이런 현상을 "인간이 얼마나 외로운 존재인지 말해준다. 운전하는 그 짧은 순간에도 확인하지 않으면 불안해 미칠려고 한다." 라고 말한다. 

메신저 서비스가 보급되면서 메신저 서비스의 목적이 무엇이냐고 물으면 '사람들과의 관계를 향상시키기 위해서...' 라고 말할 것이다. 친구들과 지인들과 메신저를 통해 대화하고 자주 안부를 묻고 이야기를 나누면 사람들의 관계가 좋아질 것이라고 생각할 것이다. 그런데 역설적으로 온라인의 서비스가 추구하는 목적은 결국 오프라인 (현실 세계) 에서 반대의 효과를 가져온다. 메신저 서비스가 추구하는 목적대로라면 온 국민의 90% 는 동일한 메신저 서비스로 대동단결하고 한민족의 저력은 상승하고 온 국민이 행복과 기쁨 넘치는 사람 사는 세상이 되었을 것이다. 그러나 메신저는 수많은 광고 메세지와 상대방이 보내는 일방적인 메세지 그리고 심지어 읽지 않은  1  이란 숫자에 노심초사하면서 '저 인간이 왜 읽지도 않는거야' 하면서 상대방의 행동까지도 판단하게 된다. 

C.K. 루이가 말했던 내용 중 어릴 때부터 스마트폰을 쓰면 안 좋은 이유 중 가장 공감이 가는 내용이 있었다. 메신저가 보편화 되면서 쉽게 메세지 보내는 것에 익숙해지면서 사람의 말이 가지는 사회적 기능을 이해하지 못한다는 내용이었다. 예를 들어 내 아이가 친구에게 "너 무지 뚱뚱해" 라고 메세지 보내면 친구가 기분이 나빠서 대답을 안하거나 감정이 상해 이모티콘을 보낸다고 하자. 만약 온라인이 아닌 현실에서 실제 친구와 보면서 대화를 한다고 하면 "너 무지 뚱뚱해" 했을 때 친구의 표정과 행동을 바로 보면서 내가 했던 말이 상대방에게 어떤 감정을 만들고 심하면 상처를 줄 수 있다는 것을 알게 되지만 온라인 메신저를 통해서는 상대방의 얼굴과 반응을 제대로 확인하지 못하기 때문에 내가 어떤 말을 했을 때 상대방이 기분이 나빠질 수 있다는 것을 학습하지 못한다는 것이다. 즉, 감정이나 표정은 메세지로 전달되기도 어렵고 심지어 오해만 만들기 쉽다.


다시 넘어와서 '연결되어 있음 (stay connected)' 만으로 우리는 인간적 관계가 더 좋아질 것이란 착각 속에 살고 있다는 것이다. 그리고 내 연락처에는 내가 연락하고 싶은 사람 뿐만 아니라 내가 연락하고 싶지 않은 사람도 존재할 수 있다는 그 간단한 진리조차 서비스를 설계한 사람은 이해하고 있었는지 궁금하다.  

인 정보에 대한 패러다임 

흔히 개인 정보를 잘 관리하는 서비스가 무엇이냐 물으면 대부분 보안 철저하고 안전하고 ... 등 대부분 보안성 (secured side) 을 이야기한다. 즉, 개인 정보를 잘 저장하고 이를 외부의 해킹이나 칩입에 의해 노출되거나 유출되지 않는 것을 이야기한다. 개인적으로 이 부분이 개인 정보에 대한 관대함을 만든 것이 아닐까 생각하게 된다. 만약 나의 연락처 정보와 내가 대화했던 내용들을 시스템 (서버) 에서 저장한다고 했을 때 그리고 사용자의 편의를 위해서 필요하다고 사용자도 동의했을 때 문제는 바로 시스템 (서버) 자체에 대한 신뢰를 어떻게 할 수 있는가이다. 아무리 컴퓨터 시스템이 발달했다고 해도 시스템은 항상 취약할 수 밖에 없다.


더 중요한 질문은 바로 "서비스를 사용하면서 발생한 데이터는 누구의 소유인가?" 이다. 즉, 아무리 사용자가 동의했다고 해도 사용자의 개인 정보, 대화 내용들은 누구의 소유인가란 질문이다. 소유 (owner) 란 말은 해당 데이터 (개인 정보) 에 대한 최대 권한 (full permission) 을 가지고 있어야 한다는 것이다. 그러나 내가 아무리 동의했다 해도 서버에 올라간 연락처 정보들은 내가 원할 때 제때 지울 수도 없을 수 있고, 대화 내용은 더욱 더 힘들 때가 많다. 심지어 이런 시스템적 지식을 가지고 있는 사람이 직접 회사에 찾아가 자신의 대화 내용을 지워달라고 해도 수사 과정에서 필요하다면 다시 복구해서 확인할 수 있는 세상이다. 물론 범법 행위에 관련된 내용이라면 법적 기준에 따라 해당 내용을 수사할 수 있다. 그러나 그 외의 경우라면 어떤가. 이런 이유로 개인 정보 보안은 안전하게 잘 지킨다는 의미를 넘어서 개인 정보를 만든 소유자가 언제라도 내 데이터를 관리할 수 있다는 의미까지 포함해야 한다. 관리한다는 뜻은 내가 만든 개인 정보 (대화 내용, 연락처, 위치정보) 를 열람 (read), 가공 (edit) 하고 분석 (analyze) 후 새로운 데이터를 만들 수도 있고 필요하다면 삭제 (delete) 할 수 있어야 한다는 것이다. 

라서 개인 정보를 바라보는 시각은 잘 지켜주는 것이 아니라 내가 원할 때 (whenever) 원하는 것 (whatever) 을 어디서나 (wherever) 어떤 관리 내용 (however) 을 내가 (identifier) 할 수 있어야 한다는 것이다. 
러한 내용으로 살펴보면 내가 나누었던 대화 내용은 내 계정의 영역에서 살펴볼 수 있어야 하고 (able to browse or search) 아무리 오래된 내용이라도 필요하다면 영원히 간직하기도 하고 (able to archive) 어제 이야기 나눈 내용이라도 필요하지 않다면 지울 수 있어야 한다. (able to wipe) 

주요 은행의 개인 정보 유출 사건들을 살펴보면 재미있는 공통점을 가질 수 있다. 첫번째는 중요한 데이터이지만 암호화를 하지 않았다는 점이다. 관리의 편의를 위해서 개인이 제공한 데이터가 회사의 소유라는 생각에서 아무런 문제가 없는 구조적 설계이다. 두번째는 유출이 대량이라는 점이다. 대규모 개인 정보 데이터를 관리하는 시스템 (서버) 의 경우 컴퓨터 시스템 (운영체제)의 취약점이나 하드웨어적 결함을 생각해서 조금씩 설정 및 설계 구조가 다른 시스템을 두어 데이터를 분산시키는 것이 기본적 내용이다. 즉, 외부의 공격이나 내부적인 문제점으로 개인 정보가 유출되어도 문제의 원인이 무엇인지 알기 위해서 서로 다른 설정과 구조를 가진 시스템을 분산시켜 두는 것이다. 그러나 동일 (homogeneous) 구조의 시스템으로 구성한 경우 한번 유출되면 모든 정보가 모두 유출되기 쉽다.  

안을 해석하는 두가지의 시선 

온라인 게시판에 자주 나타나는 내용 중에 '안드로이드는 보안에 취약하고 아이폰은 보안에 강하다.' 란 내용을 볼 때마다 그 단순화의 오류는 어디서 나오는 것일까 하는 생각이 든다. 결론적으로 이야기해서 '보안 의식이 없는 아이폰 사용자는 보안 의식이 철저한 안드로이드 사용자보다 개인 정보가 털릴 가능성이 더 높다' 가 아닐까 싶다. 보안을 두고 안드로이드 vs. 아이폰 의 대결 구도로 몰고 가는 것은 많은 일반화의 오류를 포함하게 된다. 사용자가 누구인지도 설정되지 않고 어떤 앱을 사용하는지 어떤 환경에서 사용하는지에 대한 제한없이 쉽게 안드로이드 < 아이폰 의 판정승을 내리는 것은 심각한 오류를 만든다. 만약 이런 명제가 참이 될려면 아이폰 사용자 중에는 단말기를 통해 개인 정보가 유출되는 경우가 없어야 한다. 이런 이유로 보안을 해석할 때는 두가지의 시선을 골고루 고려해야 한다. 

구조적 보안: 하드웨어 뿐만 아니라 소프트웨어가 보안성을 가지는지에 대해서 생각하는 것이다. 흔히 생각하는 내용들이다. 그러나 여기에서 조금 생각해야 할 부분은 기본적 하드웨어, 운영체제가 안전하다고 해서 보안이 좋은 것은 절대 아니다. 사용자가 어떤 앱을 사용하느냐에 따라서 보안이 뚫릴 가능성도 분명히 존재하기 때문이다. 예를 들어 같은 라우터 안에 있는 주변의 컴퓨터의 패킷 스누핑을 통해서 전달되는 데이터가 암호화가 되어 있지 않은 경우도 이런 경우이다. 

사용자 보안: 많은 경우 사용자의 부주의에 의해 유출되는 개인 정보도 상당히 많다. 예를 들어서 암호가 아주 쉽거나 암호를 공유하는 경우도 있고 스마트폰의 스크린 락 (screen lock) 을 걸지 않아 타인이 쉽게 볼 수 있게 만드는 경우도 생각할 수 있을 것이다. 

그러나 더 중요한 것은 구조적 보안과 사용자 보안이 결합되어 의미있는 개인 정보로 가공되는 경우이다. 예를 들어 서비스 업체의 서버가 해킹을 당하고 서비스 업체는 구조적 보안을 철저하게 하지 않아서 개인 정보의 암호화를 하지 않아 그대로 사용자의 아이디 / 패스워드, 휴대폰 번호 등이 모두 유출된 경우에 이 유출된 정보를 가지고 아직 유출되지 않은 다른 서비스에 접근하는 것이다. 유출된 아이디 / 패스워드를 동일하게 다른 서비스에서도 사용하는 경우에는 구조적 보안의 문제 뿐만 아니라 동일 아이디 / 패스워드를 사용한 사용자의 섬세하지 못한 보안 의식이 결합되어 생긴 문제이다.


보안을 구조적 / 사용자 보안으로 구별해서 살펴보는 것은 개인 정보의 유출로 인해 실질적 피해를 입게 되었을 때 누가 책임을 져야 하는지에 대해 살펴보게 한다. 개인적으로 2차 인증 (2-step verification) 이 가능한 서비스는 모두 가입하고 모든 서비스의 패스워드는 패스워드 관리기에서 발생한 난수발생기를 통해 임의의 패스워드를 저장한다. 즉, 내가 인지할 수 있는 패스워드는 [ 2차 인증 ]을 이용하고 2차 인증이 안되는 서비스는 내가 알 수 없는 암호를 사용하는 것이다. 이렇게 하면 특정 서비스에서 개인 정보가 유출되어도 좀 더 안전하기 때문이다. 개인적으로 애플 아이디 관리에서 2차 인증 서비스를 신청하고자 했지만 거의 1년동안 웹페이지의 시스템 오류로 신청할 수 없다가 유명인의 아이클라우드 사진 유출사건 이후 시스템 오류가 사라졌지만 2차 인증은 애플 기기를 사용하지 않은 사람들에게는 거의 의미가 없다. 심지어 애플 제품을 사용하지 않는 경우 아이클라우드 서비스 (이메일) 는 비활성화가 되는 경험을 하고 2차 인증을 해제해버렸다. 

그렇기 때문에 보안은 하드웨어 / 운영체제 단계에서 보안이 좋다 나쁘다를 판단하기에 이르다. 2차 인증과 같은 추가적인 보안 구조를 갖추는 것이 더 중요하다. 그리고 무엇보다 보안에 대한 인식이 일반화되는 것이 더욱 더 중요하다. 

신저 서비스를 생각해 본다. 

개인 정보의 발생 빈도가 높은 서비스를 생각하면 단연 메신저 서비스일 것이다. 개인 식별자 정보 (Identifier) 와 보안에 대한 일반적인 내용을 생각해 볼 때 메신저 서비스를 대입해 볼 필요가 있을 것 같다. 우선 개인 식별자 정보가 변화 가능성이 높은 핸드폰 번호로 부여 한다는 것의 문제점은 살펴보았다. 물론 핸드폰 번호가 부여되어 평생 바뀌지 않는다면 문제가 없을 것이다. 그러나 통신사는 일정 기간만 지나면 해지된 번호는 바로 사용하기 때문에 핸드폰 번호가 개인 식별자 정보가 된다는 것은 문제를 만들 수 있을 것이다. 물론 핸드폰 하드웨어가 가지는 고유식별번호 (IMEI) 는 더욱 자주 바뀌는 번호이긴 하지만 다시 사용하지 않는 유일한 번호가 된다면 계속 업데이트만 해도 어느 정도 괜찮을지 모른다. 그러나 중고폰이나 도난폰의 경우는 다른 문제를 가지게 된다. 

결국 인터넷을 사용하는 사용자에게 나를 확인할 수 있는 고유한 정보로 가장 적합해 보이는 것은 이메일 주소가 될 수 있다는 점을 주목할 필요가 있다. (대부분이 변경되지 않는 전화번호를 사용한다면 전화번호도 이메일과 같은 역할을 할 수 있을 것이다.) 이메일을 위한 주소일 뿐이지만 아이디 / 암호를 공유하지 않는다면 자신만이 사용하는 유일한 정보가 될 수 있다. 그리고 개인 정보에 민감하다면 아이디는 변경해서 사용할 수 있다. 한국의 주민등록번호의 가장 큰 문제점은 고유 식별자 정보에 이미 개인정보가 포함되어 있다는 점과 고유 식별자 정보로 사용되는 서비스가 너무 광범위해서 아무리 아이디가 달라도 동일인인지 확인할 수 있다는 것이다. 즉, 고유 식별자 번호는 나를 나타내는 유일한 번호이지만 그 번호가 항상 모든 서비스를 사용하는데 동일해야 한다는 말은 아니다. 오히려 동일하지 않아야 하는 이유는 보안의 측면에서 더 권장해야 한다. 쉽게 말해 나란 사람과 나를 나타내는 주민등록번호만 알면 각 서비스에서 얻어낸 정보를 조합해서 내가 제공한 개인 정보의 총정리를 만들 수 있다.

구글 Hangouts 은 이메일 주소 (Gmail 이 아닌 이메일 포함) 을 통해 대화 상대를 등록하게 된다.

다시 메신저 서비스로 넘어오면 내가 만든 이메일 주소가 메신저 서비스에서 친구 추가하는 정보이기만 하면 된다. 내가 알아야 할 정보는 상대방의 이메일 주소면 충분하다. 종종 어떤 이유에서 자신의 정보를 제공해야 한다고 한다면 자신의 프로필을 통해 공개하면 된다. 그런데 어떤 상대에게는 공개해도 어떤 상대에게는 공개하고 싶지 않다면 이메일 추가한 사용자들을 그룹으로 묶어 내 정보를 볼 수 있는 각기 다른 보기 권한을 부여하면 된다. 예를 들어 친한 친구들에게는 내 핸드폰 번호를 공개해도 온라인에서만 알고 있는 상대에게는 핸드폰 번호를 공개하지 않는 것이다. 여기서 중요한 것은 내가 제공한 개인 정보이지만 개인 정보에 대한 편집, 공개 여부 등을 내가 관리할 수 있다는 점이다. 

기기번호가 식별자 정보 (identifier) 가 아닌 이메일이나 별도 ID 로 로그인이 가능하면 다중기기에서 접속이 가능하다.

이메일이 개인 식별자 정보가 되면 유리한 점은 한 단말기에서만 접속할 수 있는 것이 아니라 동일 아이디로 접속한 다중 기기에서 모두 동일하게 대화가 가능하다는 점이다. 따라서 다중 기기를 지원하는 모든 기기들은 기본적으로 전화번호를 통해 사용자를 식별하지 않는다. 그리고 대화 내용은 어디에서 대화를 해도 내가 열람하고 원하면 지우고 필요하다면 복사하여 다른 곳에 저장할 수도 있어야 한다. 내가 만든 데이터는 나에게 있다는 개인 정보의 개념을 따르기 때문이다. 

무리하며... 

가끔 사람들은 편리성이라는 악마의 유혹에 쉽게 빠져들어 자신이 어떤 시스템의 구조에서 자신의 개인 정보, 데이터가 어떻게 처리되는지 무관심하게 될 때가 많다. 그리고 눈에 보이는 사건들이 나타나야 그때서야 어떤 행동을 취할 때가 많다. 가장 대표적인 예가 최근 (2014년 9월) 검열의 가능성이 있을 수 있다는 소문에 의해 특정 메신저 서비스로 망명을 하는 현상일 수 있다. 이런 현상들을 나쁘게 생각하지 않는다. 편리성에 묻힌 부분들을 생각할 수 있는 기회가 되기 때문이다. 그러나 이미 익숙해져 빠져나오지 못하는 사용자뿐만 아니라 새로운 서비스를 사용한다고 해도 동일한 문제를 벗어날 수 있는지에 대한 고민보다는 단지 기능적 측면에 더욱 더 집중하게 되기도 한다. 


결국 아주 사소하고 별 것아닌 앱 하나의 사용이지만 이것도 기술을 이해하는 철학의 문제라고 생각한다. 철학은 이미 일어난 현상에 대한 해석도 하지만 현재 내가 어떤 선택을 해야하는지에 대한 결정을 도와주기도 하고 더욱 중요한 것은 그 결정에 의해 내가 예상할 수 있는 미래의 문제를 방지할 수도 있기 때문이다. 보안의 문제를 바라보면 많은 사람들은 두려움이나 공포로 시작했지만 이제 너무도 자주 발생하니 지겨움이나 심지어 무관심이나 포기의 영역으로 들어서는 것 같다. 

사실 더욱 더 중요한 문제는 이러한 서비스를 제공할 때 단지 돈 많이 벌기 위해 사용자를 어떻게 끌어 모을까의 탐욕적 자세로 달려다는 서비스 업체를 더욱 더 경계해야 한다. 소프트웨어는 인간에게 이로움을 주기 위한 도구이다. 인간이 볼 수 없는 영역을 통해 인간을 돈벌이 수단으로 바라보면 소프트웨어는 악한 존재가 되기 쉬워진다. 오랜동안 전문성을 가지는 서비스를 하는 소프트웨어 회사들의 공통적인 특징은 지금 당장의 손해에도 불구하고 어떤 결정이 인간을 위한 결정인지 고민하는 철학을 가진 기업이란 믿음을 가지고 있다. 

믿음이 모이면 우리는 신뢰라 부른다. 

0 comments:

Post a Comment