옛날 나쁜 시절에는 아무 사이트에서 HTTPS를 보면 뭔가 의미가 있었다.
신비로운 의미가 아니다. “이 사이트가 정직하다”거나 “뒤에 있는 사람들이 착하다”가 아니다. 누군가 돈을 쓰고, 서류를 작성하고, 인증 기관이랑 씨름하고, 웹서버 안 깨뜨리고 설치하고, 만료 전에 갱신했다는 뜻이었다. 그 정도 마찰이면 HTTPS가 진지함의 대략적 지표가 됐다.
피싱 사이트는 귀찮아서 안 했다. 경제성이 안 맞았다. 3일 쓸 가짜 PayPal 페이지에 150달러를 왜 써?
그리고 Let’s Encrypt가 나타나서 그 사회적 신호를 전부 날려버렸다.
잘한 거다. 근데 완전히 잘한 것만은 아니다.
Let’s Encrypt가 한 일
Let’s Encrypt는 2015년 12월에 급진적인 제안을 들고 나왔다. TLS 인증서는 무료여야 하고, 자동이어야 하고, 오픈이어야 한다. 결제 없음. 수동 갱신 없음. 명령어 실행하고, 도메인 소유 증명하고, 인증서 받기. ACME가 인증서 관리를 의식에서 소프트웨어로 바꿨다. 90일 수명이 처음에는 공격적으로 들렸지만, 운영자를 캘린더 알림과 두려움 대신 자동화로 밀어넣었다.
채택 곡선이 이야기를 해준다. 2015년에 웹 페이지 로드의 약 40%가 HTTPS였다. 지금은 95% 이상이다. Let’s Encrypt만으로 7억 개 넘는 웹사이트를 서빙한다. 볼륨 기준 세계 최대 인증 기관이다.
인터넷 역사상 가장 중요한 인프라 프로젝트 중 하나다. 과장 아니다. 장벽을 제거해서 문제를 풀었다 — 비용, 복잡성, 관성.
혜택은 추상적이지 않다. 기본 HTTPS가 일상적 네트워크 장난을 많이 차단했다. ISP가 더 이상 HTTP 페이지에 광고를 주입할 수 없다. 공용 WiFi가 덜 약탈적이 됐다. 수동 감시가 쉬운 승리를 잃었다. 세션 쿠키가 사이트 구석에서 평문으로 날아다니는 일이 멈췄다. “이 페이지를 암호화해야 하나?”가 의미 있는 질문이기를 그만뒀다.
피싱도 HTTPS를 얻었다
인증서가 무료이고 자동이 되는 순간 경제학이 뒤집혔다.
그 가짜 PayPal 페이지? 이제 HTTPS가 있다. 유효한 인증서. 자물쇠 아이콘. 설정하는 데 30초. 2019년에 이미 피싱 사이트의 80% 이상이 HTTPS를 썼다. 지금은 사실상 전부. 피싱 키트에 기본 포함이다.
연결은 완벽하게 안전하다. 다른 반구에 있는 범죄자가 운영하는 서버에 당신의 신용카드 번호를 평문 파일로 저장하는 곳으로 안전하게 연결해줄 뿐이다.
엄밀히 말하면 Let’s Encrypt 잘못은 아니다. Domain Validation 인증서는 도메인을 통제한다는 것만 증명한다 — 합법적 사업체라는 건 아니다. DV 인증서는 신뢰를 신호하도록 설계된 적이 없다. 암호화를 신호한다. 하지만 20년 동안 사용자들은 이렇게 훈련받았다. “자물쇠를 확인하세요. 자물쇠는 안전하다는 뜻입니다.” 모든 은행, 모든 보안 가이드, 모든 브라우저 툴팁이 이걸 강화했다.
자물쇠는 “안전”을 의미한 적이 없다. “전송 중 암호화됨”을 의미했다. 합법적 사이트만 HTTPS를 가졌을 때는 자물쇠가 기술적으로 엉뚱한 걸 측정하면서도 유용한 휴리스틱이었다. 모든 사이트가 HTTPS를 가지면 휴리스틱이 무너진다. 신호 대 잡음 비율이 0이 됐다.
Chrome이 결국 속마음을 말했다. 2023년에 거의 모든 피싱 사이트가 HTTPS를 사용하며 연구 참여자의 11%만이 자물쇠 아이콘의 정확한 의미를 이해했다고 밝혔다. 그리고 Chrome은 자물쇠를 중립 아이콘으로 교체하고 iOS에서는 완전히 제거했다. 화장 고침이 아니었다. 고백이었다.
Extended Validation은 실패했다
업계의 답은 EV(Extended Validation) 인증서였다. 더 비싸고, 엄격한 신원 확인을 거치고, 브라우저에 회사 이름이 초록색 바로 나온다. DV 위의 등급을 만들겠다 — “이 인증서는 조직이 실재함을 증명한다.”
안 먹혔다. 사용자가 초록색 바를 눈치채지 못했다. 연구에서 EV와 DV를 구별 못 한다는 결과가 나왔다. 모바일 브라우저는 회사 이름 표시할 화면 공간이 없었다. Chrome이 2019년에 EV 표시를 제거했다. Firefox가 따랐다.
이제 DV 한 등급이다. 피싱 사이트와 은행이 동일한 브라우저 대우를 받는다. 웹의 시각적 신뢰 레이어가 평평하다.
짧은 게 낫다
이 부분에서 Let’s Encrypt가 업계보다 먼저 맞았다. 짧은 수명의 인증서는 키 침해의 피해 범위를 제한하고, 폐기를 덜 중요하게 만들고, 자동화를 강제한다. 90일 수명이 처음엔 부담으로 여겨졌지만, 수동 갱신에서 자동화 파이프라인으로 조직을 밀어넣었다.
Google이 이제 더 짧은 수명을 추진하고 있다. CA/Browser Forum이 생태계를 그 방향으로 끌고 있다. Let’s Encrypt는 90일에서 64일, 45일로 줄이겠다고 발표했다.
갱신 프로세스가 사람에게 의존하면 짧은 수명이 적대적으로 느껴진다. 완전 자동화되어 있으면 정직하게 느껴진다. 인증서는 원래 벽에 1년간 걸어두는 장식물이 아니었다.
신뢰의 공백
신호를 잃었는데 대체하지 못했다. 전: HTTPS는 누군가 인증서 설정할 정도로 신경 썼다는 뜻이었다. 후: HTTPS는 서버가 존재한다는 뜻이다. 그 옛 신호가 좋지는 않았다 — 희소성이 보증인 척하는 거였다 — 하지만 뭐라도 있었다. 지금은 아무것도 없다.
대체가 필요 없다는 사람도 있다. 웹은 모든 사이트를 기본 비신뢰로 취급하고 Safe Browsing 리스트, 피싱 탐지, 평판 시스템으로 보호하면 된다고. 어쩌면. 하지만 그건 보이지 않는다. 위협을 잡으면 작동한다. 놓치면 사용자에게 대안 신호가 없다.
명확히 하고 싶다. 답이 비싼 인증서와 더 작은 HTTPS 웹으로 돌아가는 건 아니다. 희소성은 끔찍한 보안 아키텍처다. 잃은 것은 진짜 신뢰가 아니었다. 사람들이 이해 대신 쓰던 편리한 지름길이었다.
Let’s Encrypt는 인터넷에 절실히 필요한 암호화를 줬다. 보안 신호가 마찰에 의존하면 자동화가 그걸 죽인다. 잘 가라. 가져간 것 — 결함 있지만 기능하던 신뢰 휴리스틱 — 은 아직 대체되지 않았다. 비판이 아니다. 열린 문제다.