참고자료

 

 

# HTTP의 약점

  • 평문(암호화하지 않은) 통신이기 때문에 도청 가능
  • 통신 상대를 확인하지 않기 때문에 위장 가능
  • 완전성을 증명할 수 없기 때문에 변조 가능

 

* 이 약점은 HTTP만이 아닌, 다른 암호화하지 않은 프로토콜에도 공통되는 문제입니다.

 

 

 

 

# TCP/IP는 도청 가능한 네트워크

  • 암호화되어 있지 않은 통신의 약점이 있는 이유는, TCP/IP 구조의 통신 내용은 전부 통신 경로의
    도중에 엿볼 수 있기 때문입니다.

  • 암호화된 통신 내용도 엿볼 수 있다.
    => 네트워크 상을 흐르고 있는 패킷을 수집해서 도청 가능
    => 패킷 캡처인 [Wireshark]라는 툴을 사용하면 HTTP 리퀘스트 리스폰스 내용 취득 가능

 

위 이유 때문에 도청을 막기 보다는 암호화로 정보를 지키는 방법을 사용하고 있습니다.

 

 

 

 

# 통신 암호화

 

HTTP에는 암호화 구조가 없지만, SSL(Secure Socket Layer)이나 TLS(Transport Layer Security)이라는

다른 프로토콜을 조합함으로써 HTTP의 통신 내용을 암호화할 수 있습니다.

 

SSL을 조합한 HTTP를 HTTPS (HTTP Secure)라고 부릅니다.

 

 

 

 

 

# 상대를 확인하는 증명서

  • HTTP에서는 통신 상대를 확인할 수 없다.
    => SSL로 상대를 확인할 수 있다.
    => 상대를 확인하는 수단으로 증명서를 제공하고 있습니다.
  • 증명서는 신뢰할 수 있는 제3자 기관에 의해 발행되고 있습니다.
    그리고 그 증명서를 위조하는 것은 기술적으로 상당히 어렵습니다.

 

 

 

# HTTPS는 SSL의 껍질을 덮어쓴 HTTP

HTTPS는 새로운 애플리케이션 계층의 프로토콜이 아닙니다.

HTTP 통신을 하는 소켓 부분을 SSL이나 TLS이라는 프로토콜로 대체하고 있을 뿐입니다.

 

 

보통 HTTP는 직접 TCP와 통신하지만 SSL을 사용한 경우에는 HTTP는 SSL와 통신하고 SSL이 TCP와 통신하게 됩니다.

 

즉 SSL이라는 껍집을 덮어 쓴 HTTP가 HTTPS인 것입니다.

 

 

  • SSL을 사용함으로써 HTTP는 HTTPS로서 암호화와 증명서, 완전성 보호를 이용할 수 있습니다.
  • SSL은 HTTP와는 독립된 프로토콜입니다.
  • 세계 어느 곳에서도 널리 사용되고 있는 네트워크 보안 기술입니다.

 

그러면 "전부 HTTPS로 하면 좋지 않을까?" 라는 생각을 할 수 있습니다.

 

 

 

# 왜 항상 HTTPS를 사용하지 않을까?

 

그 이유 중 하나는 평문 통신에 비해서 암호화 통신은 CPU나 메모리 등 리소스가 많이 필요하기 때문입니다.

통신할 때마다 암호화를 하면 많은 리소스를 소비하게 됩니다.

 

그 결과 한건당 처리할 수 있는 리퀘스트의 수가 줄어들게 됩니다.

 

그래서 민감한 정보를 포함하지 않는 통신에는 HTTP를 사용하고,

개인 정보 등 민감한 정보를 다룰 때만 HTTPS를 사용합니다.

 

 

나머지 하나는 HTTPS를 사용하기 위해 CA에서 증명서를 구입해야 하기 때문입니다.

결론적으로 기업측에서 비용 부담이 들어 효율적으로 필요한 부분만 HTTPS를 사용합니다.

 

 

 

반응형

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

[HTTP] Requset, Response 메시지의 구조  (0) 2022.01.09
네트워크의 기본은 TCP/IP  (0) 2021.12.21
CORS란?  (0) 2021.12.12
HTTP(HyperText Transfer Protocol)이론 정리  (0) 2021.02.10
GET과 POST의 차이(생활코딩)  (0) 2020.12.03

+ Recent posts