HSTS 보안&속도 2가지 장점

HSTS(HTTP Strict Transport Security)를 이용하는 웹사이트에 적용했을 경우 보안과 속도의 이점을 볼 수 있습니다. 이 말은 HSTS preload(사전로드) 기능이 사전로드(or 미리로드) 방식을 통해 기존 HTTPS가 적용된 사이트의 느려진 속도를 어느 정도 보완할 수 있습니다. 프리로드 등록은 해당 페이지에 등록하면 설정이 완료 됩니다.

HTTPS부터 시작해서 ‘HTTP Strict Transport Security’에 대해 순차적으로 알아보겠습니다.

1. HTTPS란

HTTPS란 기존의 HTTP 프로토콜에서 보안이 강화된 인터넷 통신 프로토콜입니다.

HTTPS(HyperText Transfer Protocol over Secure Socket Layer)는 통신의 인증 암호화를 위해 사용되며, SSL 또는 TLS 프로토콜을 통해 세선 데이터를 암호화합니다. 구글은 SSL을 사용하길 귄장합니다.(거의 권장이라기보단 필수 항목입니다.)

cyber security - HSTS

2. HSTS 장점

HSTS란 기존 HTTPS에 HSTS 선언을 해서 보안 기능을 강화한 것이라고 할 수 있습니다. HSTS(HTTP Strict Transport Security)는 브라우저에 HTTPS만을 이용해 접속할 수 있도록 통보를 하는 반응 헤더입니다.

결국 HTTP 프로토콜에서 HTTPS로 보안이 강화되었으며, 다시 HTSTS로 보안이 한층 더 강화되는 첫 번째 장점이 생깁니다.

두 번째 장점은 위에서 언급한 바와 같이 HTTPS는 서버에 SSL보안인증서를 설치하고 클라이언트가 웹사이트에 접속 시 SSL보안인증서로 HTTPS통신을 추가로 하게 됨으로서 서버 속도가 HTTP 프로토콜에 비해 느려질 수 밖에 없습니다. 하지만 ‘사전로드’를 설정함으로서 큰 영향은 아니지만 웹사이트의 접속 속도가 보다 빨라지는 장점이 생깁니다. 사전로드 등록을 하면 HTTPS 리다이렉션 방식의 불필요한 과정이 생략되기 떄문입니다.

두 가지 장점으로 추가되는 세 번째 장점은 업그레드 된 보안과 속도의 향상으로 구글 SEO에서 가산점을 받을 수 있는 것입니다.

3. HSTS Preload 조건

HSTS preload 등록 조건은 아래와 같습니다.

① 유효한 인증서를 제공합니다 .
> 인증서가 만료된 경우 사이트 접속이 불가능할 수 있으니 항상 인증서 갱신/관리에 신경 써야 합니다. 

② 포트 80에서 수신하는 경우 동일한 호스트의 HTTP에서 HTTPS로 리디렉션 합니다.
>HTTPS 포트는 443번이며 로컬호스트 서버에서 이 포트는 80번 포트와 함께 유효해야 합니다.
③ HTTPS를 통해 모든 하위 도메인을 제공합니다 .

- 특히 해당 www하위 도메인에 대한 DNS 레코드가 있는 경우 하위 도메인에 대해 HTTPS를 지원해야 합니다.
> www와 같은 하위도메인(2차도메인) 그리고 추가로 사용 중인 하위 도메인이 있을 경우 모든 하위 도메인에는 HTTPS가 지원되야 합니다.
 
④HTTPS 요청을 위해 기본 도메인에서 HSTS 헤더를 제공 합니다.
- max-age는 최소한 31536000초(1년)여야 합니다. 
- includeSubDomains 지시어를 지정해야 합니다.
- preload지시어를 지정해야 합니다.
- HTTPS 사이트에서 추가 리디렉션을 제공하는 경우 해당 리디렉션에는 리디렉션되는 페이지가 아닌 HSTS 헤더가 있어야 합니다.
> 이용하는 호스팅서버의 가상호스트 또는 .htaccess에 헤더를 추가해야 합니다. 
(CDN 업체에서 지원할 경우 CDN에서도 설정할 수 있습니다.)

5. 주의사항

운영하면서 주의할 사항은 SSL보안인증서가 만료될 경우 “이 사이트는 보안 연결(https)이 사용되지 않았습니다.” 또는 이 사이트는 안전하지 않습니다.” 등과 같은 문구가 나오는데 아예 사이트 접속이 안될 수 있는 리크스가 있다는 것입니다.

또한 관련된 설정이 그대로 유지되어야 합니다. 보안인증서 갱신과 함께 preload 기간이 설정된 Max-Age 헤더도 유지되어야 합니다. SSL보안인증서 자체를 유지하기 어려운 경우 기존에 설정한 Preload를 제거해야 하는데 번거로움과 시간이 듭니다. 조건은 아래와 같습니다.

사전로드 목록에 포함 된 것은 쉽게 취소 할 수 없습니다. 도메인을 삭제할 수 있지만 변경 사항이 Chrome 업데이트를 통해 사용자에게 도달하는 데 수개월이 걸리며 다른 브라우저에 대해서는 보장 할 수 없습니다. 장기적으로 전체 사이트 및 모든 하위 도메인 에 HTTPS를 지원할 수 있다고 확신하지 않는 한 포함을 요청하지 마십시오 .
 그러나 강력한 기술 또는 비용 이유로 HTTPS를 통해 제공 할 수없는 하위 도메인이있는 경우 일반적으로 Chrome의 사전로드 목록에서 삭제 요청을 수락합니다. 삭제를 요청하려면 삭제 양식을 방문하세요 .

위와 같은 사항을 고려해서 설정하기 전 체크하고 진행하길 권장합니다.

6. 결론

HSTS Preload List에 웹사이트 등록 시 구글 크롬을 시작으로 파이어폭스, 사파리, 엣지 등을 포함한 모바일 웹 브라우저 등에서 HSTS를 지원합니다. SSL인증서는 호스팅 서버 및 도메인 관리와 함께 필수로 관리해야 하는 부분이므로 주의사항을 생각해서 운영한다면 웹사이트 운영의 여러가지 측면에서 이점으로 작용할 것입니다. SSL 인증서를 사용한다면 사전로드를 등록해서 모두 사용하는 것이 옳은 판단이라고 생각됩니다. 하루 방문자가 1명이라도 더 들어온다면 한달에 30명이 더 들어오는 것입니다. 홈페이지 속도와 업그레이드 된 보안을 바탕으로 조금이나마 유리한 SEO 가산점을 획득하는 것은 중요한 일이라고 생각됩니다. 구글 역시 관련 기능에 대해 SEO 최적화에 도움이 된다고 언급한 부분이 있는 점을 참고하면 좋겠습니다.

Leave a Comment