[[분류:컴퓨터 보안]] [목차] '''End-to-End Encryption; E2EE''' == 개요 == 종단간 암호화는 발신원부터 수신원까지 정보의 암호화를 유지한 채로 전송하는 방식이다. E2E(End-to-End) 암호화라고도 부른다. == 세부 구현 == 간단히 말해 종단간 암호화가 구현되지 않은 경우 발신원에서 암호화된 정보가 중간 서버에서 복호화된 뒤, 재암호화되어 수신원에게 전달된다. 하지만 종단간 암호화가 구현된 경우 발신원의 정보가 '''암호화된 채 그대로''' 중간 서버를 거쳐 수신원에게 전달된다. 일반적으로 [[공개키 암호화 방식]]으로 구현하고, 그 과정에서 공격자뿐 아니라 서버도 키를 몰라 접근할 수 없도록 한다. 종단간 암호화가 지원되는 인스턴트 메신저의 경우 자신의 공개키를 서버에 저장해두고 상대방은 해당 공개키로 메시지 내용을 암호화하여 전송하는 방법을 사용한다. === 키 교환 === 종단간 암호화를 사용하기 위해선 발신자와 수신자가 상대방에 대한 암호키[* 공개키 또는 대칭키]를 가지는 것이 요구된다. 여기에는 몇 가지 방법이 사용된다. * 서버를 전적으로 신뢰하고, 상대방의 공개키를 서버에서 내려받아 사용하는 방법. Signal, iMessage, 텔레그램 비밀채팅, 카카오톡 비밀채팅 등 대부분의 [[인스턴트 메신저]]가 여기에 해당된다. 가장 중간자 공격에 취약한 방식이다. * 직접 만나서 키를 교환하는 방법. 대표적인 예시로 [[난수방송]]이 있다. 가장 안전하지만 직접 만날 수 없을 때에는 불가능한 방식이다. Signal의 경우 오프라인에서 QR코드를 통해인증할 수 있는 기능이 있다. * 인증서를 통해 서버에 등록된 상대방의 공개키를 증명하는 방식. 서버를 전적으로 신뢰하는 것보단 낫지만 인증사업자가 부정한 인증서를 발급할 수 있다.[* 비유하여 설명하면 개인의 [[인감증명서]]를 생각하면 된다.] 대화당사자들이 이미 서로 공개된 [[인증서]]를 가지고 있다면 더 낫다.[* 비유하여 설명하자면 [[관보]]를 통해 만천하에 공개되어 있는 [[관인]]을 생각하면 된다.] 인스턴트 메신저가 아닌 클라우드 스토리지의 경우 어차피 사용자가 자신의 ID와 PW를 통해 로그인하기 때문에 키 교환 문제가 없다. == 특징 == 종단간 암호화가 적용되지 않은 경우 해독 가능한 정보가 중간 서버 등에 잔류하게 된다. 이때 공격자가 중간 서버를 공격하거나, 중간 서버를 운영하는 기관 혹은 정부 기관에서 서버 내 정보를 열람할 경우 그 정보가 유출될 수 있어 개인정보 유출 및 사생활 침해의 소지가 다분하다. 하지만 종단간 암호화를 적용하는 경우 이런 요인들로 인한 정보 유출을 막을 수 있다. [[TLS]]/[[DTLS]]와는 다르다. TLS/DTLS는 클라이언트-서버 간 암호화 통신인 반면, 종단간 암호화는 클라이언트-클라이언트 간 암호화 통신이기 때문이다. === 한계 === 하지만 이런 종단간 암호화가 적용되어 있다고 하더라도 안심해서는 안 된다. 중간자 공격 등을 이용한 [[감청]]의 소지가 여전히 존재하고, 종단간 암호화 방식에 따라 여러 취약점이 있을 수 있다. 실제로 [[텔레그램]]이 자체 프로토콜로 종단간 암호화를 구현하였다가 중간 서버가 이를 열람할 수 있는 취약점이 발견되어 논란이 되었다. 종단간 암호화의 키 교환 방식을 보면 알겠지만 일반적으로는 서버에 공개키를 등록해두어야 하는데, 이 공개키를 변조하면 도감청이 가능하다는 문제점이 있다. 이 문제를 해결하고자 [[Signal(메신저)]]에서는 [[QR코드]]를 통해 상대방을 확인하는 것이 가능하고, 상대방의 키가 변경된 경우 이를 알려주는 기능이 있다. 하지만 직접 만나지 못한다면 큰 의미가 없다. 또한 서버가 통신 내용을 해독하는 것이 불가능하기 때문에 서버측에서 데이터를 처리할 필요가 있는 경우에는 종단간 암호화 적용이 불가능하다.[* 데이터 처리를 위한 클라우드 컴퓨팅이나(클라우드 게임, 웹 호스팅 등), 서버에 변환 기능(화질/음질 변환, 동영상 인코딩 등)을 넣으려는 경우 등. 이러한 기능의 경우 고성능을 요구하기 때문에 클라이언트에서 직접 처리하기는 어려울 수 있다.] 때문에 [[클라우드 컴퓨팅]]에는 단순 파일 공유를 제공하는 서비스([[클라우드 스토리지]])가 아닌 이상 종단간 암호화가 적용되기 상당히 어렵다. 따라서 클라우드 업체들은 이용자들의 보안 우려를 불식시키기 위해 서버 관리자가 서버에 들어 있는 내용을 추출하기 어렵게 만드는 TEE(신뢰 실행 환경)[* 쉬운 예시로는 게임의 [[안티치트]], 넷플릭스의 [[DRM]]이 TEE와 비슷한 기능을 하고 있다.] 등을 도입하고 있으나, 종단간 암호화처럼 간단하면서 완벽한 기술은 아니다. == 종단간 암호화가 지원되는 서비스 == 중간 서버가 그 내용을 볼 수 없다는 특성상 여러 메신저나 정보 교환 서비스에 종단간 암호화가 적용된 것을 볼 수 있다. *[[인스턴트 메신저]] *[[카카오톡]]의 비밀 대화 기능 카카오톡에는 여러 사찰 및 검열 논란이 있어 왔는데, 비밀 대화 기능은 이와 같은 사찰 및 검열로부터 비교적 자유롭다. *[[라인(메신저)]]의 letter sealing *[[텔레그램]]의 비밀대화 기능 *[[Messenger]]의 종단간 암호화 대화 기능 *[[WhatsApp]]의 채팅 *[[줌 비디오 커뮤니케이션|Zoom]] 중국 서버 경유 논란 등 여러 개인정보 관련 논란이 있자, Zoom 서비스에 종단간 암호화를 적용한다고 밝혔다. *[[Signal(메신저)]] *[[iMessage]] *[[클라우드 스토리지|클라우드]] *[[MEGA]] *[[rclone]] *[[iCloud]][* 현재 암호 키체인과 건강 데이터를 포함한 일부 항목 지원.] *[[Proton|Proton Drive]] == 관련 문서 == *[[개인정보]] *[[공개키 암호화 방식]] *[[암호화]] *[[인터넷 검열]] *[[통신]] *[[컴퓨터 관련 정보]]