본문 바로가기

TIL(Today I Learned it)

TIL.45 HTTP vs HTTPS

HTTP vs HTTPS

HTTPS(HyperText Transfer Protocol Secure)는

기존 HTTP에 SSL/TLS 프로토콜을 결합한 보안 통신 프로토콜입니다.

HTTPS를 사용하는 이유는 주로 보안과 신뢰성 측면에서의 이점 때문입니다.

1. HTTP (HyperText Transfer Protocol)

HTTP는 클라이언트와 서버 간에 데이터를 주고받기 위한 기본적인 프로토콜입니다.

HTTP는 주로 웹 페이지, 이미지, 동영상 등 다양한 웹 리소스를 주고받기 위해 사용됩니다.

1) 특징

· 평문 전송

HTTP는 데이터를 암호화하지 않은 평문으로 전송합니다.

따라서 네트워크 상에서 통신 중인 데이터가 쉽게 가로채질 수 있습니다.

·  빠른 속도

암호화 과정이 없기 때문에 비교적 빠르게 데이터를 주고받을 수 있습니다.

·  포트 번호

HTTP는 포트 80을 기본으로 사용합니다.

2) 보안 문제

HTTP는 보안에 취약합니다.

예를 들어 사용자가 로그인할 때 입력한 아이디와 비밀번호가 평문으로 전송되기 때문에,

네트워크에서 정보를 가로채기만 하면 누구나 해당 데이터를 볼 수 있습니다.

이러한 보안 문제로 인해 개인 정보나 중요한 데이터가 전송될 때 HTTP는 부적합합니다.

3) 중간자 공격 위험

HTTP는 중간자 공격(man-in-the-middle attack)에 취약합니다. 공격자가 클라이언트와 서버 간의 통신을 가로채어 데이터를 조작하거나 훔칠 수 있는 위험이 높습니다.

 

TIL.44 MITM 공격과 예방 방법

MITM(Man-in-the-Middle) 공격은공격자가 통신을 수행하는 두 당사자 사이에 비밀리에 개입하여데이터를 도청하거나 변경하는 사이버 공격 기법입니다.이 공격은 종종 사용자가 신뢰하는네트워크나

despereaux.tistory.com

4) 주 사용처

HTTP는 보안이 중요한 정보가 포함되지 않은 페이지에서 사용됩니다.

예를 들어 단순히 정보만 제공하는 웹사이트나 퍼블릭 데이터가 필요한 웹 페이지의 경우

HTTP를 사용할 수 있습니다.

하지만 사용자 정보를 입력하거나 결제 정보가 포함된 웹사이트에서는 HTTP를 사용하지 않습니다.


2. HTTPS (HyperText Transfer Protocol Secure)

HTTPS는 HTTP에 보안 기능을 추가한 프로토콜입니다.

SSL (Secure Sockets Layer) 또는 TLS (Transport Layer Security)를 사용하여

클라이언트와 서버 간의 데이터 전송을 암호화하여 보안성을 강화합니다.

1) 암호화 (Encryption)

  • HTTPS는 SSL/TLS 프로토콜을 사용해 데이터를 암호화하여 기밀성을 보장합니다. 이로 인해 중간에서 데이터를 가로채더라도 공격자가 이를 이해할 수 없습니다.
  • 대칭키 암호화비대칭키 암호화가 모두 사용되며, 세션 키를 통해 빠르고 안전하게 데이터를 주고받습니다.

2) 데이터 무결성 (Integrity)

HTTPS는 데이터 무결성을 보장하여 전송 중에 데이터가 변경되거나 손상되지 않도록 합니다.

즉, 클라이언트와 서버 사이에 주고받는 데이터가 변조되지 않았음을 확인할 수 있습니다.

3) 인증 (Authentication)

HTTPS는 인증서를 사용하여 서버의 신원을 확인합니다.

이 인증서는 공인 인증 기관(CA, Certificate Authority)에 의해 발급되며,

이를 통해 사용자는 서버가 신뢰할 수 있는 서버인지 확인할 수 있습니다.

이는 중간자 공격과 같은 공격을 방지하는 데 도움을 줍니다.

4) 포트 번호

HTTPS는 포트 443을 기본으로 사용합니다. HTTP와 다른 포트를 사용함으로써 HTTPS의 통신을 구별하고 관리할 수 있습니다.

5) 성능

  • HTTPS는 데이터를 암호화하고 복호화하는 과정이 있기 때문에 HTTP보다 약간의 성능 저하가 있을 수 있습니다. 그러나 최근의 하드웨어와 네트워크 성능 발전 덕분에 이러한 차이는 대부분의 경우 무시할 수 있을 정도입니다.
  • 또한 HTTP/2가 HTTPS에서 주로 사용되기 때문에, HTTPS는 여러 연결을 효율적으로 처리할 수 있어 오히려 더 나은 성능을 제공할 수 있습니다.

6)  사용자 신뢰도 및 SEO

  • HTTPS는 웹사이트 방문자에게 안전한 연결을 제공하며, 많은 웹 브라우저는 HTTPS가 아닌 웹사이트에 대해 '안전하지 않음' 경고를 표시합니다.
  • 구글과 같은 검색 엔진은 **SEO(검색 엔진 최적화)**에서 HTTPS 사이트를 더 높은 우선순위로 다룹니다. 따라서 HTTPS를 사용하는 웹사이트는 검색 순위에서 더 유리할 수 있습니다.

7) 사용 사례

  • HTTPS는 로그인 페이지, 금융 거래, 전자 상거래 등 보안이 필요한 모든 웹 페이지에 사용됩니다.
  • 사용자의 개인정보를 다루는 웹사이트는 HTTPS를 필수적으로 사용해야 하며, 보안과 신뢰성이 중요한 페이지에서도 HTTPS가 필요합니다.

3. 결론

항목 HTTP HTTPS
보안 암호화 없음, 평문 데이터 전송 SSL/TLS를 사용해 암호화, 보안성 보장
포트 번호 80번 443번
기밀성 데이터가 쉽게 가로채짐 데이터 암호화로 기밀성 보장
데이터 무결성 무결성 보장 불가 데이터 무결성 보장
인증 서버 신원 확인 불가 인증서를 통해 서버 신원 확인 가능
중간자 공격 방지 방지 불가 SSL/TLS로 중간자 공격 방지 가능
사용자 신뢰도 낮음, '안전하지 않음' 표시 가능 높음, 브라우저에서 안전으로 표시
SEO 영향 검색 순위 우선 순위 낮음 검색 엔진에서 더 높은 우선순위
주 사용처 보안이 필요 없는 웹페이지 금융, 전자상거래, 로그인 페이지 등 보안 필요

이 비교를 통해 HTTPS가 보안성과 사용자 신뢰도 측면에서 HTTP보다 훨씬 뛰어나다는 것을 알 수 있습니다. 인터넷 사용 환경의 보안을 위해 HTTPS는 필수적인 요소로 자리 잡고 있습니다.

728x90