HTTP Expect-CT header 로 인증서 투명성 정책(CT;Certificate Transparency Policy) 적용하기
Expect-CT 는 새로운 HTTP 의 보안 관련 헤더로 실수로 잘못 발급된 TLS 인증서를 이용한 공격을 방지하게 해줍니다.
브라우저는 Expect-CT 헤더가 있는 사이트에 접근시 CT logs 를 확인해서 접속하려는 사이트의 인증서가 유효한지 확인합니다.
CT 는 총 3 가지 지시자가 있습니다.
지시자
enforce
브라우저에게 강제로 CT policy 를 따르고 report only mode 로 동작하지 않도록 지시합니다. 아마 향후 연결시 브라우저는 CT policy 를 따르지 않을 경우 연결을 거부할 수 있습니다.
max-age
단위는 초이며 정해진 시간동안 해당 사이트에 접속시 CT 로그를 확인합니다.
테스트할 경우 max-age 단위를 적게 주고 테스트하고 운영에 반영할 경우 길게 설정하는게 좋습니다.
report-uri
CT 에 위배되었을 경우 리포트할 uri 를 기술합니다.
사용 예
5분동안 인증서 투명성을 지원하며 CT 에 위반될 경우 ct-report 라는 사이트에 보고합니다.
Expect-CT: max-age=300, report-uri="https://ct-report.example.com/reportOnly"
12 시간 동안 강제 모드로 인증서 투명성을 지원하며 CT 위반시 보고합니다.
Expect-CT: max-age=43200, enforce, report-uri="https://ct-report.example.com/reportOnly"
성공적으로 CT 가 적용됐다면 chrome 의 개발자모드 → Security 탭에서 CT 정보를 확인할 수 있습니다.