내가 보낸 메시지, 서버도 모르게..'열쇠값' 꽁꽁 숨겨라[정은진의 기술을 기술하다]
페이스북 서버에 저장된 메시지가 미국 임신중단권 고발사건 증거로 채택되면서
‘데이터 프라이버시’가 다시 한번 화두로
페이스북·카카오톡 메시지, 구글·네이버·다음 메일, 트위터·인스타그램 포스팅 모두 서버에 저장
미국 연방대법원이 과반수의 국민들이 반대하는데도 불구하고 임신중단권 보장 판례를 뒤집으면서 각 주의 임신중단 관련 법들이 효력을 발휘하기 시작했다. 네브래스카주는 17세 미성년 자녀가 임신을 중단하도록 도운 어머니를 고발했고, 이 사건에서 증거로 사용된 것이 두 사람 사이에 오간 페이스북 메시지라는 것이 알려지면서 데이터 프라이버시가 다시 한번 큰 화두로 떠올랐다.
■다국가 서비스는 ‘적법’의 기준이 모호
페이스북이나 카카오톡 같은 메신저에서 주고받은 메시지뿐만 아니라 구글, 네이버, 다음의 e메일, 트위터나 인스타그램에서 올린 포스팅 등 우리가 크게 의식하지 않고 쓰는 많은 서비스의 데이터는 서버에 저장되어 있고, 언제든지 적법한 요구가 있으면 제공하게 되어 있다. 다만 이 ‘적법’의 기준이 나라 혹은 지역마다 다른데 사용하는 서비스는 같을 때 문제가 복잡해진다. A나라 사람이 A나라에서는 불법이지만 B나라에서는 합법인 행동을 B나라에서 했다면, 이 사람이 처벌 대상이 되는지 아닌지도 나라마다 다르다. 한국에는 내부고발자를 보호해주는 법이 있지만, 그렇지 않은 나라들도 많다. 한국 국민이 내부고발자를 보호해주지 않는 나라에서 근무하다 귀국한 다음 그 회사의 비리를 고발했다고 해보자. 이 사람은 한국에서는 보호받을 수 있지만, 근무하던 회사가 있는 나라의 법에 따르면 소송 대상이 될 수 있다. 이때 한국에 있는 동안 주고받은 메시지를 그 나라의 법정에서 수사참고 자료로 요구할 수 있을까? 페이스북처럼 여러 나라에서 사용하는 글로벌 서비스라면 충분히 가능한 시나리오다.
■‘종단간 암호화’로 데이터 보호
미국 전자프런티어재단(EFF: Electronic Freedom Frontier)은 이렇게 서버에 저장된 데이터가 사용자에게 적대적으로 사용될 가능성이 있을 때 ‘종단간 암호화’를 제공하는 서비스를 사용하도록 권고하고 있다. ‘종단간 암호화’란 메시지를 보내는 기기에서 암호화하고, 메시지를 받는 기기에서 복호화하여 이 메시지들이 지나는 경로상의 어떤 기기도 이 메시지의 내용을 알 수 없게 하는 기능을 말한다. 예를 들어 내부고발자 C씨가 자신의 메신저 앱에서 기자 D씨의 메신저 앱으로 비리를 고발하는 메시지를 보냈다고 해보자. 이 메시지를 그냥 보내면 서버에 이 내용이 남고, 이 메시지가 언제 어디서 보내졌는지도 남는다. 하지만 암호화한 메시지는 전혀 그 내용을 알아볼 수 없어서, 서버에 이 메시지가 저장되더라도 C씨에게 적대적으로 사용될 수 없다.
미국선 열쇠값이 2의 512승개 되는 ‘종단간 암호화’ 사용 권고
휴대폰 앱 데이터도 보호 위해선 열쇠값으로 암호화한 데이터만 저장하거나
앱에 필수적이지 않은 사용자 정보는 저장 말아야
어떻게 암호화하기에 내용을 알아볼 수 없을까? 간단한 예를 들어보자(실제 암호화 함수는 훨씬 더 복잡하다). 내부고발자 C씨는 기자 D씨에게 e메일로 4자리 핀번호가 걸린 첨부파일을 보내고, 핀번호는 메신저로 보내주기로 했다. C씨가 핀번호 1234를 메신저에 입력하면, 메신저는 암호화 함수를 이용해 1234를 3배로 만들고 11을 더해서 3713이라는 결과값을 D씨의 메신저 앱으로 보낸다. 이때 D씨의 메신저 앱은 복호화 함수를 가지고 있어서, 3713에서 11을 뺀 값을 3으로 나누어서 1234가 핀번호라는 것을 알아내어 D씨의 메신저 창에는 1234가 도착한다. 이 경우 메신저 서버에는 3713이라는 숫자만 남아 있어서, 설령 복호화 함수가 뺄셈과 나눗셈으로 구성되어 있다는 것을 알아도 11과 3이라는 열쇠가 되는 숫자들을 알지 못하면 1234라는 원래의 핀번호를 알아낼 수 없다.
물론 열쇠가 될 수 있는 모든 숫자들을 다 시도해볼 수도 있지만, 일반적으로 쓰이는 암호화 함수에서 열쇠는 2의 512승개의 숫자들 중 하나를 사용하는데. 2의 512승은 0이 154개나 붙는 큰 숫자라 이 모든 숫자들을 시도하는 방식은 현실성이 없다.
■열쇠를 제대로 관리해야 암호화 유효
가능한 열쇠값을 모두 시도해보는 건 현실성이 없지만, 열쇠만 얻으면 메시지 내용은 쉽게 알아낼 수 있다. 위의 예에서 볼 수 있듯이, 종단간 암호화가 제대로 작동하기 위해서는 메시지를 보내고 받는 사람만 열쇠값을 가지고 있어야 하고 메신저 서버를 포함한 다른 어느 누구도 그 열쇠값을 몰라야 한다. C씨는 내부고발을 결심한 다음 어떻게 D씨에게 열쇠값을 전달할 수 있을까? D씨에게 보내는 e메일에 열쇠값을 포함하면 D씨의 e메일이 저장된 서버에서 핀번호를 알아낼 수 있고, 이 핀번호를 이용해서 파일도 열어볼 수 있다. 이러면 핀번호를 따로 두는 의의가 없다. 열쇠값을 메신저로 보내면 어떨까? 메신저 서버에 열쇠값(11, 3)이 저장되면 3713에서 1234를 알아낼 수 있다. 마치 닭이 있으려면 계란에서 닭이 태어나야 하고 그 계란이 있으려면 계란을 낳을 닭이 있어야 하는 것처럼, 핀번호를 비밀로 보내려면 열쇠값을 비밀로 보내야 하는데, 그러려면 또 다른 열쇠값이 필요해진다.
종단간 암호화를 제공하는 메신저 서비스에서 ‘비밀 채팅’ 옵션을 선택하면 C씨(의 메신저 앱)와 D씨(의 메신저 앱)만 알 수 있는 열쇠값을 만들어주는데, 이때 메신저 서비스 제공자도 열쇠값을 알 수 없어야 진정한 종단간 암호화라고 할 수 있다. 2021년 12월 포브스지는 사용자가 모든 애플 기기에서 같은 메시지들을 볼 수 있도록 아이클라우드에 메시지를 백업할 경우, 메시지 암호화에 사용된 열쇠값을 메시지와 함께 백업 서버에 저장한다고 보도했다. 이는 정보자유법에 따라 공개된 미 연방수사국(FBI)의 2020년 내부문서에서도 확인된 것으로, 수사관들에게 아이클라우드에 저장된 백업을 이용해서 암호화된 메시지를 풀 수 있다고 안내하고 있다. 종단간 암호화를 쓰더라도 열쇠값을 알아낼 수 있다면 사용자의 데이터를 보호할 수 없다.
따라서 종단간 암호화를 사용할 때는 서비스 제공자도 열쇠값을 알지 못하는 서비스를 선택하는 것이 중요하다. 어떻게 C씨와 D씨가 메신저 서비스를 이용하면서 서버도 모르게 열쇠값을 공유할 수 있을까? 열쇠값을 직접 보내는 대신 C씨(의 메신저 앱)와 D씨(의 메신저 앱)가 각각 난수를 발생시켜 이 난수에서 열쇠의 재료를 만든다. 메신저에서 이 재료를 서로에게 보내주고, 상대방에게서 받은 재료를 이용해 최종 열쇠값을 계산해낸다. 열쇠값을 계산하는 함수는 앱에 포함되어 있고, 서버는 재료는 볼 수 있지만, 열쇠값은 알 수 없다(재료가 있으면 열쇠값을 계산할 수 있을 것 같지만, 재료는 이미 난수를 가공한 형태여서 최종 열쇠값을 계산할 수 없다).
■‘종단간 암호화’해도 남아있는 문제들
종단간 암호화가 가능한 서비스를 사용한다고 모든 문제가 해결되는 것은 아니다. 지난달 텔레그램이라는 메신저 서비스를 이용한 윤석열 대통령과 권성동 국민의힘 당대표 직무대행 겸 원내대표 간의 대화가 유출되어 논란이 되었다. 텔레그램 메신저 서비스는 종단간 암호화가 가능하지만 이 대화는 암호화 없이 진행되었고, 실제 유출된 화면은 휴대폰 화면을 촬영한 것이라 종단간 암호화를 사용했어도 유출을 막을 수 없었다.
종단간 암호화는 메시지를 주고받는 당사자가 아닌 제3자가 메시지 내용을 볼 수 없게 해서 사용자를 보호해주지만, 받은 사람이 메시지를 유출하는 것을 막아주지는 못한다. 예를 들어 공인인증서를 웹하드에 저장하면, 내 컴퓨터에서 웹하드까지는 종단간 암호화가 제공되지만 웹하드 서비스 제공자는 암호화되지 않은 공인인증서 사본을 유출시킬 수 있다.
■휴대폰 앱 데이터도 익명화 필요
데이터 프라이버시 문제는 휴대폰 앱 데이터에서 더 두드러진다. 휴대폰은 저장용량에 제한이 있고, 휴대폰을 변경했을 때도 데이터 이전이 손쉽도록 많은 앱들이 데이터를 클라우드에 저장한다. 예전에 다이어리나 수첩에 기록하던 개인적인 데이터들, 일정, 사진, 연락처뿐만 아니라 식단, 운동, 혈압, 혈당 등 건강 관련 데이터도 이제 휴대폰 앱을 이용해서 기록하고 클라우드에 저장할 수 있다.
장기간에 걸쳐 데이터를 수집하는 앱의 경우 사용 기간 동안 데이터 양이 점점 더 많아지므로 클라우드에 저장하는 경우가 많다. 예를 들어 고혈압이나 당뇨병 등 만성질환이 있는 사용자의 경우, 매일의 혈압과 혈당 데이터가 클라우드에 사용자의 신원을 특정할 수 있는 정보(이름, 생년월일, 성별, e메일 주소, 휴대폰 고유 아이디 등)와 함께 저장되어 있으면, 의료보험이나 생명보험 회사에서 이 데이터를 이용해 사용자에게 불리한 계약 조건을 제시할 수 있다. 비슷한 예로, 생리주기를 기록해서 배란일을 예측하는 등 여성 건강과 관련된 정보를 얻을 수 있는 앱의 경우, 그 데이터를 보고 임신을 중단했다고 유추할 수도 있어 미국 연방대법원이 임신중단권 보장 판결을 뒤집었을 때 이런 앱 데이터를 지우라는 권고가 트위터 등 사회관계망서비스를 휩쓸었다.
휴대폰의 앱을 이용하는 편리함을 포기하지 않으면서, 수집한 데이터가 사용자에게 불리하게 이용되지 않도록 하려면 데이터를 휴대폰에만 저장하도록 할 수 있다. 휴대폰 용량이 제한되어 있어 앱이 사용하는 저장공간 크기가 염려된다면 최근 30일의 데이터만 저장한다든지, 수집된 데이터를 정기적으로 다운로드받을 수 있게 할 수도 있지만 아무래도 편의성이 떨어진다. 클라우드를 사용하면서 익명성을 제공하려면 사용자만 알고 있는 열쇠값으로 암호화한 데이터만 저장하거나, 앱 기능에 필수적이지 않은 사용자 관련 정보는 저장하지 않도록 할 수 있다.
■내 데이터 보호를 위한 체크포인트
내가 보내고 받는 데이터를 경로상의 다른 기기에서 못 보게 하고 싶다면 종단간 암호화가 필요하다. 서버도 알 수 없게 하고 싶다면 열쇠값이 어떻게 만들어지고, 전달되고, 저장되는지 확인할 필요가 있다. 보호해야 할 데이터를 주고받을 때는 암호화 기능을 켰는지 확인하고, 주위 사람이 볼 수 없는 장소로 이동하는 것이 좋다. 휴대폰 앱 데이터가 악용될 염려가 있다면, 내가 설정한 암호를 이용해서 암호화한 데이터만 저장하는 서비스를 사용하고, 앱을 사용하는 데 필요하지 않은 개인정보는 입력하지 않는 것이 좋다.
▶정은진 교수
서울대 전산과학과를 졸업하고 미국 오스틴에 있는 텍사스주립대학에서 전산과학 석·박사 학위를 받았다. 현재 샌프란시스코대학 부교수로 재직 중이다. 분산시스템과 인터넷에서의 보안을 연구했고, 최근에는 게임이론을 이용해서 합리적인 사람들이 블록체인처럼 탈중앙화된 시스템을 안전하게 사용할 수 있게 해주는 방법을 연구하고 있다. 최신 기술의 발전을 가까이 볼 수 있는 실리콘밸리에서 컴퓨터과학을 오래 가르치면서 기술이 사회에 미치는 영향에 대해 깊이 생각하게 되었고, 그 영향력을 선한 방향으로 이끌어가기 위해서는 더 많은 사람들이 기술을 쉽게 이해할 수 있어야 한다고 믿는다.
정은진 교수
Copyright © 경향신문. 무단전재 및 재배포 금지.
- “나도 부정선거라 생각했었다”···현장 보고 신뢰 회복한 사람들
- 국힘 박상수 “나경원 뭐가 무서웠나···시위대 예의 있고 적대적이지도 않았다”
- 늙으면 왜, ‘참견쟁이’가 될까
- 공영방송 장악을 위한 이사장 해임 “모두 이유 없다”…권태선·남영진 해임무효 판결문 살펴
- 내란의 밤, 숨겨진 진실의 퍼즐 맞춰라
- ‘우리 동네 광장’을 지킨 딸들
- 대통령이 사과해야 되는 거 아니에요? 사과해요, 나한테
- 독일 크리스마스 마켓에 차량 돌진…70명 사상
- [설명할경향]검찰이 경찰을 압수수색?···국조본·특수단·공조본·특수본이 다 뭔데?
- 경찰, 경기 안산 점집서 ‘비상계엄 모의’ 혐의 노상원 수첩 확보