HTTPS에 대해서 설명해 주세요.

2024. 12. 31. 12:44·백엔드 면접

먼저 HTTP는 클라이언트와 서버 간 통신을 위한 통신 규약입니다. 하지만 HTTP는 암호화되지 않는 평문 데이터를 주고받기 때문에 제3자가 정보를 조회할 수 있다는 위험이 있습니다.  이를 해결하기 위해서 HTTPS가 등장했습니다.

 

HTTPS는 HTTP에 데이터 암호화가 추가되었습니다. 암호화된 데이터를 전송하기 때문에 제3자가 볼 수 없도록 할 수 있습니다.


HTTPS는 어떻게 적용할 수 있나요?

HTTPS를 적용하기 위해서는 CA(Certificate Authority)라고 하는 인증된 기관에게 인증서를 발급받아야 합니다. CA에 인증서를 요청하면 CA 이름, 서버의 공개 키, 서버의 정보를 활용하여 인증서를 생성하고 이를 CA 개인 키로 암호화하여 서버로 전송합니다. 이때 인증서는 CA 개인 키로 암호화되므로 신뢰성을 확보할 수 있습니다. 이러한 인증서를 서버 측에서 발급받으면 HTTPS를 적용할 수 있습니다.


HTTPS 동작 원리에 대해서 설명해 주세요.

클라이언트가 서버로 최초 요청할 때 암호화 알고리즘, 프로토콜 버전, 무작위 값을 전달합니다. 이 전달을 ClientHello라고 합니다. 이를 받은 서버는 클라이언트에게 암호화 알고리즘, 인증서, 무작위 값을 전달합니다. 이 전달을 ServerHello라고 합니다.

 

클라이언트는 서버의 인증서를 CA의 공개 키로 복호화하여 검증합니다. 검증이 끝난 이후에는 클라이언트와 서버에서 생성된 무작위 값을 조합하여 Pre Master Secret 값을 생성하여 서버 공개 키로 암호화하여 전달합니다.

 

서버는 전달받은 암호화된 데이터를 개인 키로 복호화하여 Pre Master Secret을 얻습니다. 클라이언트와 서버는 일련의 과정을 통해 Pre Master Secret을 Master Secret으로 변경하고, 해당 정보를 이용해 세션 키를 생성합니다. 이러한 과정을 TLS handshake라고 하며, 이후부터 클라이언트와 서버는 세션 키를 활용한 대칭 키 암호화 방식으로 데이터 송수신을 할 수 있습니다.

'백엔드 면접' 카테고리의 다른 글

DB Replication에 대해서 설명해 주세요.  (0) 2025.01.02
Record에 대해서 설명해 주세요.  (0) 2025.01.01
WAS와 웹 서버의 차이점은 무엇인가요?  (0) 2024.12.30
자료구조 스택에 대해서 설명해 주세요.  (1) 2024.12.27
서버 사이드 렌더링과 클라이언트 사이드 렌더링의 차이점은 무엇인가요?  (2) 2024.12.26
'백엔드 면접' 카테고리의 다른 글
  • DB Replication에 대해서 설명해 주세요.
  • Record에 대해서 설명해 주세요.
  • WAS와 웹 서버의 차이점은 무엇인가요?
  • 자료구조 스택에 대해서 설명해 주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드 면접
    오블완
    토스 페이먼츠
    스프링
    JPA
    raid
    데브코스
    티스토리챌린지
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
HTTPS에 대해서 설명해 주세요.
상단으로

티스토리툴바