보안 · 중급
TLS 핸드셰이크 과정에서 클라이언트와 서버가 'Cipher Suite'를 협상하는 방식과 Cipher Suite가 구성하는 요소(예: 키 교환, 인증, 대칭 암호화, 해싱 알고리즘)에 대해 설명해 주세요.
힌트 · 클라이언트가 지원하는 목록을 보내면 서버가 선택하여 응답하며, 키 교환, 인증, 벌크 암호화, MAC 알고리즘 등으로 구성됩니다.
ClientHelloServerHelloCipher Suite키 교환 알고리즘대칭키 암호화
모범답안
TLS 핸드셰이크에서 클라이언트와 서버는 'Cipher Suite'를 협상하여 통신 보안을 설정합니다.
먼저 클라이언트는 ClientHello 메시지를 보내 자신이 지원하는 Cipher Suite 목록을 서버에 알립니다. 이 목록에는 키 교환 알고리즘, 인증 방식, 대칭 암호화 알고리즘, 해싱(MAC) 알고리즘 등이 포함됩니다.
서버는 받은 목록을 검토하고, 자신이 지원하는 것 중 가장 안전하고 효율적인 Cipher Suite를 선택하여 ServerHello 메시지로 클라이언트에게 응답합니다. 이렇게 선택된 Cipher Suite는 이후 통신에서 사용할 암호화 및 인증 방식을 결정하게 됩니다.
Cipher Suite는 보통 다음과 같은 요소들로 구성됩니다.
- 키 교환 알고리즘 (Key Exchange Algorithm): 세션 키를 안전하게 교환하는 방식입니다. 예를 들어, ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) 등이 있습니다.
- 인증 방식 (Authentication): 서버의 신원을 확인하는 방식입니다. 주로 RSA 또는 ECDSA와 같은 디지털 서명 알고리즘을 사용합니다.
- 대칭키 암호화 알고리즘 (Bulk Encryption Algorithm): 실제 데이터를 암호화하는 데 사용되는 알고리즘입니다. AES (Advanced Encryption Standard)가 대표적입니다.
- 해싱 알고리즘 (Hashing Algorithm / MAC): 데이터 무결성을 보장하고 메시지 인증 코드(MAC)를 생성하는 데 사용됩니다. SHA-256 등이 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 HTTPS / TLS / 암호화 면접 질문
- HTTPS 통신 시 클라이언트와 서버 간의 TLS 핸드셰이크 과정에서 주요 단계와 각 단계의 목적을 설명해 주세요. 특히 대칭키와 비대칭키가 어떻게 활용되는지 포함하여 설명해 주세요.
- 웹 브라우저가 서버의 SSL/TLS 인증서를 신뢰하는 과정에서 CA(인증기관)의 역할은 무엇이며, 신뢰 체인(Trust Chain)은 어떻게 동작하는지 설명해 주세요.
- HTTPS에서 Perfect Forward Secrecy(PFS)가 무엇인지 설명하고, 이를 제공하기 위해 어떤 키 교환 알고리즘이 사용되는지 예시를 들어 설명해 주세요. PFS의 중요성은 무엇인가요?
- HSTS(HTTP Strict Transport Security)가 무엇이며, 웹 애플리케이션 보안에 어떻게 기여하는지 설명해 주세요. HSTS를 적용했을 때의 장점과 고려사항은 무엇인가요?
- TLS 1.2와 TLS 1.3 버전의 주요 차이점을 설명하고, TLS 1.3이 보안 및 성능 측면에서 어떤 개선을 이루었는지 구체적으로 설명해 주세요.
- SNI(Server Name Indication)가 HTTPS에서 어떤 문제를 해결하기 위해 도입되었으며, 어떻게 동작하는지 설명해 주세요.