구독해서 새 게시물에 대한 알림을 받으세요.

Encrypted Client Hello - 개인정보 보호를 위한 마지막 퍼즐 조각

2023-09-29

4분 읽기
이 게시물은 English, 繁體中文, 日本語简体中文로도 이용할 수 있습니다.

오늘 인터넷상의 모든 사용자의 개인정보 보호를 개선하는 데 기여하는 새로운 표준을 발표하게 되어 기쁘게 생각합니다. 사용자가 방문하는 웹 사이트를 네트워크에서 스누핑하지 못하도록 하는 새롭게 제안된 표준인 Encrypted Client Hello를 이제 모든 Cloudflare 요금제에서 사용할 수 있습니다.

Encrypted Client Hello - the last puzzle piece to privacy

Encrypted Client Hello(ECH)는 ESNI의 후속 기능으로, TLS 핸드셰이크를 협상하는 데 사용되는 서버 이름 표시(SNI)를 마스킹합니다. 이는 사용자가 ECH가 활성화된 Cloudflare의 웹 사이트를 방문할 때마다 사용자, Cloudflare, 웹 사이트 소유자를 제외한 누구도 어떤 웹 사이트를 방문했는지 확인할 수 없음을 의미합니다. Cloudflare에서는 모든 사람의 개인정보 보호를 적극 지지하며, 이 기술을 실현할 가능성에 대해 기대가 큽니다.

인터넷 검색과 개인정보 보호

웹 사이트를 방문할 때마다 브라우저는 웹 서버에 요청을 보냅니다. 웹 서버가 콘텐츠로 응답하고 브라우저에서 웹 사이트가 로드되기 시작합니다. 인터넷 초창기에는 이러한 일이 '일반 텍스트'로 이루어졌습니다. 이는 브라우저가 검색 중인 회사 네트워크, 인터넷 연결을 제공하는 인터넷 서비스 공급자, 웹 사이트를 호스팅하는 웹 서버에 도달하기 전에 요청이 경유하는 모든 네트워크 등의 네트워크를 통해 모든 사람이 읽을 수 있는 비트만 보냈다는 의미입니다. 개인정보 보호 옹호자들은 "일반 텍스트" 에서 얼마나 많은 정보를 볼 수 있는지에 대해 오랫동안 우려해 왔습니다. 사용자와 웹 서버 사이의 네트워크에서 사용자의 트래픽을 볼 수 있다면 사용자가 무엇을 하고 있는지 정확히 볼 수 있다는 뜻입니다. 은행 송금을 시작하면 모든 중개자가 송금 대상과 송금액을 확인할 수 있습니다.

그렇다면 이 데이터를 더 안전하게 보호하려면 어떻게 해야 할까요? 도청을 방지하기 위해 SSL과 그 이후 TLS의 형태로 암호화가 도입되었습니다. 이는 사용자의 개인정보를 보호할 뿐만 아니라 중개자가 사용자가 보거나 업로드한 콘텐츠를 조작할 수 없도록 하는 놀라운 프로토콜입니다. 하지만 암호화는 여기까지만 가능합니다.

실제 콘텐츠(사용자가 방문하는 웹 사이트의 특정 페이지와 사용자가 업로드하는 모든 정보)는 암호화되어 중개자로부터 보호되지만, 사용자가 무엇을 하고 있는지 확인할 수 있는 방법은 여전히 존재합니다. 예를 들어, 방문 중인 웹 사이트의 주소(IP)를 확인하기 위한 DNS 요청과 SNI는 모두 중개자가 사용량을 추적하는 일반적인 방법입니다.

DNS부터 시작해 보겠습니다. 웹 사이트를 방문할 때마다 운영 체제는 어느 IP 주소에 연결해야 할지를 알아야 합니다. 이는 DNS 요청을 통해 이루어집니다. DNS는 기본적으로 암호화되지 않으므로 누구나 사용자가 어떤 웹 사이트에 대해 요청하는지 알 수 있습니다. 사용자가 이러한 요청을 중개자로부터 보호할 수 있도록 Cloudflare에서는 2019년에 DNS over HTTPS(DoH)를 도입했습니다. 2020년에는 한 걸음 더 나아가 사용자가 어떤 웹 사이트에 대해 요청하는지 Cloudflare에서도 볼 수 없도록 하는 Oblivious DNS over TTPS를 도입했습니다.

따라서 SNI는 사용자가 방문하는 웹 사이트를 중개자가 확인하는 데 사용할 수 있는 마지막 암호화되지 않은 비트가 됩니다. DNS 쿼리를 수행한 후 브라우저가 가장 먼저 하는 일 중 하나는 TLS 핸드셰이크를 수행하는 것입니다. 핸드셰이크는 사용할 암호, TLS 버전, 웹 서버의 신원을 확인하는 데 사용할 인증서 등 여러 단계로 구성됩니다. 이 핸드셰이크의 일부로 브라우저는 방문하려는 서버(웹 사이트)의 이름인 서버 이름을 표시합니다.

세션이 아직 암호화되지 않았고 서버가 어떤 인증서를 사용할지 모르므로 브라우저는 이 정보를 일반 텍스트로 전송해야 합니다. SNI를 일반 텍스트로 전송하면 모든 중개자가 첫 번째 패킷의 연결 여부를 확인하여 사용자가 방문하는 웹 사이트를 확인할 수 있습니다.

이는 TLS와 DoH의 놀라운 노력에도 불구하고 사용자가 인터넷에서 어떤 방문하는 웹 사이트를 방문하는지는 여전히 진정한 의미에서의 프라이버시가 보장되지 않음을 의미합니다. 오늘 저희는 ECH로 퍼즐의 마지막 빠진 조각을 추가합니다. ECH를 사용하면 브라우저는 고객별 호스트 이름이 아니라 Cloudflare와 TLS 핸드셰이크를 수행합니다. 이는 사용자가 Cloudflare의 웹 사이트를 방문하고 있다는 것을 중개자가 알 수는 있지만, 어떤 웹 사이트인지 확인할 수는 없음을 의미합니다.

ECH는 어떻게 작동할까요?

ECH의 작동 방식을 설명하는 데는 먼저 TLS 핸드셰이크가 어떻게 수행되는지 이해하는 것이 도움이 됩니다. TLS 핸드셰이크는 클라이언트가 사용할 암호, TLS 버전, 그리고 가장 중요하지만, 방문하려는 서버(SNI)를 알릴 수 있는 ClientHello 부분으로 시작됩니다.

ECH를 사용하면 ClientHello 메시지 부분이 내부 메시지와 외부 메시지 두 개로 나뉩니다. 외부 메시지 부분에는 사용할 암호 및 TLS 버전과 같은 중요하지 않은 정보가 포함되어 있습니다. 또한 "외부 SNI"도 포함되어 있습니다. 내부 메시지 부분은 암호화되어 있으며 "내부 SNI"가 포함되어 있습니다.

외부 SNI는 일반적인 이름이며, 저희 경우에는 사용자가 Cloudflare에서 암호화된 웹 사이트를 방문하려고 한다는 것을 나타냅니다. 저희는 모든 웹 사이트가 Cloudflare에서 공유할 SNI로 cloudflare-ech.com을 선택했습니다. Cloudflare에서 해당 도메인을 제어하므로 저희는 해당 서버 이름에 대한 TLS 핸드셰이크를 협상할 수 있는 적절한 인증서를 보유하고 있습니다.

내부 SNI에는 사용자가 방문하려는 실제 서버 이름이 포함되어 있습니다. 이 정보는 공개 키를 사용하여 암호화되며 Cloudflare에서만 읽을 수 있습니다. 핸드셰이크가 완료되면 웹 페이지가 TLS를 통해 로드되는 다른 웹 사이트와 마찬가지로 정상적으로 로드됩니다.

실제로, 이는 사용자가 방문하는 웹 사이트를 확인하려는 모든 중개자가 한 가지 주의 사항을 제외하고는 일반적인 TLS 핸드셰이크를 보게 됨을 의미합니다. 그 주의 사항은 Cloudflare에서 ECH를 사용하는 웹 사이트를 방문할 때마다 서버 이름이 동일하게 보인다는 것입니다. 모든 TLS 핸드셰이크는 실제 웹 사이트가 아니라 Cloudflare-ech.com에 대한 웹 사이트를 로드하려고 시도하는 것처럼 보인다는 점에서 동일한 것으로 보입니다. Cloudflare에서는 중개자가 자신이 방문하는 웹 사이트를 보는 것을 싫어하는 사용자를 위해 개인정보 보호의 마지막 퍼즐 조각을 해결했습니다.

ECH 기술의 핵심에 대한 자세한 내용은 소개 블로그를 참조하세요.

개인정보 보호의 미래

이것이 인터넷상의 개인정보 보호에 어떤 의미가 있을지 기대가 됩니다. Google ChromeFirefox같은 브라우저는 이미 ECH에 대한 지원을 늘리기 시작했습니다. 웹 사이트 운영자로서 중개자가 사용자의 활동을 볼 수 없는 방식으로 사용자가 웹 사이트를 방문하기를 원한다면, 지금 바로 Cloudflare에서 ECH를 사용 설정하세요. 이미 모든 무료 영역에서 ECH를 사용하도록 설정했습니다. 기존 유료 고객인 경우, Cloudflare 대시보드로 이동하여 기능을 신청하세요. 앞으로 몇 주 동안 가입하는 모든 고객에게 이 기능을 사용할 수 있도록 할 예정입니다.

시간이 지남에 따라 다른 업체에서도 우리의 발자취를 따르면서 모든 사람을 위한 보다 개인화된 인터넷으로 이어지기를 바랍니다. ECH를 제공하는 공급자가 많아질수록 인터넷에서 사용자의 활동을 엿보는 것은 더욱 어려워집니다. 심지어 프라이버시 문제를 영원히 해결할 수도 있습니다.

ECH에 대한 자세한 내용, 작동 방식, 활성화 방법을 알아보려면 ECH에 대한 개발자 문서를 참조하세요.

Cloudflare에서는 전체 기업 네트워크를 보호하고, 고객이 인터넷 규모의 애플리케이션을 효과적으로 구축하도록 지원하며, 웹 사이트와 인터넷 애플리케이션을 가속화하고, DDoS 공격을 막으며, 해커를 막고, Zero Trust로 향하는 고객의 여정을 지원합니다.

어떤 장치로든 1.1.1.1에 방문해 인터넷을 더 빠르고 안전하게 만들어 주는 Cloudflare의 무료 앱을 사용해 보세요.

더 나은 인터넷을 만들기 위한 Cloudflare의 사명을 자세히 알아보려면 여기에서 시작하세요. 새로운 커리어 경로를 찾고 있다면 채용 공고를 확인해 보세요.
Birthday Week (KO)제품 뉴스Encrypted SNI (KO)Research

X에서 팔로우하기

Cloudflare|@cloudflare

관련 게시물

2024년 10월 24일 오후 1:00

Durable Objects aren't just durable, they're fast: a 10x speedup for Cloudflare Queues

Learn how we built Cloudflare Queues using our own Developer Platform and how it evolved to a geographically-distributed, horizontally-scalable architecture built on Durable Objects. Our new architecture supports over 10x more throughput and over 3x lower latency compared to the previous version....