블로그

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

카민스키 버그: DNS가 무너질 뻔한 날

2008년, 연구자 한 명이 인터넷의 어떤 도메인이든 몇 초 만에 위조하는 법을 찾아냈다. 해결책은 새 프로토콜이 아니라 25년 된 설계에 덧댄 16비트의 무작위성이었고, 우리는 아직도 거기 기대고 있다.

미라이: 카메라로 만든 봇넷

2016년, 가정용 카메라와 DVR로 만든 봇넷이 인터넷의 한 조각을 마비시켰다. 대단한 취약점을 찌른 게 아니다. 공장 초기 비밀번호로 그냥 로그인했다.

페이스북이 인터넷에서 스스로를 지운 날

2021년 10월, 페이스북은 해킹당하지도 DDoS를 맞지도 않았다. 명령어 하나를 실행했고, 자사의 안전장치가 페이스북을 인터넷 지도에서 지워버렸다 — 그리고 해결책이 있는 방에서 엔지니어들을 잠가버렸다.

XZ 백도어: 존재한 적 없는 메인테이너

최근 몇 년간 가장 정교했던 공급망 공격은 스캐너도, SBOM도, 보안팀도 잡지 못했다. SSH 로그인이 0.5초쯤 느린 게 거슬렸던 엔지니어 한 명이 잡았다.

SPF ~all vs -all: 소프트페일 전염병

아주 많은 도메인이 SPF 레코드를 ~all로 끝낸다. 실패한 메일을 받아들이라는 뜻이다. SPF 혼자서는 스푸핑을 막을 수 없게 만드는, 안전해 보이는 기본값이다.

DKIM 리플레이: 유효한 서명은 동의가 아니다

2025년 4월, no-reply@google.com에서 유효한 Google DKIM 서명과 DMARC 통과를 달고 피싱 메일이 도착했다. 아무것도 위조되지 않았다. 그게 바로 DKIM의 문제다.

NSEC3는 당신의 DNS 존을 숨겨줄 거였다. 못 숨긴다.

이름이 존재하지 않음을 증명하는 DNSSEC의 장치가, 존재하는 이름 목록을 통째로 흘린다. NSEC3는 이름을 해시해 zone walking을 막으려 했지만 — 오프라인 크래킹이 그대로 뚫었다. RFC 9276이 왜 iterations를 0으로 두라고 하는지, 그리고 실제로 통하는 게 뭔지.

BIMI: 그 브랜드 로고는 연 1,000달러의 값을 하는가

받은편지함의 로고는 매년 네 자릿수 비용이 든다 — 프로토콜이 비싸서가 아니라, 두 메일 사업자가 당신과 그림 한 장 사이에 인증기관을 세우기로 결정했기 때문이다.

Public Suffix List: 쿠키가 어디까지 갈 수 있는지 정하는 파일

레지스트리가 끝나고 누군가의 웹사이트가 시작되는 지점을 DNS는 알려 주지 않는다. 그래서 웹 전체가 손으로 관리되는 텍스트 파일 하나에 그 경계를 맡긴다 — 쿠키, 인증서, 그리고 누가 누구를 사칭할 수 있는가까지.

크롬은 이제 자기 루트 저장소를 돌린다

크롬은 오랫동안 OS가 신뢰하는 것을 그대로 신뢰했다. 2022년 9월 크롬은 그 질문을 멈추기 시작했고, 2024년 11월 윈도우가 여전히 신뢰하던 CA 하나를 잘라냈다.

이제 인증서 갱신 시점은 CA가 정한다

2020년 Let's Encrypt는 인증서 300만 장을 폐기해야 할 처지였지만, 그 서버들에 '갱신하라'고 알릴 방법이 없었다. 이제 RFC 9773이 된 ACME Renewal Information이 당신 스케줄에 CA의 다이얼을 달았다.