음성통화에서 IP가 드러나는 이유
메시지는 암호화로 지킬 수 있다. 잠가서 보내면 서버도 내용을 못 읽는다. 그런데 음성통화는 사정이 조금 다르다. 내용을 잠그는 것과 별개로 통화가 연결되는 방식 자체가 정보를 흘린다.
여기서 말하는 통화는 메신저 안에서 거는 통화다. 전화번호를 눌러 거는 통화와는 연결되는 방식이 다르다. 무엇이 어떻게 흐르는지 순서대로 보자.
통화는 왜 직접 연결을 택하나
메시지는 0.5초 늦게 도착해도 아무도 눈치채지 못한다. 통화는 다르다. 0.3초만 밀려도 말이 겹치고 대화가 어색해진다. 그래서 통화를 만드는 사람은 지연을 줄이는 데 매달린다.
지연을 줄이는 가장 확실한 방법은 거치는 곳을 없애는 것이다. 내 기기에서 서버로 갔다가 다시 상대에게 가는 대신 두 기기를 바로 잇는다. 이 방식을 P2P라고 부른다. 통화 기능을 붙일 때 이 방식이 기본이 되는 이유다.
직접 연결은 주소를 주고받아야 성립한다
두 기기가 바로 이어지려면 서로 어디로 보내야 하는지 알아야 한다. 그래서 연결을 맺기 전에 각자의 주소 후보를 주고받는다. 여기에는 공인 IP 주소가 들어간다.
통화가 연결되는 순간 상대의 기기는 내 주소를 알게 된다. 메신저가 화면에 보여주지 않을 뿐이고 기기끼리는 이미 주고받은 뒤다. 상대가 조금만 볼 줄 알면 그 주소를 확인할 수 있다.
주소 하나로 알 수 있는 것
IP 주소로는 대략의 지역과 쓰는 통신사를 알 수 있다. 정확한 집 주소가 나오지는 않지만 어느 도시에 있는지는 대체로 좁혀진다. 여기에 통화 시각이 쌓이면 생활 반경이 드러난다.
친한 사이라면 큰 문제가 아닐 수 있다. 문제는 모르는 사람과 통화할 때다. 중고 거래로 만난 사람일 수도 있고 낯선 번호로 걸려 온 전화일 수도 있다. 얼굴 한 번 본 적 없는 상대와의 통화 한 번이 계정과 묶이지 않게 지켜 온 정보를 그냥 넘겨준다.
중계로 가릴 수 있다 그런데 대가가 있다
방법이 없는 것은 아니다. 두 기기를 바로 잇지 않고 중계 서버를 하나 두면 된다. 서로에게 보이는 것은 서버의 주소이고 상대의 진짜 주소는 서버만 안다.
대신 값을 치른다. 우선 지연이 늘어난다. 가까이 있는 두 사람이 멀리 있는 서버를 거쳐 돌아가기 때문이다. 그래서 품질도 떨어질 수 있다. 목소리가 끊기거나 미묘하게 늦는 식이다. 서버 비용도 통화한 시간만큼 그대로 나간다. 메시지와 달리 음성은 통화가 이어지는 내내 흐르기 때문이다.
이 대가 때문에 메신저들은 대체로 직접 연결을 먼저 시도한다. 중계를 지원하더라도 그것은 직접 연결이 실패했을 때를 위한 예비 수단이다. 기본은 여전히 직접 연결이다.
그래서 아직 넣지 않았다
시그니토(Signito)에는 음성통화가 없다. 만들 줄 몰라서가 아니라 지금 넣으면 앞뒤가 맞지 않기 때문이다.
우리는 IP 주소를 계정에 붙여 두지 않는다. 비정상 트래픽을 막는 데 필요한 동안만 들고 있다가 길어야 7일 안에 지운다. 주소로 사람을 짚어 낼 수 있는 자리를 어디에도 만들지 않겠다는 뜻이다.
그런데 통화를 직접 연결로 붙이면 그 자리가 통화 한 번에 생긴다. 서버는 여전히 모르지만 통화한 상대가 알게 된다. 서버를 믿지 않아도 되게 만들어 놓고 대화 상대에게 주소를 넘기는 셈이다.
넣는다면 조건은 두 가지다. 중계를 예비가 아니라 기본으로 두는 것 그리고 통화 내용도 메시지와 같은 방식으로 잠그는 것이다. 둘을 만족하려면 서버 비용과 품질 문제를 풀어야 한다. 그것이 정리될 때까지는 없는 채로 두는 편이 낫다고 봤다. 날짜를 약속하는 대신 조건을 적어 둔다.
자주 묻는 질문
중계를 쓰면 서버가 통화를 들을 수 있나요
들을 수 있게 만들 수도 있고 못 하게 만들 수도 있다. 주소를 가리는 것과 내용을 잠그는 것은 다른 문제여서 둘 다 따져야 한다. 중계 서버가 암호화된 음성을 나르기만 하도록 만들면 경로는 알아도 내용은 열지 못한다.
영상통화도 마찬가지인가요
같다. 오히려 데이터가 훨씬 커서 직접 연결로 붙일 이유가 더 크고 중계로 돌릴 때 드는 비용도 그만큼 커진다.
지금 쓰는 메신저가 어떤 방식인지 알 수 있나요
메신저가 밝히지 않으면 일반 사용자가 확인하기는 어렵다. 설정에 중계나 프록시를 켜는 항목이 있는지 보고 개인정보처리방침에 통화 연결 방식이 적혀 있는지 확인하는 정도가 현실적이다. 아무 설명이 없다면 직접 연결이 기본이라고 보는 편이 안전하다.
모르는 사람과는 통화하지 않으면 되나요
위험을 줄이는 가장 쉬운 방법이 맞다. 다만 내가 거는 통화만 문제인 것은 아니다. 받는 순간에도 연결은 똑같이 맺어진다. 그래서 받기 전에 상대를 확인할 수 있는지 그리고 모르는 사람의 통화를 아예 막을 수 있는지를 함께 보는 것이 좋다.