블로그

프로토콜, 보안, 그리고 인터넷이 실제로 작동하는 방식에 대하여.

당신의 TLS 인증서는 이미 짧아졌다

다들 2029년에 올 47일 인증서에 패닉했지만, 첫 번째 단축은 이미 일어났다. 200일, 2026년 3월부터 의무다. 진짜 핵심은 유효기간이 아니라 10일까지 줄어드는 재검증 주기다.

더 읽기

HSTS 프리로드: 당신의 보안을 브라우저 벤더에게 넘기는 일

HSTS 프리로드 목록에 도메인을 올리는 건 일방통행 문이다. 목록은 당신 서버가 아니라 브라우저 바이너리 안에 있어서, 되돌리려면 당신이 통제하지 못하는 크롬 릴리스를 몇 달이고 기다려야 한다 — 프리로드하라고 권하는 사람들이 말 안 하는 부분이다.

더 읽기

DANE: 웹에서 실패하고 이메일에서 이긴 프로토콜

다들 DANE은 죽었다고 한다 — DNSSEC 뒤에 발이 묶여 아무도 안 쓴 아름다운 프로토콜. 그 판정은 미국식이다. 네덜란드에선 의무고, 2026년 마이크로소프트가 탑재했고, 웹에선 정말로 죽었다. 같은 프로토콜, 세 갈래 운명.

더 읽기

MTA-STS: 아무도 모르는 이메일 보안 프로토콜

SMTP 암호화에는 트럭이 지나갈 만한 구멍이 있다: 경로상의 공격자가 STARTTLS를 벗겨내고 메일을 평문으로 읽을 수 있다. MTA-STS가 그걸 막는다. 그러려면 웹 페이지를 하나 띄워야 하고, 그래서 거의 아무도 안 했다.

더 읽기

SMTP relay는 2026년에 실제로 어떻게 작동하는가

1982년엔 모든 메일 서버가 아무한테나 relay해줬다 — 그게 설계였다. 지금은 모르는 사람한테 relay해주면 점심도 되기 전에 블록리스트에 오른다. 'relay'라는 단어는 살아남았고, 그 아래 모든 게 뒤집혔다.

더 읽기

와일드카드 인증서는 보안 안티패턴이다

모든 서버에 같은 개인키 하나, 그게 앞으로 만들 모든 서브도메인을 덮는다. 와일드카드 인증서는 작은 편의를 보이지 않는 폭발 반경과 맞바꾼다 — 그리고 표준화 단체도 마침내 같은 결론에 도달했다.

더 읽기

네거티브 캐싱: DNS는 '없음'도 기억한다

레코드를 추가했는데 세상은 여전히 '존재하지 않는다'고 답한다. 레코드는 멀쩡하다. DNS가 그 부재를 캐싱했을 뿐이다 — 당신이 설정한 적 없는 TTL, 아무도 건드리지 않는 SOA 필드가 지배하는 수명으로.

더 읽기

DNS 리바인딩은 브라우저를 내부자로 만든다

당신이 연 웹 페이지가 당신의 브라우저를 통해 집 안의 공유기, 프린터, 스마트 스피커에 닿을 수 있다. DNS 리바인딩은 20년 넘게 통해 왔고, 아직도 통하는 이유는 우리가 로컬 네트워크를 어떻게 지어 왔는지에 관한 불편한 사실을 말해 준다.

더 읽기

Anycast: 하나의 IP, 여러 대의 서버

같은 IP가 서울에 있는 당신과 상파울루에 있는 다른 사람에게, 서로 다른 두 대의 기계에서 응답한다. 둘 다 눈치채지 못한다. 그게 anycast다 — 인터넷 전체가 믿어주기로 합의한 BGP를 향한 거짓말이자, 수백 곳에서 동시에 TCP를 조용히 작동시킨 트릭.

더 읽기

이메일 포워딩은 왜 모든 걸 망가뜨리는가

SPF는 첫 relay에서 죽는다. DKIM은 메일링 리스트가 본문을 건드리는 순간 깨진다. 그리고 DMARC가 40년 된 골칫거리를 반송 메일로 바꿔놓는다. 이메일에서 가장 확실하게 고장 나는 기능 이야기.

더 읽기

DNS TTL: 약속한 값 vs 리졸버가 실제로 하는 일

TTL을 300으로 잡고 5분이면 바뀌겠지 했는데, 한 시간이 지나도 트래픽이 옛 IP로 들어온다. TTL은 일정표가 아니다. 캐시들의 사슬에 건네는 힌트일 뿐이고, 그 캐시들은 저마다 당신을 무시할 권리를 갖고 있다.

더 읽기

DKIM Alignment: 다들 헷갈리는 바로 그 부분

DKIM 서명이 유효하다고 DMARC를 통과하는 게 아니다. 서명은 '어떤 도메인이 서명했다'만 증명한다. 그 도메인이 당신의 From 주소를 대변할 자격이 있는지는 alignment가 결정한다.

더 읽기

호모그래프 공격: 도메인 이름이 거짓말을 할 때

2017년, 한 연구자가 Chrome·Firefox·Opera 주소창에 apple.com으로 표시되는 도메인을 등록했다. 유효한 HTTPS 인증서까지 달려 있었다. 모든 글자가 키릴 문자였다. 이 문제가 고치기 어려운 이유는 버그 자체보다 더 오래되고 기묘하다.

더 읽기

우리는 UDP 위에 TCP를 다시 만들고 QUIC라고 불렀다

QUIC는 신뢰성이 있고, 순서를 보장하고, 혼잡 제어를 하고, 전부 암호화한다 — UDP가 한사코 하지 않으려는 모든 것이다. 그런데 왜 하필 UDP 위에 만들었을까? UDP가 인터넷 배관에 남은 유일한 '새 프로토콜 모양의 구멍'이었기 때문이다.

더 읽기

루트 서버가 13개라는 착각

다들 DNS 루트 서버가 13개라고 말한다. 실제로는 1,900개가 넘는다. 13이라는 숫자는 이제 아무도 신경 쓰지 않는 패킷 크기 제한 때문에 인터넷에 얼어붙어 있다 — 그리고 그 모순이 풀린 방식이야말로 지금껏 나온 인프라 꼼수 중 손꼽히게 좋은 것이다.

더 읽기

서버는 당신이 봇이라는 걸 어떻게 아는가

User-Agent 문자열에는 아무 브라우저나 적어 넣을 수 있다. 그래서 아무도 그 필드를 믿지 않는다 — 그 아래에 깔린 TLS 핸드셰이크와 HTTP/2 설정은 당신이 아니라 당신이 쓴 라이브러리가 적은 것이기 때문이다.

더 읽기

CDN은 단일 장애점이다

CDN 집중화로 하나의 장애가 수천 개 사이트를 동시에 내린다. 분산 복원력을 중앙화된 편의로 교환했다.

더 읽기

CDN 캐시 포이즈닝의 작동 원리

CDN 캐시 포이즈닝은 CDN을 속여서 악성 응답을 캐시하게 하고 모든 후속 방문자에게 서빙하게 한다. 이상한 요청 하나, 대량의 부수 피해.

더 읽기

컴플라이언스는 보안이 아니다

SOC 2, ISO 27001, PCI DSS — 조직은 컴플라이언스를 보안의 증거로 취급한다. 아니다. 컴플라이언스는 바닥이다. 보안은 방어의 실제 상태다.

더 읽기

MCP: 보안 도구에 어떤 의미인가

Model Context Protocol은 AI 에이전트에게 보안 도구를 호출하는 표준 방법을 준다. 정찰 워크플로우가 바뀐다. 판단 부분은 안 바뀐다.

더 읽기

보안 점수는 의미 없다

보안 점수 시스템을 만드는 사람이 말한다. 점수는 실제 보안을 측정하지 않는다. 그런데도 계속 만드는 이유.

더 읽기

TLS 핸드셰이크 7단계

모든 HTTPS 연결은 대부분의 개발자가 생각조차 안 하는 협상으로 시작된다. TLS 1.3에서 정확히 무슨 일이 일어나는지, 단계별로.

더 읽기

"제로 트러스트"는 마케팅 용어다

제로 트러스트는 정당한 보안 아키텍처 원칙으로 시작했다. 모든 벤더가 '우리 제품을 사세요'라는 뜻으로 전용했다. 원래 아이디어가 더 나은 대우를 받을 자격이 있다.

더 읽기