HSTS(HTTP Strict-Transport Security, RFC 6797) 개념

2024. 3. 20. 00:08보안/기본 지식

[개념]

 웹 사이트가 오직 HTTPS를 통해서만 접근이 가능하다고 선언하여, 보안 연결을 전제로 하는 상호작용을 지시하고 강제하는 보안 정책 매커니즘

 

[구현 방법]

 웹 서버 응답 헤더로 Strict-Transport-Security 헤더 설정

Strict-Transport-Security: max-age=31536000; preload; includeSubDomains
//HSTS 정책을 31,536,000초(1년) 동안 하위 URL 모두 적용한다는 의미

 

위 사진과 같이 응답헤더에 포함되어있는 것을 확인 가능

 

브라우저가 HTTPS응답에서 위 헤더를 확인하게 되면 max-age에 명시된 시간만큼 '해당 도메인은 HTTPS로만 연결해야 한다'라고 기억하게 됨

 

그리고 이후 HTTP 연결이 시도된 경우에는 307 Internal Redirect 라는 특수 리다이렉션을 트리거하여 별도의 DNS 조회나 외부 연결 없이 내부적으로 HTTPS 연결을 재설정한다.

쉽게 말해서 HTTP로 요청하면 브라우저가 HTTPS로 자동으로 요청을 변환한다.

 

[장점]

1. 왕복(Round-Trip) 네트워크 비용 절감

2. 중간자 공격(MITM, SSL Stripping) 방지 가능

 

 

[참고]

https://velog.io/@sejinkim/HTTP-Strict-Transport-Security