HSTS(HTTP Strict Transport Security)가 무엇이며, 웹 애플리케이션 보안에 어떻게 기여하는지 설명해 주세요. HSTS를 적용했을 때의 장점과 고려사항은 무엇인가요?
힌트 · 브라우저가 HTTP 대신 항상 HTTPS로만 통신하도록 강제하는 보안 메커니즘으로, 중간자 공격 방지 및 보안 강화에 기여하지만 초기 설정 시 주의가 필요합니다.
모범답안
HSTS는 HTTP Strict Transport Security의 약자로, 웹사이트가 브라우저에게 항상 HTTPS를 사용하도록 강제하는 보안 메커니즘입니다. 웹 애플리케이션 보안에 기여하는 방식은 다음과 같습니다.
첫째, 중간자 공격(Man-in-the-Middle attack)을 방지합니다. 사용자가 실수로 HTTP 링크를 클릭하거나 HTTP로 접속해도, HSTS 헤더가 설정된 서버는 브라우저에게 자동으로 HTTPS로 연결하도록 지시합니다. 이는 공격자가 HTTP 통신을 가로채 민감한 정보를 탈취하는 SSL 스트리핑 공격을 효과적으로 막아줍니다.
둘째, 보안을 강화합니다. 사용자가 직접 HTTPS 주소를 입력하지 않아도 항상 암호화된 통신을 보장받게 되어, 데이터 전송의 기밀성과 무결성을 높입니다.
HSTS 적용의 장점은 앞서 말한 보안 강화와 중간자 공격 방지입니다. 또한, 브라우저가 서버에 처음 접속할 때 HTTPS로 연결을 시도하므로, 초기 연결에서의 보안 취약점을 줄일 수 있습니다.
고려사항으로는, HSTS를 적용하면 HTTP로의 접속이 완전히 차단되므로, SSL/TLS 인증서에 문제가 있거나 HTTPS 설정이 잘못된 경우 사용자가 웹사이트에 접속하지 못하는 상황이 발생할 수 있습니다. 따라서 HSTS 적용 전에 HTTPS 설정이 완벽한지 충분히 테스트해야 합니다. 또한, HSTS 정책은 브라우저에 캐시되므로, 잘못 설정했을 경우 이를 해제하는 데 시간이 걸릴 수 있습니다. 'preload' 목록에 등록하면 브라우저가 처음부터 HSTS를 인지하게 되어 보안을 더욱 강화할 수 있지만, 한번 등록하면 되돌리기 어렵기 때문에 신중한 결정이 필요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTTPS / TLS / 암호화 면접 질문
- 웹 브라우저가 서버의 SSL/TLS 인증서를 신뢰하는 과정에서 CA(인증기관)의 역할은 무엇이며, 신뢰 체인(Trust Chain)은 어떻게 동작하는지 설명해 주세요.
- HTTPS에서 Perfect Forward Secrecy(PFS)가 무엇인지 설명하고, 이를 제공하기 위해 어떤 키 교환 알고리즘이 사용되는지 예시를 들어 설명해 주세요. PFS의 중요성은 무엇인가요?
- TLS 핸드셰이크 과정에서 클라이언트와 서버가 'Cipher Suite'를 협상하는 방식과 Cipher Suite가 구성하는 요소(예: 키 교환, 인증, 대칭 암호화, 해싱 알고리즘)에 대해 설명해 주세요.
- TLS 1.2와 TLS 1.3 버전의 주요 차이점을 설명하고, TLS 1.3이 보안 및 성능 측면에서 어떤 개선을 이루었는지 구체적으로 설명해 주세요.
- SNI(Server Name Indication)가 HTTPS에서 어떤 문제를 해결하기 위해 도입되었으며, 어떻게 동작하는지 설명해 주세요.
- TLS 1.3의 0-RTT(Zero Round-Trip Time) 모드는 초기 연결 설정 성능을 크게 향상시킵니다. 하지만 이 모드가 도입하는 보안상의 주요 위험 요소는 무엇이며, 이를 완화하기 위한 기술적 접근 방식에는 어떤 것들이 있을까요?