Cloudflare, 앱 서버의 사용자 IP 숨기는 OHTTP 게이트웨이 출시
원제 Cloudflare OHTTP gateway
100 포인트댓글 25

Key Point
앱 서버의 사용자 IP 숨김이 표준화되면서 개인정보 보호 기반 앱 개발이 접근성 있는 옵션이 되기 때문이다. 기존엔 직접 Gateway를 구축해야 하는 부담이 컸다.
핵심 요약
- Cloudflare가 OHTTP(Oblivious HTTP) 게이트웨이 서비스를 베타 출시했다. OHTTP는 앱 서버가 사용자 IP 주소나 TLS 지문을 보지 않고도 HTTP 요청을 받을 수 있게 하는 IETF 표준이다.
- OHTTP는 중계(Relay)와 게이트웨이(Gateway) 두 개의 독립적으로 운영되는 홉을 거친다. 중계는 암호화된 요청을 맹목적으로 전달해 클라이언트 식별 정보를 숨기고, 게이트웨이는 요청을 복호화하고 응답을 암호화하는 암호화 작업을 수행한다.
- 신뢰 분리가 핵심이다. 어떤 한 주체도 클라이언트 식별 정보와 요청 내용을 모두 볼 수 없게 구조화되어 있다.
- Cloudflare는 2022년에 Privacy Gateway(현재 OHTTP Relay로 이름 변경)를 출시했다. 새로운 OHTTP Gateway는 기존 Relay와 쌍을 이루며, 고객이 두 가지 구성 옵션을 선택할 수 있게 한다.
- OHTTP Gateway를 자체 운영하기는 어려웠다. 추가 홉으로 인한 지연, 요청 복호화 및 응답 암호화 비용이 성능에 영향을 미쳤다.
- Cloudflare는 이미 1.1.1.1 DNS와 iCloud Private Relay를 운영하고 있어, 글로벌 엣지 네트워크의 모든 서버에서 OHTTP Gateway를 실행할 수 있다. 이로써 중계-게이트웨이 홉의 지연을 최소화할 수 있다.
- Gateway는 '/.well-known/ohttp-gateway' 엔드포인트로 설정되며, 고객은 몇 번의 클릭으로 활성화할 수 있다. 표준 및 청크 OHTTP를 모두 지원하며, 청크 OHTTP는 점진적 처리로 더 나은 성능을 제공한다.
- Gateway는 요청을 복호화하고 앱 서버에 서브요청을 발행한 후 암호화된 응답을 클라이언트에 반환한다. OHTTP가 아닌 일반 HTTP 요청은 Gateway를 거치지 않는다.
- Gateway가 존에 바인딩되어 있어 자동으로 악용으로부터 보호된다. 예를 들어 example.com의 클라이언트는 foo.example.com이나 bar.example.com으로는 보낼 수 있지만 wikipedia.com으로는 보낼 수 없다.
- Cloudflare Access(영점 신뢰 네트워크 접근 제품)가 복호화 전에 실행되어 상호 TLS, 정적 서비스 자격, 사용자 정의 외부 로직으로 중계를 인증할 수 있다.
- Gateway는 Cloudflare의 Relay와 Gateway가 모두 Cloudflare 위에서 실행되는 것을 방지한다. Cloudflare Workers나 Cloudflare에서 프록시되는 호스트에서 온 요청은 복호화를 거부한다.
- 앱 서버가 Cloudflare CDN이나 Workers 위에 있거나 제3자 클라이언트(예: Apple LiveCallerID)로부터 OHTTP 요청을 받는 경우 Gateway가 더 적합하다.
- 시작하려면 OHTTP 클라이언트를 구현하고, Cloudflare 외부 인프라에서 실행할 수 있는 중계를 구성해야 한다. OHTTP는 네트워크 수준 개인정보 보호만 제공하며 요청 본문은 건드리지 않으므로, 이메일이나 사용자명 같은 식별 정보를 요청 본문에 담지 않아야 한다.