엔드 투 엔드 암호화(E2EE)란 무엇인가요?
엔드 투 엔드 암호화(E2EE)란 무엇인가요?
아티클

엔드 투 엔드 암호화(E2EE)란 무엇인가요?

중급
Published Jul 3, 2020Updated Apr 29, 2021
8m

들어가며

오늘날 디지털 커뮤니케이션의 특징은 상대와 직접적으로 커뮤니케이션하는 경우가 거의 없다는 것입니다. 여러분과 여러분의 친구가 개인적으로 메시지를 주고 받는 것처럼 보이지만, 실제로는 중앙 서버에 메시지가 기록되고 저장됩니다.

여러분은 여러분과 수신자 사이에서 메시지 전달 역할을 하는 서버가 해당 메시지를 읽는 것을 원치 않을 수 있습니다. 이 경우, 엔드 투 엔드 암호화(end-to-end encryption 또는 간단히 E2EE)가 해결책이 될 수 있습니다.

엔드 투 엔드 암호화는 전송자와 수신자 사이의 커뮤니케이션을 암호화하는 방법이며, 이들은 해당 데이터를 해독할 수 있는 유일한 당사자들 입니다. 엔드 투 엔드 암호화의 기원은 필 짐머만(Phill Zimmerman)이 Pretty Good Privacy(PGP로 더 잘 알려진)를 출간한 1990년대로 거슬러 올라갑니다. 

여러분이 왜 엔드 투 엔드 암호화를 사용하고 싶을 수 있는지, 그리고 이는 어떻게 작동하는지 살펴보기 전에 암호화되지 않은 메시지는 어떻게 작동하는지 살펴보도록 하겠습니다.


암호화되지 않은 메시지는 어떻게 작동하나요?

일반 스마트폰 메시지 플랫폼이 어떻게 작동하는지 이야기 해보도록 하겠습니다. 여러분은 애플리케이션을 설치하고 계정을 만듭니다. 이를 통해 동일한 과정을 거친 다른 이들과 커뮤니케이션을 할 수 있습니다. 여러분은 메시지를 작성하고, 친구의 이름을 입력하고, 이를 중앙 서버에 전송합니다. 서버는 여러분이 친구에게 메시지를 발송한 것을 확인하고, 이를 목적지로 전달합니다.


사용자 A와 B의 커뮤니케이션. 이들은 커뮤니케이션을 위해 서버(S)에 반드시 데이터를 통과시켜야 합니다.


여러분은 이를 클라이언트 서버 모델로 알고 있을 수도 있습니다. 클라이언트(여러분의 휴대전화)는 많은 작업을 하고 있지 않으며, 서버가 모든 힘든 일을 감당합니다. 그러나 이는 또한 서비스 제공자가 여러분과 수신자 사이에서 중간자 역할을 한다는 의미이기도 합니다.

대부분의 경우, 다이어그램 내 A <> SS <> B 사이의 데이터는 암호화되어 있습니다. 클라이언트와 서버의 연결을 보호하는 데 널리 사용되는 TLS(Transport Layer Security)가 그 예입니다.
TLS 및 이와 유사한 보안 솔루션은 메시지가 클라이언트에서 서버로 이동할 때 누군가 이를 가로채지 못하도록 합니다. 이러한 조치는 외부자가 데이터에 접근할 수 없게 하지만, 서버는 여전히 이를 읽을 수 있습니다. 암호화가 필요한 지점입니다. A의 데이터가 B의 소유인 암호화 키로 암호화된다면, 서버는 이를 읽거나 이에 접근할 할 수 없습니다. 

엔드 투 엔드 방법이 없이 서버는 해당 정보를 수 백만 명의 다른 정보와 함께 데이터베이스에 저장할 수 있습니다. 많은 데이터가 계속해서 유출된다는 점에서, 이는 최종 사용자에게 큰 피해를 가져다 줄 수 있습니다.


엔드 투 엔드 암호화는 어떻게 작동하나요?

엔드 투 엔드 암호화는 여러분을 다른 이들과 연결하는 서버 뿐만 아니라 누구도 여러분의 커뮤니케이션에 접근할 수 없도록 합니다. 해당 커뮤니케이션은 일반 텍스트, 이메일, 파일, 화상 통화에 이르기까지 모든 것이 될 수 있습니다.

데이터는 와츠앱, 시그널 또는 구글 듀오(추정)와 같은 애플리케이션에서 암호화되기 때문에, 전송자와 예정된 수신자만 이를 해독할 수 있습니다. 엔드 투 엔드 암호화 방식은 키 교환이라 하는 작업으로부터 시작할 수 있습니다.


디피 헬만 키 교환이란 무엇인가요?

디피 헬만(Diffie-Hellman) 키 교환 아이디어는 암호학자 위트필드 디피(Whitfield Diffie), 마틴 헬만(Martin Hellman), 랄프 머클(Ralph Merkle)에 의해 고안되었습니다. 이는 적대적인 환경 속에서 당사자들이 비밀을 공유할 수 있도록 하는 강력한 기술입니다.

즉, 이후의 메시지를 유출하지 않고, 불안정한 환경에서도 키를 생성할 수 있습니다(다른 이가 지켜보는 중에도). 당사자들이 커뮤니케이션을 위해 물리적으로 키를 교환하지 않아도 되기 때문에, 이는 정보화 시대에 특히나 소중한 것입니다.

이러한 교환에는 큰 숫자들과 암호학적 기법들이 사용됩니다. 우리는 세부 사항에 대해서는 살펴보지 않을 것입니다. 다만, 잘 알려진 페인트 색 비유를 들어볼 것입니다. 앨리스와 밥이 복도의 각 반대편 끝에 있는 다른 호텔 방에 머물고 있으며, 이들은 특정 페인트의 색을 공유하고자 합니다. 이들은 다른 이들이 페인트 색이 무엇인지 알지 못했으면 합니다.

안타깝게도, 호텔 로비에는 첩자들이 가득합니다. 앨리스와 밥은 서로의 방에 들어갈 수 없으며, 오직 복도에서만 대화를 나눌 수 있다고 해보겠습니다. 이들은 복도에서서 만나 노란색이라고 이야기하며 공통 페인트 색을 공유할 수 있습니다. 이들은 노란 페인트 통을 하나씩 가져와 이를 나눈 다음, 각자의 방으로 돌아갑니다.

이들은 자신의 방에서 아무도 알지 못하는 비밀스러운 페인트를 섞을 것입니다. 앨리스는 파란색을, 밥은 빨간색을 섞습니다. 중요한 것은 첩자들은 이들이 어떤 색을 사용하는지 보지 못한다는 것입니다. 그러나 이들은 새롭게 섞은 페인트 색을 볼 수 있을 것인데, 앨리스와 밥이 파랑-노랑, 빨강-노랑으로 혼합된 페인트를 갖고 방을 나설 것이기 때문입니다.

이들은 혼합된 페인트를 공공 장소에서 교환합니다. 이제 첩자들이 이를 봐도 문제가 되지 않는데, 정확히 어떤 색상이 추가되었는지 알 수 없기 때문입니다. 이는 단지 하나의 비유라는 점을 기억해주시길 바랍니다. 시스템의 기반이 되는 실제 계산은 비밀 “색상”을 추측하는 것보다 훨씬 어렵습니다.

앨리스는 밥의 혼합 페인트를, 밥은 앨리스의 혼합 페인트를 갖고 다시 방으로 돌아옵니다. 이들은 이제 다시 자신들의 비밀 색상을 섞습니다.

  • 앨리스는 자신의 비밀 색상인 파랑을 밥의 빨강-노랑 페인트에 섞어, 이를 빨강-노랑-파랑 혼합 페인트로 만듭니다.
  • 밥은 자신의 비밀 색상인 빨강을 앨리스의 파랑-노랑 페인트에 섞어, 이를 파랑-노랑-빨강 혼합 페인트로 만듭니다.

두 혼합 페인트는 동일한 색상을 갖게 되며, 따라서 겉보기에는 같아 보입니다. 앨리스와 밥은 첩자들이 알지 못하게 고유한 색상을 성공적으로 만들어 냈습니다.



우리는 이러한 방법을 사용하여 공개 장소에서 공유된 비밀을 만들어 낼 수 있습니다. 차이점이 있다면 복도와 페인트 대신, 안전하지 않은 채널, 공개 키, 개인 키를 다룬다는 것입니다.


메시지 교환

당사자들이 자신의 비밀을 공유하기로 할 때, 이들은 기본적으로 비대칭 암호화 방식을 사용할 수 있습니다. 일반적으로 널리 사용되는 구현에는 보다 강력한 보안을 위해 부가적인 기술들이 추가되지만, 사용자 입장에서는 크게 달라지는 것이 없습니다. 여러분이 엔드 투 엔드 애플리케이션 상에서 친구와 연결될 경우, 오직 여러분의 기기에서만 암호화와 해독을 진행할 수 있습니다(주요 소프트웨어 취약점을 제외한다면).

여러분이 해커이든, 서비스 제공자든, 사법 당국이든 상관 없습니다. 엔드 투 엔드 암호화를 전적으로 사용하는 서비스에서는 여러분이 중간에 가로채는 모든 메시지가 알아볼 수 없는 것처럼 보일 것입니다.



엔드 투 엔드 암호화의 장점과 단점

엔드 투 엔드 암호화의 단점

엔드 투 엔드에는 정말이지 단 하나의 단점이 존재하며, 이 단점조차도 전적으로 여러분의 관점에 달려있습니다. 누군가에게는 엔드 투 엔드 암호화가 제공하는 가치들이 문제가 될 수 있는데, 이에 상응하는 키 없이는 누구도 여러분의 메시지에 접근할 수 없기 때문입니다.

반대론자들은 범죄자들이 엔드 투 엔드 암호화를 사용할 수 있다고 주장합니다. 정부와 기술 회사들이 자신들의 메시지를 해독할 수 없다는 것을 알기 때문입니다. 이들은 법을 준수하는 개인들은 자신들의 메시지와 휴대전화 통화를 비밀스럽게 유지할 필요가 없다고 생각합니다. 이는 백도어 시스템으로 커뮤니케이션에 접근할 수 있게 하는 법안을 지지하는 많은 정치인들이 공유하는 입장입니다. 물론, 이는 엔드 투 엔드 암호화의 목적을 무마시킬 것입니다.

한 가지 알아둘 것은 엔드 투 엔드 암호화를 사용하는 애플리케이션이 100% 안전한 것은 아니라는 점입니다. 메시지가 특정 기기에서 다른 이에게 전달될 때 이는 불분명하게 되지만, 노트북이나 스마트폰과 같은 말단 지점에서는 볼 수 있게 됩니다. 이것은 엔드 투 엔드 암호화 자체의 문제점이 아니라는 점을 알아둘 필요가 있습니다.


해독 이전과 이후 메시지는 일반 문장(평문)으로 보입니다.


엔드 투 엔드 암호화는 메시지가 전송되는 동안 누구도 여러분의 데이터를 읽을 수 없게 합니다. 그러나 다른 위험들이 존재합니다.

  • 여러분의 기기가 도난당할 수 있습니다: PIN 코드를 사용하지 않거나 공격자가 이를 우회할 경우, 이들은 여러분의 메시지에 접근할 수 있습니다.
  • 여러분의 기기 정보가 유출될 수 있습니다: 기기에 맬웨어가 있어 여러분이 메시지를 전송하기 전후에 해당 메시지를 누군가 훔쳐볼 수 있습니다.

또 다른 위험은 누군가 여러분과 여러분의 친구 사이에서 중간자 공격을 감행할 수 있다는 것입니다. 이는 여러분이 키를 교환하는 커뮤니케이션이 시작될 때 발생할 수 있으며, 여러분은 상대가 여러분의 친구라는 점을 확실히 알지 못한 채 이를 진행합니다. 여러분은 자신도 모르게 공격자와 비밀을 생성할 수도 있습니다. 이후 공격자는 여러분의 메시지를 수신하고, 보유하고 있는 키로 이를 해독합니다. 이들은 동일한 방법으로 여러분의 친구를 속일 수 있으며, 이를 통해 메시지를 중계하고 메시지를 읽거나 자신들이 원하는 방식으로 이를 수정할 수도 있습니다.

이 문제를 극복하기 위하여, 많은 애플리케이션이 보안 코드 기능과 같은 기능을 포함시킵니다. 이는 안전한 채널(이상적으로는 오프라인)을 통해 여러분의 연락처와 함께 공유할 수 있는 일련의 숫자들 또는 QR 코드입니다. 숫자가 일치한다면, 제3자가 여러분의 커뮤니케이션을 염탐하고 있지 않다고 확신할 수 있습니다.


엔드 투 엔드 암호화의 장점

앞서 언급한 취약점이 존재하지 않는 상황에서 엔드 투 엔드 암호화는 논쟁의 여지 없이 기밀성과 보안을 강화하는 무척이나 값진 자원입니다. 어니언 라우팅과 같이, 이는 개인정보 보호 활동가들이 세계에 전파한 기술입니다. 엔드 투 엔드 암호화는 우리에게 익숙한 애플리케이션에도 쉽게 통합될 수 있으며, 이는 휴대전화를 사용할 수 있는 이라면 누구나 해당 기술에 접근할 수 있다는 의미입니다.

엔드 투 엔드 암호화를 범죄자나 내부 고발자에게만 유용한 메커니즘으로 보는 것은 정확하지 않습니다. 보안이 가장 철저해 보이는 기업이라도 암호화되지 않은 사용자 정보를 악의적인 주체에게 유출하며, 사이버 공격에 취약하다는 것이 입증되었습니다. 민감한 커뮤니케이션이나 신원 정보와 같은 사용자의 데이터에 접근하면, 개인은 치명적인 피해를 입을 수도 있습니다.

엔드 투 엔드 암호화에 기반하는 특정 기업의 경우, 해커들은 메시지 내용에 대한 어떠한 의미있는 정보도 추출해내지 못할 것입니다(이들이 사용한 암호화가 강력하다면). 해커들은 기껏해야 메타데이터를 얻을 수 있을 뿐입니다. 이는 여전히 개인 정보 보호 측면에서 우려되는 것이지만, 암호화된 메시지에 대한 접근을 개선하는 것입니다.


마치며

앞서 언급한 애플리케이션뿐만 아니라, 무료로 사용할 수 있는 엔드 투 엔드 암호화 도구들이 점차 많아지고 있습니다. 애플의 아이메시지와 구글의 듀오는 iOS와 안드로이드 운영 시스템에 함께 제공되며, 프라이버시와 보안을 더욱 중시하는 소프트웨어들이 계속해서 출시되고 있습니다.

엔드 투 엔드 암호화가 모든 사이버 공격을 막아낼 수 있는 것은 아니라는 점을 다시 언급하고자 합니다. 그러나 상대적으로 적은 노력만으로 여러분은 온라인상에 여러분을 노출시키는 위험을 크게 감소시킬 수 있습니다. 뿐만 아니라 토르(Tor), VPN, 암호화폐, 엔드 투 엔드 메신저는 여러분의 디지털 보안에 값진 것들이 될 수 있습니다.