금번 기술면접을 진행하면서 https 복호화가 어디서 진행되냐는 질문을 받았다
복호화는 대칭키와 비대칭키 시스템을 활용해 클라이언트와 서버 모두 암복호화를 진행하는것으로 알고있었고, 이와 관련된 답변을 하였으나 면접관이 원한 답변은 아니였고 이후 관련하여 공부한것을 기록해본다
HTTP 동작과정
먼저 http의 동작과정을 살펴보자
HTTPS 동작 과정
- 클라이언트 URL 주소를 입력 및 DNS 서버를 통해 IP를 획득
- 웹 서버와 TCP 연결 시도 (3-way handshaking)을 통해 통신 연결 수립, 소켓 개방진행
3. Handshaking 과정에서 SSL인증서 확인
**4. 서버와 클라이언트는 Session Key(서버 생성)를 활용해 데이터 암복호화 요청 (Request / Response)- 클라이언트가 서버에게 요청 (Request)
- 서버는 클라이언트에게 응답 (Response)
- 연결 종료 (4-way handshaking) 및 session key 폐기
- 클라이언트는 응답을 기반하여 웹 문서 출력
http와의 차이라면 3,4번이 추가되어 보안기능을 추가하는것을 알 수 있다
그렇다면 SSL인증은 어떤 과정으로 동작하게 되는걸까?
Handshaking 과정에서 SSL인증을 확인하는 과정
해당 과정을 통해 SSL 인증이 진행되며
면접관님의 질문의 복호화가 어디서 이루어지는지에 대한 원하셨던 답변은
아무래도 첫 공개키를 획득하는 클라이언트 부분이 아니였을까? 생각 된다
무튼 금번 면접을 통해 https 인증과정을 좀더 자세히 살펴보게 된 것 같다
단순히 동작만 하는 코드를 짜는것이 아닌, 원리와 과정을 이해하는게 중요하다는것을 오늘도 깊이 느낀다