← 질문 목록
#344깊이 0
HSTS는 무엇을 막는가?
브라우저가 HTTP로 접속하는 순간을 노리는 다운그레이드 공격을 막는다. 정책을 기억한 브라우저는 HTTP 시도 자체를 하지 않는다.
- 주소창에 도메인만 입력한다
그다음은 저장된 정책이 없으면 HTTP로 먼저 붙을 수 있다입니다. 그다음
저장된 정책이 없으면 HTTP로 먼저 붙을 수 있다그다음은 이 사이에 공격자가 끼면 HTTPS로 못 넘어가게 잡아둘 수 있다입니다. 그다음
이 사이에 공격자가 끼면 HTTPS로 못 넘어가게 잡아둘 수 있다그다음은 서버의 HTTPS 리다이렉트가 바꿔치기당한다입니다. 그다음
서버의 HTTPS 리다이렉트가 바꿔치기당한다
서버가 리다이렉트를 보내는 것만으로 부족한 이유가 위 마지막 칸이다. 리다이렉트는 HTTP 응답이라 그 응답 자체를 공격자가 바꿀 수 있다.
정상 HTTPS 연결에서 HSTS 헤더를 받은 브라우저는 그 도메인을 max-age 동안 기억한다. 그 기간에는 HTTP 요청을 네트워크에 보내기 전에 HTTPS로 바꾼다. 공격이 낄 창문이 닫힌다.
빈틈은 첫 방문이다. 헤더를 아직 못 받았으면 보호가 없다. 지원 브라우저에 미리 실리는 preload 목록에 올리면 그 브라우저에서는 첫 방문부터 강제된다.
HSTS가 걸린 도메인에서는 인증서 경고를 무시하고 지나가는 선택지도 사라진다. 경고를 클릭으로 넘기는 습관까지 막는다.