보안 · 중급
HTTPS와 TLS의 동작 원리를 설명해주세요.
힌트 · TLS 핸드셰이크 과정, 대칭/비대칭 암호화의 조합, 인증서 검증 방식을 설명해보세요.
TLS 핸드셰이크대칭키 암호화비대칭키 암호화인증서HTTPS
모범답안
HTTPS는 HTTP 프로토콜 위에 TLS라는 보안 계층을 얹어 안전하게 통신하는 방식입니다. TLS는 전송 계층 보안 프로토콜이고, 이전 버전인 SSL을 계승했습니다.
HTTPS 통신은 TLS 핸드셰이크 과정을 거쳐 암호화된 연결을 설정합니다. 먼저 클라이언트가 서버에 접속 요청을 보내면, 서버는 인증서를 클라이언트에게 제공합니다. 클라이언트는 인증서 발급 기관을 통해 인증서의 유효성을 검증합니다.
인증서 검증이 완료되면, 클라이언트는 서버와 공유할 비밀 키를 생성하고, 서버의 공개키로 암호화하여 서버에게 전송합니다. 서버는 자신의 개인키로 암호화된 비밀 키를 복호화합니다.
이후 클라이언트와 서버는 공유된 비밀 키를 사용하여 대칭키 암호화 방식으로 데이터를 주고받습니다. 대칭키 암호화는 비대칭키 암호화보다 훨씬 빠르기 때문에 효율적인 통신이 가능합니다. 이렇게 TLS 핸드셰이크를 통해 안전하게 암호화된 HTTPS 연결이 이루어집니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 웹 보안 면접 질문
- 인증(Authentication)에서 '신원 확인'과 인가(Authorization)에서 '권한 확인'은 각각 어떤 정보를 기준으로 판단하나요? 로그인 이후 매 요청마다 이 두 가지가 어떻게 적용되는지 설명해주세요.
- 역할 기반 접근 제어(RBAC)란 무엇이며, 사용자에게 권한을 직접 부여하는 방식과 비교해 어떤 장점이 있나요?
- OAuth 2.0의 Authorization Code Grant 플로우에서 인가 코드(authorization code)와 액세스 토큰을 분리해서 두 단계로 주고받는 이유는 무엇인가요?
- 대칭 암호화와 비대칭 암호화의 차이점을 설명하고, 각각의 사용 사례를 들어주세요.
- JWT(JSON Web Token)의 구조와 인증 방식, 그리고 보안 주의사항을 설명해주세요.
- OAuth 2.0의 흐름과 주요 Grant Type에 대해 설명해주세요.