HSTS 로 사이트 안전성 을 한층 강화 하 다

Let's Encrypt 등 무료 인증서 가 존재 하기 때문에 각 역장 들 은 자신의 사 이 트 를 쉽게 보강 할 수 있 습 니 다.그러나 HTTPS 는 만능 약이 아니 라 HTTPS 지원 에 가입 하면 만사 가 다 잘 되 는 것 이 아니다.
예 를 들 어 HTTPS 지원 에 가입 하 더 라 도 어떻게 하면 사용자 가 HTTPS 로 연결 할 수 있 습 니까?필 자 를 포함 하여 아무 도 그 이상 한 https:// 프로 토 콜 헤드 를 손 으로 입력 하지 않 을 것 으로 예상 되 며, 브 라 우 저 는 항상 프로 토 콜 헤드 가 없 는 웹 주 소 를 http 프로 토 콜 로 기본 값 으로 간주 합 니 다.그래서 사용자 가 인터넷 주소 의 도 메 인 이름 을 입력 하고 차 로 돌 아 왔 을 때 사용자 의 컴퓨터 는 서버 와 비 안전 한 연결 을 맺 었 다.사용자 가 HTTP 프로 토 콜 로 연결 할 때 HTTPS 으로 서버 를 설정 했다 고 합 니 다. 그러나 문 제 는 완전히 해결 되 지 않 습 니 다. 301 로 돌아 가 더 라 도 암호 화 되 지 않 으 면 암호 화 되 지 않 습 니 다. 중개인 은 사용자 가 올 린 요청 헤드 를 읽 고 서버 가 돌아 온 301 주 소 를 다른 사이트 로 변경 하 는 등 하고 싶 은 대로 할 수 있 습 니 다.
하나의 메커니즘 으로 사용자 에 게 HTTPS 프로 토 콜 로 서버 를 연결 하도록 강제 해 야 하 는데 이것 이 바로 HSTS 의 역할 이다.
HSTS 란 무엇 입 니까?
HTTP 엄격 한 전송 보안 (영어: HTTP Strict Transport Security, 줄 임 말: HSTS) 은 인터넷 공학 태 스 크 팀 이 발표 한 인터넷 보안 전략 체제 이다.웹 사 이 트 는 세 션 납치 위험 을 줄 이기 위해 브 라 우 저 로 하여 금 HTTPS 를 강제로 사용 하여 웹 사이트 와 통신 하도록 HSTS 정책 을 선택 할 수 있다.
HSTS 를 사용 하 는 웹 사이트 에 대해 브 라 우 저 는 다음 과 같은 몇 가 지 를 수행 합 니 다.
  • HTTPS 프로 토 콜 연결 을 강제 합 니 다.안전 하지 않 은 접근 프로 토 콜 에 대해 브 라 우 저 는 내부 에서 HTTPS 프로 토 콜 로 재 설정 합 니 다.포함
  • 사용자 가 프로 토 콜 헤드 를 입력 하지 않 았 습 니 다
  • 사용자 가 http:// 프로 토 콜 헤드
  • 을 입력 하 였 습 니 다.
  • 브 라 우 저가 서버 인증서 오 류 를 발견 하면 사용자 의 연결 을 강제로 막 습 니 다
  • HSTS 를 사용 하 는 방법
    반환 헤더 추가:
    Strict-Transport-Security: max-age=; includeSubDomains

    이 중 includeSubDomains 은 현재 도 메 인 이름 의 하위 도 메 인 이름 에 도 HSTS 지원 을 사용 한 다 는 뜻 으로 선택 할 수 있 습 니 다.
    주의해 야 할 것 은 클 라 이언 트 가 서버 와 안전 한 연결 을 해 야 할 때 (HTTPS 프로 토 콜 로 연결 되 고 인증서 오류 가 없 을 때) Strict-Transport-Security 마리 가 브 라 우 저 에 의 해 인 정 됩 니 다.이것 은 안전 하지 않 은 연결 에서 중개인 이 이 머리 를 추가 하거나 삭제 할 수 있 기 때문에 진정 으로 안전 한 연결 을 만 들 때 모든 것 이 믿 을 수 없 기 때문이다.
    HSTS 를 미리 닫 으 려 면 쿠키 제거 와 유사 한 방법 을 사용 할 수 있 습 니 다.
    Strict-Transport-Security: max-age=0; includeSubDomains

    안전 한 연결 이 필요 합 니 다.
    미리 불 러 오기 HSTS
    앞에서 언급 한 바 와 같이 HSTS 는 서버 가 브 라 우 저 에 되 돌아 오 는 리 턴 헤드 이 며 보안 연결 을 만 들 때 만 유효 합 니 다.그러면 또 다른 문 제 를 일 으 켰 다. 만약 에 사용자 가 당신 의 사 이 트 를 방문 한 적 이 없 는데 첫 번 째 방문 에서 납치 당 하면 어떻게 합 니까?
    문 제 는 클 라 이언 트 가 서버 와 연결 한 적 이 없 는 한 브 라 우 저 는 서버 가 HTTPS 요청 을 지원 하 는 지, 이 사이트 가 HSTS 를 사용 하려 고 하 는 지 알 수 없다 는 점 이다.구 글 은 HSTS 를 사용 하고 싶 은 모든 사이트 의 도 메 인 이름 을 브 라 우 저 코드 에 미리 쓰 면 되 지 않 을 까 하 는 방법 을 생각해 냈 다.이것 이 바로 Preloading Strict Transport Security 이다.
    구 글 은 브 라 우 저가 각 사이트 에 HSTS Preload List Submission 지원 을 내장 할 수 있 도록 HSTS 이라는 사이트 을 유지 했다.HSTS 를 미리 불 러 오 려 면 사이트 가 더욱 엄격 한 조건 을 만족 시 켜 야 합 니 다.
  • 은 유효한 증 서 를 제공 합 니 다.
  • 사이트 에서 HTTP 지원 (감청 80 포트) 을 동시에 사용 하면 같은 도 메 인 이름 의 HTTPS 주소 로 HTTP 를 다시 설정 해 야 합 니 다 (예 를 들 어 http://domain.comhttps://www.domain.com 으로 다시 설정 하면 안 됩 니 다)
  • 모든 하위 도 메 인 이름 도 HTTPS 연결
  • 을 사용 해 야 합 니 다.
  • 다음 조건 을 만족 시 키 는 HSTS 헤드 를 되 돌려 줍 니 다.
  • max-age 최소 18 개 월 (10886400 초 이상)
  • 은 반드시 includeSubDomains
  • 을 지정 해 야 한다.
  • preload (preload 는 구 글 이 HSTS 헤드 에 추가 한 확장 값)
  • 을 지정 해 야 합 니 다.
  • 이 도 메 인 이름 이 다른 도 메 인 이름 으로 바 뀌 면 앞의 도 메 인 이름 도 HSTS 마리 (예 를 들 어 https://domain.com 에서 https://www.domain.com 으로 바 뀌 고 전 자 는 HSTS 마 리 를 추가 해 야 합 니 다)

  • 이러한 조건 을 만족 시 키 면 공식 사이트 에서 도 메 인 이름 에 HSTS 를 미리 불 러 올 것 을 신청 할 수 있 습 니 다.신청 이 통과 되면 한동안 기다 리 면 도 메 인 이름 이 하 드 코드 에 의 해 브 라 우 저 내부 로 들 어 갑 니 다.크롬 뿐만 아니 라 IE, Edge, Firefox 가 모두 사용 된다.도 메 인 이름 이 HSTS 를 미리 불 러 오 는 것 을 지원 하 는 지 이 사이트 으로 확인 할 수 있 습 니 다.
    PS: EOI 의 최상 위 도 메 인 eoitek.com 역시 미리 불 러 오 는 HSTS 지원 입 니 다. 돌아 보지 않 겠 습 니까?

    좋은 웹페이지 즐겨찾기