나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-04-06 18:49:52

종단간 암호화



1. 개요2. 세부 구현
2.1. 키 교환
3. 특징
3.1. 한계
4. 종단간 암호화가 지원되는 서비스5. 관련 문서


End-to-End Encryption; E2EE

1. 개요

종단간 암호화는 발신원부터 수신원까지 정보의 암호화를 유지한 채로 전송하는 방식이다. E2E(End-to-End) 암호화라고도 부른다.

2. 세부 구현

간단히 말해 종단간 암호화가 구현되지 않은 경우 발신원에서 암호화된 정보가 중간 서버에서 복호화된 뒤, 재암호화되어 수신원에게 전달된다.

하지만 종단간 암호화가 구현된 경우 발신원의 정보가 암호화된 채 그대로 중간 서버를 거쳐 수신원에게 전달된다. 일반적으로 공개키 암호화 방식으로 구현하고, 그 과정에서 공격자뿐 아니라 서버도 키를 몰라 접근할 수 없도록 한다.

종단간 암호화가 지원되는 인스턴트 메신저의 경우 자신의 공개키를 서버에 저장해두고 상대방은 해당 공개키로 메시지 내용을 암호화하여 전송하는 방법을 사용한다.

2.1. 키 교환

종단간 암호화를 사용하기 위해선 발신자와 수신자가 상대방에 대한 암호키[1]를 가지는 것이 요구된다. 여기에는 몇 가지 방법이 사용된다.

인스턴트 메신저가 아닌 클라우드 스토리지의 경우 어차피 사용자가 자신의 ID와 PW를 통해 로그인하기 때문에 키 교환 문제가 없다.

3. 특징

종단간 암호화가 적용되지 않은 경우 해독 가능한 정보가 중간 서버 등에 잔류하게 된다. 이때 공격자가 중간 서버를 공격하거나, 중간 서버를 운영하는 기관 혹은 정부 기관에서 서버 내 정보를 열람할 경우 그 정보가 유출될 수 있어 개인정보 유출 및 사생활 침해의 소지가 다분하다. 하지만 종단간 암호화를 적용하는 경우 이런 요인들로 인한 정보 유출을 막을 수 있다.

TLS/DTLS와는 다르다. TLS/DTLS는 클라이언트-서버 간 암호화 통신인 반면, 종단간 암호화는 클라이언트-클라이언트 간 암호화 통신이기 때문이다.

3.1. 한계

하지만 이런 종단간 암호화가 적용되어 있다고 하더라도 안심해서는 안 된다. 중간자 공격 등을 이용한 감청의 소지가 여전히 존재하고, 종단간 암호화 방식에 따라 여러 취약점이 있을 수 있다. 실제로 텔레그램이 자체 프로토콜로 종단간 암호화를 구현하였다가 중간 서버가 이를 열람할 수 있는 취약점이 발견되어 논란이 되었다.

종단간 암호화의 키 교환 방식을 보면 알겠지만 일반적으로는 서버에 공개키를 등록해두어야 하는데, 이 공개키를 변조하면 도감청이 가능하다는 문제점이 있다. 이 문제를 해결하고자 Signal(메신저)에서는 QR코드를 통해 상대방을 확인하는 것이 가능하고, 상대방의 키가 변경된 경우 이를 알려주는 기능이 있다. 하지만 직접 만나지 못한다면 큰 의미가 없다.

또한 서버가 통신 내용을 해독하는 것이 불가능하기 때문에 서버측에서 데이터를 처리할 필요가 있는 경우에는 종단간 암호화 적용이 불가능하다.[5] 때문에 클라우드 컴퓨팅에는 단순 파일 공유를 제공하는 서비스(클라우드 스토리지)가 아닌 이상 종단간 암호화가 적용되기 상당히 어렵다.

따라서 클라우드 업체들은 이용자들의 보안 우려를 불식시키기 위해 서버 관리자가 서버에 들어 있는 내용을 추출하기 어렵게 만드는 TEE(신뢰 실행 환경)[6] 등을 도입하고 있으나, 종단간 암호화처럼 간단하면서 완벽한 기술은 아니다.

4. 종단간 암호화가 지원되는 서비스

중간 서버가 그 내용을 볼 수 없다는 특성상 여러 메신저나 정보 교환 서비스에 종단간 암호화가 적용된 것을 볼 수 있다.

5. 관련 문서


[1] 공개키 또는 대칭키[2] 이러한 문제로 인해, 한국 KISA 의 인증서는 마이크로소프트를 제외한 모든 인터넷 사업자로부터 ROOT CA 가 박탈당했다.[3] 비유하여 설명하면 개인의 인감증명서를 생각하면 된다.[4] 비유하여 설명하자면 관보를 통해 만천하에 공개되어 있는 관인을 생각하면 된다.[5] 데이터 처리를 위한 클라우드 컴퓨팅이나(클라우드 게임, 웹 호스팅 등), 서버에 변환 기능(화질/음질 변환, 동영상 인코딩 등)을 넣으려는 경우 등. 이러한 기능의 경우 고성능을 요구하기 때문에 클라이언트에서 직접 처리하기는 어려울 수 있다.[6] 쉬운 예시로는 게임의 안티치트, 넷플릭스의 DRM이 TEE와 비슷한 기능을 하고 있다.[7] 현재 암호 키체인과 건강 데이터를 포함한 일부 항목 지원.