블로그

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

SHA-1은 산산조각 났다

2017년 구글과 CWI는 SHA-1 해시가 같은, 내용이 다른 두 PDF를 공개했다. 흥미로운 건 그걸 해냈다는 사실이 아니다 — 다들 12년 전부터 이걸 예견했는데도 업계는 여전히 '증거'가 나올 때까지 기다렸다는 것이다.

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

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

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

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

Certificate Transparency는 이제 정적 파일로 돌아간다

10년간 모든 TLS 인증서는, 각 항목을 24시간 안에 병합하고 쉬지 않고 질의에 답해야 하는 살아있는 append-only 암호 데이터베이스에 게시됐다. 2026년 초까지 Let's Encrypt는 자기 로그를 버킷 속 정적 파일 폴더로 갈아 끼웠다. 더 나은 설계다.

인증 기관은 어떻게 죽는가

CA는 대개 해킹으로 죽지 않는다. Entrust는 현대적인 방식으로 죽었다 — 서류 작업으로. 늦은 폐기, 놓친 마감, 그리고 마침내 약속을 믿길 멈춘 브라우저 루트 프로그램.

HPKP: 너무 위험해서 폐기된 보안 헤더

HTTP Public Key Pinning은 헤더 하나로 사이트의 TLS 키를 고정하게 해줬다. 동시에 내 도메인을 영구히 벽돌로 만들거나, 공격자가 인질로 잡게도 했다. 브라우저가 죽였다.

당신의 시계는 보안 의존성이다

인증서 유효기간, HSTS, DNSSEC 서명, TOTP 코드 — 당신 보안의 놀랄 만큼 많은 부분이 사실은 '지금 몇 시인가'에 대한 주장이다. 그리고 지금 몇 시인지 정하는 프로토콜은 40년간 먼저 답한 놈을 믿어왔다.

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

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

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

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

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

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