HTTPS

2025. 5. 12. 12:48Coding Study/네트워크

HTTPS란 무엇인가?

HTTPS는 HTTP Secure의 약자이며 기존 HTTP보다 보안성이 강화된 통신 프로토콜이다. 단순히 HTTP에 S가 붙은 것처럼 보이지만, 실제로는 암호화 기술이 더해져 훨씬 안전하게 데이터를 주고받을 수 있다.

HTTPS는 데이터를 암호화해서 전송하기 때문에, 제3자가 데이터를 탈취하더라도 내용을 알아볼 수 없다는 장점이 있다. 이와 달리, 기존 HTTP는 데이터를 암호화하지 않기 때문에 중간에서 가로채면 그대로 내용을 확인할 수 있다.

HTTPS는 어떻게 암호화를 수행하는가?

 

 

HTTPS는 SSL 또는 TLS라는 암호화 프로토콜을 HTTP에 추가하여 구성된다. 이 과정에서 두 가지 암호화 방식이 사용된다.

대칭키 암호화와 비대칭키 암호화이다.

대칭키 암호화는 하나의 키로 암호화와 복호화를 모두 수행한다. 반면 비대칭키 암호화는 공개키와 개인키, 두 개의 키를 사용하며, 한쪽 키로 암호화하면 다른 쪽 키로만 복호화가 가능하다.

HTTPS 통신의 주체

HTTPS 통신은 세 가지 주체가 참여하여 이루어진다. 클라이언트(브라우저), 서버(웹사이트), 그리고 인증기관(CA, Certificate Authority)이다.

클라이언트는 브라우저 안에 신뢰할 수 있는 인증기관들의 리스트와 이들의 공개키를 저장하고 있다.

서버는 자신만의 공개키와 비밀키를 가지고 있으며,

인증기관 또한 동일하게 키 쌍을 보유한다.

인증과정

<각 주체별 보유 상황>

클라이언트 : 인증기관들의 리스트와 공개키를 저장하고 있다.

서버 : 자신만의 공개키 + 비밀키를 가지고 있다

인증기관 : 자신만의 공개키 + 비밀키를 가지고 있다

 

 <HTTPS 연결과정>

1. 서버는 HTTPS를 사용하고자 할 때, 자신의 공개키를 인증기관에 전달한다.

2. 인증기관은 서버가 신뢰할 수 있는 곳인지 확인 후

3. 인증기관은 자신의 비밀키로 서버의 공개키를 암호화한다. 

    암호화한 공개키가 인증기관의 인증서가 되고 이것을 서버로 전달한다.

4. 이로써 서버는 HTTPS 를 사용가능한 상태가 된다.

5. 클라이언트가 HTTPS 로 접속 요청을 하면

6. 서버는 클라이언트 로 인증서를 전달한다.

7. 클라이언트에서는 브라우저에 내장되어 있는 신뢰할 수 있는 인증기관의 리스트를 살펴보고 해당 인증서가 인증기관 릿스트 중에 있는

    인증서인지 확인 후 인증기관의 공개키로 복호화 한다.

    *복호화 실패시 : HTTPS 연결실패 ( 인증서가 잘못됨 )

 8. 복호화 성공시 : 서버의 공개키 획득!

 9. 클라이언트에서 대칭키 생성

 10. 서버의 공개키로 대칭키를 암호화

 11. 암호화된 대칭키를 서버로 전송

 12. 서버에서는 비밀키로 복호화해 대칭키 획득

    HTTPS 연결 성립 !

 

왜 대칭키를 사용하는가?

비대칭키는 복호화 속도가 느리기 때문에, 대용량 데이터를 전송할 때 적합하지 않다. 따라서 초기 인증과 대칭키 전달에는 비대칭키를 사용하고, 본격적인 데이터 전송에는 대칭키를 사용하는 것이다. 이 방식은 보안성과 효율성을 동시에 만족시킨다.

 

'Coding Study > 네트워크' 카테고리의 다른 글

에러처리  (0) 2025.06.12
SOP 와 CORS  (2) 2025.05.12
HTTP  (0) 2025.05.12
네트워크란  (0) 2025.05.12