HSTS 기능

J·2025년 11월 3일
1

웹 공부

목록 보기
20/20
post-thumbnail

최근에 회사에서 보안 취약점 관련 점검하다가 HSTS 기능에 대해서 처음 알게 되었다.

HSTS(HTTP Strict Transport Security)란?

웹사이트가 HTTPS로만 접속되도록 브라우저에게 강제하는 보안 정책이다. 서버가 HSTS 헤더를 설정해두면 클라이언트가 웹 서버에 요청을 보냈을때, 헤더에 HSTS 사용 헤더를 포함해서 응답을 하면 HSTS를 지원하는 브라우저가 이를 해석하고 적용하는 방식이다.

HSTS가 설정된 웹 서버의 response header에는 strict-transport-security header가 설정되어 있다. 그리고 사용자가 http로 접근해도 자동으로 https로 리다이렉트 된다.

HTTP vs HTTPS

HTTP는 데이터를 암호화 하지 않고 데이터를 보내는 프로토콜이고, HTTPS는 HTTP에 보안 기능이 더해진 프로토콜을 의미한다.

HTTP 연결시에는 데이터가 암호화되지 않아서 중간자가 패킷을 탈취해서 사용할 수 있지만, HTTPS 사용시 데이터가 암호화 되기 때문에 탈취되어도 해독이 불가능해 사용이 불가능하다.

HSTS 설정 여부 확인하기

주소창에서 http://google.com 을 입력하면 자동으로 https://google.com로 redirect 되는것을 확인할 수 있다.

  1. http://google.com 접속 시도

  2. https://google.com 로 redirect

1번 이미지에서 307 status의 응답은 브라우저에서 HSTS를 처리하기 위해서 생성한 가짜 응답이고 웹 서버에서 주는 응답이 아니라고 한다.

2번 의 두 이미지는 같은 응답에 대한 내용인데 response header가 너무 길어서 어쩔수없이 2개의 이미지를 캡쳐했다.

profile
꾸준한 노력파 개발자의 이모저모

1개의 댓글

comment-user-thumbnail
7일 전

와...이런 개념과 기능이 있었다니..!
정말 좋은 기능이네요! 완전 심플하고 확실하게 의도한 바를 처리해주네요!
인터넷에서 검색해보니 현재는 대부분의 브라우저에서 지원하는 것 같네요!

웹 사이트를 만들다보면 반드시 한 번 쯤은 고려되거나 들어볼 법도 한데,
흠..저는 그동안 일하면서 이런게 있는지도 모르고 있었네요!
백엔드 쪽 처리여서 그런건지..아니면 보안이 크게 중요하지 않은 일반 사이트만 다뤄서 그런건지..
아무튼! 이제라도 너무 좋은 지식 알게 되어서 다행인 것 같습니다!!

답글 달기