- HTTP Strict Transport Security
- HTTPS로 접속하도록 강제
- Brower, Server 모두 HSTS를 지원해야함 (대부분 지원하고 있음)
- Browser 내부에 HSTS List로 HTTPS를 지원하는 사이트 목록을 저장하고 있음
동작
사용자가 HTTPS를 지원하는 사이트에
http:// 또는 https:// 를 제외한 도메인만 입력해 접속하거나
http:// 로 접속하면
최초 접속인 경우
- Browser가 HTTP로 접속 시도
- HTTPS만 지원하는 사이트라면 301 Redirect 또는 302 Redirect를 응답
- Browser는 HTTPS로 다시 접속
이미 접속한 적 있는 경우 (HSTS List에 추가되어 있는 경우)
- Browser가 HSTS List에 도메인이 있는 것을 확인하고, HTTPS로 접속
접속 후
- Server는 응답 메시지에 HSTS Policy를 같이 보냄
Strict-Transport-Security: max-age=0; includeSubDomains; preload
- max-age : HSTS List 존속 기간, 0 이면 삭제 명령
- includeSubDomains : 서브 도메인도 HSTS를 적용
- preload : preloaded HSTS List에 추가
- Browser는 이 정보를 기반으로 HSTS List를 구성
Preloaded
- HSTS List를 직접 저장하게 할 수 있음
- HSTS List를 미리 구성함
- Browser 설치, 업데이트시에 Vendor사가 제공
hstspreload.org 사이트에 등록 신청을 하면, 특정 조건을 만족하는 경우 미리 구성하는 HSTS List에 포함됨
- 사용자가 직접 추가할 수도 있음