[CS] HTTPS 개념 및 작동원리

limlim·2023년 5월 10일
0

CS

목록 보기
7/15

개요

  • 이전에 프로젝트를 하면서 https를 구축한 적이 있다. https를 쓰면 보안상 좋다고 하여 https의 작동원리에 대해 깊게 생각하지 않고 사용했었다. 그래서 이번 기회에 https의 개념과 작동원리에 대해 공부하고 정리하려고 한다.
  1. HTTPS는 무엇인가?
  • 웹은 안전한 통신을 위해 정보를 암호화하는데, 여기서 말하는 암호화는 일반적인 평문을 알아볼 수 없도록 암호화하여 암호문으로 만드는 과정이다.

  • 그 중에 대표적인 기술이 HTTPS이다. HTTPS의 원천 기술로는 SSL(Secure Socket Layer)과 TLS(Transport Layer Security) 전송 기술이 있다.

  • 이 기술을 사용하기 위해 웹 서버에 설치하는 것이 SSL/TLS 인증서이다. TLS는 SSL의 개선 버전으로, 최신 인증서는 대부분 TLS를 사용하지만, 편의적으로 SSL 인증서라고 말한다.

  1. SSL 인증서와 SSL 핸드셰이크에 탑재된 기술
  • 대칭키 암호화 방식: 잠그고 여는 것 모두가 하나의 열쇠를 사용, so 도난 당하면 끝

  • 비대칭키(공개키) 암호화 방식: 개인키를 먼저 만들고, 여기서 공개키를 파생하여 한 쌍의 키를 만들기 때문에 키페어라고 부르며 같은 쌍이 아닌 다른 키를 사용하려 한다면 암호화/복호화 불가능

  • 통신 대상을 서로가 확인하는 신분 확인

  • 믿을 수 있는 SSL 인증서를 위한 디지털 서명

  • 디지털 서명을 해주는 인증 기관의 확인

  • 공개키를 안전하게 전달하고 공유하기 위한 프로토콜

  • 암호화된 메시지의 변조 여부를 확인하는 메시지 무결성 알고리즘

  1. SSL 핸드셰이크 과정

1) 클라이언트: 클라이언트에 해당하는 브라우저가 먼저 웹 서버에 접속 (Client Hello)

2) 서버: 웹 서버는 1)에 응답하면서 관련 정보를 클라이언트에게 제공 (Server Hello)

3) 클라이언트: 브라우저는 서버의 SSL 인증서가 올바른지 확인

4) 클라이언트: 브라우저는 자신이 생성한 난수와 서버의 난수를 사용하여 premaster secret을 만듦

5) 서버: 서버는 사이트의 비밀키로, 브라우저가 보낸 premaster secret 값을 복호화함

6) 서버/클라이언트: SSL 핸드셰이크를 종료하고 HTTPS 통신을 시작함

-> so, SSL 핸드셰이크 단계까지는 공개키 방식, 그 이후의 HTTPS 통신은 대칭키 방식을 사용함

  1. 정리
  • HTTPS는 HTTP에 인증서를 적용하여 보안을 강화한 것이다. But, HTTPS가 보안을 강화하긴 했지만 100% 안전하진 않다.

  • HTTPS는 전달 구간에 대한 보안 기술로, 전달 구간 중간에 해커가 중간자 공격을 수행할 수 있는 취약점이 있다면 HTTPS는 유지되나 전달 내용은 고스란히 노출될 수 있다.

  • 그렇기 때문에 보안 상 중요한 전달 내용에는 HTTPS를 적용하면서도, 종단 간 암호화 기술을 추가로 적용하여 HTTPS가 무력화되어도 노출된 데이터는 암호화를 유지해, 외부로 노출되지 않도록 하는 방법이 일반적으로 쓰인다.

참고자료: https://yozm.wishket.com/magazine/detail/1852/

profile
不怕慢,只怕站 개발자

0개의 댓글