🕵️ 친구와 암호 대화
한국어

종단간 암호화(E2EE)란? 메신저 암호화의 의미와 한계

많은 메신저가 "종단간 암호화(End-to-End Encryption, E2EE)가 적용되어 있습니다"라고 안내합니다. 이 문구를 보면 "그럼 아무도 내 대화를 볼 수 없겠구나" 하고 안심하기 쉽습니다. 절반은 맞고 절반은 지나친 기대입니다. 종단간 암호화는 아주 구체적인 한 가지를 약속하며, 그 약속 밖에는 여전히 위험이 남아 있습니다. 이 글에서는 이 말이 정확히 무엇을 보장하는지, 무엇은 보장하지 않는지, 그리고 이 서비스는 어떤 위치에 있는지 차분히 짚어 봅니다.

"종단"이 가리키는 것: 대화의 양 끝

편지가 보내는 사람에게서 받는 사람에게 가는 동안 여러 곳을 거칩니다. 우체국, 분류 센터, 배달 차량 등입니다. 종단간 암호화는 편지를 보내는 사람의 집에서 봉투를 봉하고, 받는 사람의 집에서만 뜯을 수 있게 하는 방식입니다. 중간에 있는 누구도, 심지어 편지를 나르는 회사조차 내용을 읽을 수 없습니다. 여기서 "종단(end)"은 대화의 양 끝, 즉 보내는 사람의 기기와 받는 사람의 기기를 뜻합니다.

대조되는 방식이 "구간 암호화"입니다. 흔한 서비스에서는 내 기기에서 서버까지는 암호화되고(HTTPS 같은 전송 구간 암호화), 서버에서 상대 기기까지도 암호화되지만, 서버 안에서는 내용이 풀려 있습니다. 그러면 서비스 운영자, 서버를 침해한 공격자, 법적 요구를 받은 회사는 내용을 볼 수 있습니다. 반면 E2EE에서는 서버가 보관하고 중계하는 것이 열 수 없는 암호문뿐이므로 서버가 침해당해도 대화 내용 자체는 새어 나가지 않습니다. 열쇠가 양 끝 기기에만 있기 때문입니다. 이 열쇠를 합의하는 방법에는 보통 공개키 기술이 쓰이는데, 원리가 궁금하시다면 대칭키 암호와 공개키 암호에서 다룬 내용을 참고하세요.

E2EE가 지켜 주는 것

제대로 구현된 E2EE는 다음을 막아 줍니다. 첫째, 서버 운영자나 서버 해킹으로 인한 대화 내용 열람입니다. 둘째, 네트워크 중간(공용 와이파이, 통신사)에서의 도청입니다. 셋째, 서버에 저장된 대화 데이터가 통째로 유출되는 사고의 피해입니다. 유출되어도 열 수 없는 암호문이기 때문입니다. 대화의 비밀이 "서비스를 믿어야 지켜진다"에서 "수학적으로 서비스도 못 본다"로 바뀌는 것이 핵심 가치입니다.

E2EE가 지켜 주지 못하는 것

이제 반대편을 봅니다. 종단간 암호화의 약속은 "전송 중과 서버에서의 내용"에 한정됩니다. 그 밖의 것들은 별도의 문제입니다.

마케팅 문구에서 E2EE가 "완벽한 보안"처럼 들리는 경우가 있는데, 정확한 이해는 "서버와 중간 경로에 대한 보호"입니다. 이 구분을 아는 것만으로도 서비스 설명을 훨씬 비판적으로 읽을 수 있습니다.

메신저 E2EE는 어떻게 키를 관리하나

대표적인 메신저들은 대화 상대와 키를 합의하는 데 공개키 방식의 키 교환을 사용하고, 메시지를 보낼 때마다 키를 바꿔 나가는 구조를 쓰기도 합니다. 그러면 어느 시점에 키 하나가 유출되어도 과거와 미래의 메시지까지 모두 위험해지지는 않습니다. 일부 서비스는 E2EE를 기본이 아닌 선택 기능으로 제공하기도 하므로, 내가 쓰는 대화방에서 실제로 켜져 있는지 확인하는 습관이 필요합니다. 또 단체 대화방이나 여러 기기에서 동시에 쓰는 환경은 키 관리가 훨씬 복잡해서, 서비스마다 보장하는 범위가 다를 수 있습니다.

이 서비스의 위치: 메신저 위에 한 겹을 더하는 방식

이 서비스는 메신저가 아닙니다. 대화 내용을 서버가 중계하거나 저장하지 않습니다. 사용자는 브라우저에서 글을 암호화해 비밀어를 만들고, 그것을 카카오톡 같은 기존 메신저에 붙여 넣어 보냅니다. 해독 키 재료는 번역기 주소의 # 뒤에 있는데, 브라우저는 # 뒤의 조각을 서버에 전송하지 않으므로 서버는 키를 받지 못합니다. 서버에 저장되는 것은 번역기의 설정 정보(비밀번호 여부, 만료 시각 등)이며 대화 내용이 아닙니다. 그 점에서는 "서버가 내용을 볼 수 없다"는 E2EE의 정신을 따릅니다.

그러나 정직하게 말씀드릴 한계도 있습니다. 첫째, 이 서비스는 웹사이트이므로 접속할 때마다 서비스가 제공하는 자바스크립트 코드를 내려받아 실행합니다. 이론적으로는 운영자가 코드를 바꾸면 키를 빼낼 수 있으므로, 사용자는 운영자를 어느 정도 신뢰해야 합니다. 이는 웹 기반 암호화 서비스가 공통으로 안고 있는 한계입니다. 둘째, 주소가 곧 열쇠이므로 주소가 노출되면 그 번역기의 비밀어는 열립니다. 셋째, 메신저에는 암호문 모양의 비밀어가 남으므로 누가 누구와 대화했다는 사실과 비밀어의 대략적인 길이는 가려지지 않습니다. 넷째, 해독된 글은 기기 화면에 보이므로 앞서 말한 기기 보안 문제가 그대로 적용됩니다.

그래서 이 서비스는 "전문 보안 메신저의 대체재"라기보다 "평소 쓰는 메신저의 대화에 가벼운 비밀 한 겹을 씌우는 도구"로 이해하시는 편이 정확합니다. 직접 사용해 보고 싶으시다면 번역기 열기에서 비밀번호 없이 시작해도 되고, 주소와 비밀번호를 서로 다른 경로로 전하는 방식으로 위험을 나눌 수도 있습니다.

E2EE 문구를 만났을 때 던져 볼 질문

마지막으로 어떤 서비스든 E2EE라는 말을 만나면 이렇게 물어보시길 권합니다. 이 암호화는 기본으로 켜져 있는가, 모든 대화에 적용되는가, 백업은 어떻게 보호되는가, 상대의 키를 확인할 방법을 제공하는가, 코드는 검증 가능한가. 이 질문들에 답을 찾을 수 있다면 그 서비스를 얼마나 믿을지 스스로 판단하실 수 있습니다. 보안은 "있다/없다"가 아니라 "무엇을 누구로부터 막아 주는가"의 문제이기 때문입니다.

잘못된 내용이나 보완할 점을 발견하셨다면 소개·문의의 이메일로 알려 주세요. 확인 후 글을 고치고 수정일을 갱신합니다.

함께 읽으면 좋은 글

다음 글: 강한 비밀번호와 암호문을 만드는 법 → 번역기 열기