본문 바로가기

카테고리 없음

[CS] - HTTP / HTTPS 차이점 비교

HTTP 와 HTTPS 차이점

HTTP (Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 또는 프로토콜입니다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고, 웹 서버는 HTTP 응답을 보냅니다.

즉, HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술입니다. 

 

HTTPS(Hypertext Transfer Protocol Secure)는 문자 그대로 Secure가 추가된 안전한 버전입니다.

HTTP가 데이터를 일반 텍스트로 주고 받는 반면, HTTPS에서는 브라우저가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다. 정확히는, HTTP가 통신 시 사용하는 TCP/IP 소켓 통신에서, 일반 텍스트 대신 SSL 또는 TLS 프로토콜을 통해 데이터를 암호화하여 송수신합니다. (참고로 현재는 대부분 TLS를 사용하고 있습니다.)

 

관련 내용 노션 링크(개인 공부노트)

https://ogi-front-end.notion.site/URL-HTTPS-449fa77647d541c0bc137434447eeac3?pvs=4

 

요약하자면, 일반 텍스트로 데이터를 주고 받는 HTTP 프로토콜은 제 3자가 정보를 가로채고 읽을 위험성이 있습니다. HTTPS는 요청 및 응답에 SSL/TLS 인증서를 통해 데이터를 암호화하여 보다 안전한 통신을 가능하게 합니다.

 

HTTPS 프로토콜 작동 방식

HTTPS 웹 사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 합니다. 또한 데이터를 주고받기 전에 브라우저와 인증서를 먼저 공유합니다. aws 홈페이지에서는 HTTPS 프로토콜의 작동 단계를 다음과 같이 설명합니다.

 

출처 : aws 홈페이지

 

[대칭키 암호화와 비대칭키 암호화]

HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식을 모두 사용하고 있습니다.

 

  • 대칭 키 (비밀 키)
    • 클라이언트와 서버가 동일한 암호화/복호화 키를 사용합니다. 
    • 키가 노출되면 위험하지만 연산 속도가 빠르다는 장점이 있습니다.
    • 대표 암호 알고리즘 : DES, 3DES, TDES, AES, SEED, ARIA 등
  • 비대칭 키 ( 공개 키 : public key, 개인 키 : private key )
    • 하나의 쌍으로 된 공개 키와 개인 키를 사용해 암호화/복호화를 진행합니다.
    • 암호화 된 개인 키를 각각 가지고 있는 서버와 클라이언트가 데이터를 주고 받을 때, 개인 키에 맞는 공개 키를 주고 받습니다.
    • 공개 키를 해킹 당해도 개인 키를 복호화 할 수 없기 때문에 비교적 안전합니다.
    • 단, 대칭 키에 비해 연산 속도가 느리다는 단점이 있습니다.
    • 대표 암호알고리즘 : RSA, ECC 등

여기서 HTTPS는 두 방식을 모두 사용해서 빠른 연산 속도와 안정성을 둘 다 얻고 있습니다.

먼저 HTTPS 연결 과정의 흐름은 다음과 같습니다.

 

1. 클라이언트(브라우저)가 서버로 최초 연결 시도

2. 서버는 공개 키(인증서)를 브라우저에게 전송

3. 브라우저는 인증서의 유효성을 검사하고 세션 키를 발급

4. 브라우저는 세션 키를 보관하며 추가로 서버의 공개 키로 세션 키를 암호화하여 서버로 전송

5. 서버는 개인 키로 암호화된 세션 키를 복호화하여 세션 키를 얻음

6. 클라이언트와 서버는 동일한 세션 키를 공유하므로 데이터를 전달할 때 세션 키로 암호화/복호화 진행

 

살펴보면, 각 키의 장점만을 살린 방식으로 통신하고 있다는 것을 알 수 있습니다.

데이터 교환에는 빠른 연산속도(대칭 키)가, 암호화하는 데에는 안정성(비대칭 키)이 필요하기 때문에 처음 생성하는 세션 키비대칭 키로 안전하게 생성하고, 세션 키를 이용해 암호화 된 데이터를 주고 받는 과정에서는 빠른 대칭 키를 사용하는 방식입니다.

 

HTTPS 의 작동 단계와 HTTP 전송 방식과의 차이점에 대해 알아보았습니다.

추가적으로 HTTPS 비대칭 키를 발급 받는 과정 등은 참고 링크에서 확인할 수 있습니다.

 

 

참고 링크

 

https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/

 

https://mangkyu.tistory.com/98