보안 · 중급
HTTPS 통신 시 클라이언트와 서버 간의 TLS 핸드셰이크 과정에서 주요 단계와 각 단계의 목적을 설명해 주세요. 특히 대칭키와 비대칭키가 어떻게 활용되는지 포함하여 설명해 주세요.
힌트 · 클라이언트 헬로, 서버 헬로, 인증서 교환 및 검증, 키 교환, Finished 메시지 순서로 대칭키 생성 및 교환 과정을 설명합니다.
ClientHelloServerHello인증서 검증대칭키 암호화비대칭키 암호화
모범답안
HTTPS 통신 시 TLS 핸드셰이크는 클라이언트와 서버가 안전하게 통신하기 위한 초기 과정입니다.
먼저, 클라이언트가 ClientHello 메시지를 보내 지원하는 TLS 버전, 암호화 스위트 등을 알립니다. 서버는 ServerHello 메시지로 사용할 TLS 버전과 암호화 스위트를 선택하고, 자신의 인증서를 클라이언트에게 보냅니다.
클라이언트는 서버 인증서의 유효성을 검증하고, 이 인증서에 포함된 서버의 공개키를 사용하여 통신에 사용할 대칭키를 생성합니다. 이 대칭키를 서버의 공개키로 암호화하여 서버에게 전송합니다.
서버는 자신의 개인키로 암호화된 대칭키를 복호화하고, 클라이언트와 동일한 대칭키를 생성합니다. 마지막으로, 클라이언트와 서버는 각각 Finished 메시지를 보내 핸드셰이크가 성공적으로 완료되었음을 확인합니다. 이후 모든 통신은 이 대칭키를 사용하여 암호화됩니다.
이 과정에서 비대칭키는 인증서 검증과 대칭키 교환에 사용되어 보안을 강화하고, 대칭키는 실제 데이터 암호화에 사용되어 빠른 통신을 가능하게 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTTPS / TLS / 암호화 면접 질문
- HTTPS 통신에서 서버 인증서(Server Certificate)는 어떤 역할을 하며, 왜 필요한가요?
- CA(Certificate Authority)는 무엇이며, 인터넷 환경에서 CA가 제공하는 신뢰 모델은 어떻게 동작하나요?
- 공개키(Public Key)와 개인키(Private Key)는 각각 무엇이며, HTTPS 통신에서 이 두 키가 어떻게 상호작용하며 사용되는지 설명해주세요.
- 웹 브라우저가 서버의 SSL/TLS 인증서를 신뢰하는 과정에서 CA(인증기관)의 역할은 무엇이며, 신뢰 체인(Trust Chain)은 어떻게 동작하는지 설명해 주세요.
- HTTPS에서 Perfect Forward Secrecy(PFS)가 무엇인지 설명하고, 이를 제공하기 위해 어떤 키 교환 알고리즘이 사용되는지 예시를 들어 설명해 주세요. PFS의 중요성은 무엇인가요?
- TLS 핸드셰이크 과정에서 클라이언트와 서버가 'Cipher Suite'를 협상하는 방식과 Cipher Suite가 구성하는 요소(예: 키 교환, 인증, 대칭 암호화, 해싱 알고리즘)에 대해 설명해 주세요.