블로그

프로토콜, 보안 사건, 그리고 인터넷이 실제로 작동하는 방식. 147편.

Let's Encrypt가 OCSP를 껐다. 아무도 몰랐다.

2025년 8월, 인터넷 최대 CA가 OCSP 응답 서버를 내렸다. 그런데 거의 아무것도 깨지지 않았다 — 온라인 인증서 폐기 확인은 이미 허울뿐이었으니까.

SMTP 스머글링: SPF와 DMARC를 통과한 위조 메일

2023년 12월, 한 연구자가 microsoft.com 같은 도메인을 사칭한 위조 메일을 보냈고 그 메일은 SPF와 DMARC를 통과했다. 인증을 깬 게 아니다. 수신 서버가 한 통의 메일을 두 통으로 읽게 만들었다.

Encrypted Client Hello는 생각보다 덜 감춘다

ECH는 HTTPS가 늘 흘리던 단 하나의 필드 — 사이트 이름 — 를 드디어 암호화한다. 하지만 당신 IP, DNS 조회, 그리고 숨는 군중의 크기가 그게 의미 있는지를 결정한다.

HTTP/2 서버 푸시는 죽었다. Early Hints는 덜 함으로써 이겼다

서버 푸시는 HTTP/2의 간판 기능이었다. 브라우저가 묻기 전에 파일을 보낸다. Chrome은 2022년 이걸 뜯어냈다 — 사용률 0.7%, 게다가 자주 더 느려서. 그 자리를 대신한 것은 정반대로 동작했고, 그래서 이겼다.

HTTP/2 Rapid Reset: 기능 하나가 DDoS 기록을 깼다

2023년 8월, Google·Cloudflare·AWS가 모두 DDoS 기록을 경신했고, Cloudflare가 받은 공격은 고작 2만 대 남짓한 봇넷에서 나왔다. 무기는 대역폭이 아니었다. 설계대로 정확히 동작하는 HTTP/2 기능이었다.

Happy Eyeballs: 망가진 IPv6를 숨기는 알고리즘

듀얼스택 클라이언트는 IPv4와 IPv6를 경주시켜 먼저 답하는 쪽을 쓴다. RFC 8305는 연결을 순식간처럼 만들었고 — 동시에 망가진 IPv6를 그걸 운영하는 사람들 눈에서 지워버렸다.

Chrome은 DNS를 암호화했다. 검증한 적은 없다.

Chrome에서 보안 DNS를 켜면 리졸버로 가는 파이프가 암호화된다. 돌아온 답이 진짜라는 증명은 전혀 하지 않는다. 암호화와 인증은 다른 문제이고, 브라우저는 조용히 하나만 골랐다.

"그냥 DMARC 추가하세요"는 최악의 조언이다

DMARC 레코드를 올리는 건 쉬운 5%다. 스푸핑을 실제로 막는 나머지 — alignment, 리포트 읽기, 집행까지의 느린 걸음 — 를 조언은 통째로 건너뛴다.

GREASE: 일부러 아무 의미도 없게 만든 TLS 값들

당신 브라우저는 암호가 아닌 암호와 아무 일도 안 하는 확장을 서버에 하루 수십억 번 제안한다. 이름은 GREASE, TLS가 계속 변할 수 있게 지켜주는 유일한 장치다.

TLS 설정을 DNS로 옮겼다. 그런데 DNS는 서명이 안 돼 있다

HTTPS DNS 레코드는 핸드셰이크가 시작되기도 전에 브라우저에 연결 파라미터를 넘긴다 — 어떤 프로토콜, 어떤 IP, 심지어 ClientHello를 암호화할 키까지. 대부분의 도메인에서, 그건 아무도 서명하지 않은 계층으로 도착한다.