삭제한 메시지는 정말 사라질까? 사본의 개수가 답이다
보낸 메시지를 지우고 나면 마음이 놓인다. 화면에서 사라졌으니 없어진 것처럼 보인다. 그런데 “삭제”라는 버튼이 실제로 무엇을 지우는지는 앱마다 다르다. 이걸 알려면 질문을 하나 바꿔야 한다. 없어졌는가가 아니라 원래 몇 군데에 있었는가다.
메시지 한 통은 보통 네 곳에 있다
메시지를 하나 보내면 화면에는 한 줄이지만 사본은 여러 개다. 내 기기 저장소에 하나. 상대방 기기 저장소에 하나. 상대방이 기기를 두 대 쓰면 둘. 전달을 위해 서버를 거치면서 서버에도 하나. 여기에 클라우드 백업을 켜 두었다면 백업 파일 안에 하나가 더 들어간다.
대부분의 메신저가 이렇게 동작한다. 대화를 기기에 저장해 두어야 오프라인에서도 열어 볼 수 있고 앱을 켰을 때 바로 뜨기 때문이다. 편리함의 대가는 사본이 흩어진다는 것이다.
잊기 쉬운 다섯 번째가 있다. 알림이다. 메시지 내용을 알림에 실어 보내면 그 본문은 애플과 구글의 알림 서버를 거치고 기기의 알림 기록에도 쌓인다. 대화방 안의 사본을 지워도 알림 기록은 별개다. 알림 기록이 수사기관의 요청과 기기 포렌식의 대상이 된다는 사실은 이미 여러 차례 드러났다.
“나만 삭제”와 “모두에게서 삭제”
사본이 여러 개이니 삭제 메뉴도 둘로 갈린다. “나만 삭제”는 내 기기의 사본 하나를 지운다. 상대방 화면에는 그대로 있다. 서버에도 백업에도 그대로 있다. 이름 그대로 나만 안 보이게 되는 것이다.
“모두에게서 삭제”는 좀 더 복잡하다. 내 기기 사본을 지우고 상대방 기기에 “이 메시지를 지워 달라”는 요청을 보낸다. 상대방 기기가 온라인이고 요청을 받아 처리하면 그쪽 사본도 사라진다. 그런데 이건 요청이지 명령이 아니다. 상대방이 이미 백업을 떠 두었다면 백업 안의 사본은 그대로다. 기기가 꺼져 있다가 나중에 켜지면 그때 가서 지워진다. 그래서 대개 시간 제한이 붙는다. 보낸 지 몇 분이나 며칠이 지나면 이 메뉴가 사라지는 이유다.
복구 업체가 복구하는 것
“삭제한 메시지 복구”를 검색하면 업체가 많이 나온다. 이들이 하는 일은 마법이 아니다. 기기 저장소에서 삭제 표시만 되고 아직 덮어쓰이지 않은 데이터를 읽어 내거나 백업 파일을 여는 것이다. 복구가 된다는 사실 자체가 사본이 기기에 남아 있었다는 증거다. 기기에 사본이 없으면 복구할 것도 없다.
진짜로 지우려면 구조가 달라야 한다
결론은 단순하다. 지우는 순간 정말 없어지려면 사본이 하나여야 한다. 그리고 그 하나가 어느 한쪽 기기에 있으면 안 된다. 기기는 백업되고 분실되고 포렌식 대상이 된다.
방법은 원본을 서버에 한 개만 두고 기기는 저장하지 않는 것이다. 앱은 열 때마다 서버에서 받아 화면에 그리고 닫으면 잊는다. 이렇게 하면 삭제는 요청이 아니라 사실이 된다. 서버의 원본이 지워지면 모든 기기가 다음에 열었을 때 볼 것이 없다. 상대방 기기의 협조도 필요 없고 시간 제한도 필요 없다. “나만 삭제”라는 메뉴는 존재할 수 없다. 지울 사본이 내 기기에 없기 때문이다.
그런데 서버에 원본을 두면 서버가 읽을 수 있지 않은가. 그래서 이 구조는 종단간 암호화와 함께여야만 성립한다. 서버에 있는 원본은 암호문이고 열쇠는 기기에만 있다. 서버는 읽지 못하는 것을 보관하고 지우기만 한다. 두 가지가 합쳐져야 “서버도 못 읽고 지우면 정말 지워지는” 메신저가 된다.
그래도 남는 것
정직하게 말하면 이 구조에서도 남는 것이 있다.
- 상대방이 이미 읽은 기억과 화면 캡처. 어떤 기술도 이걸 되돌리지는 못한다.
- 상대방이 그 메시지를 전달했다면 전달된 메시지는 별개의 새 메시지다. 원본을 지워도 그것은 남는다.
- 상대방이 사진이나 파일을 기기에 저장했다면 그 파일도 별개다.
- 누군가 그 메시지에 답장을 달았다면 답장 위에 붙는 인용 미리보기가 남는다. 이것도 암호문으로 저장되니 서버는 읽지 못한다.
“흔적도 남지 않는다”는 말은 어떤 메신저도 할 수 없다. 할 수 있는 말은 “삭제하면 사본이 남는 곳이 없다”까지다.
시그니토는 이렇게 되어 있다
시그니토(Signito)는 대화를 기기에 저장하지 않는다. 메시지는 서버에 암호화된 원본 하나로만 있고 열쇠는 기기에만 있다. 삭제하면 그 원본이 지워져 대화에 참여한 모든 기기에서 사라진다. 1:1 대화에서는 어느 쪽이든 지울 수 있고 그룹에서는 자기 메시지를 지운다. “나만 삭제”는 없다. 첨부한 사진과 파일도 메시지가 지워지면 곧 따라서 지워진다.
알림에는 본문이 실리지 않는다. 알림 서버를 거치는 것도 기기의 알림 기록에 쌓이는 것도 “메시지 몇 개”라는 개수뿐이다. 다섯 번째 사본은 처음부터 만들어지지 않는다. 그리고 지우지 않아도 보존 기간이 지나면 자동으로 지워진다. 그 이야기는 사라지는 메시지의 원리에서 한다.