NetWork | HTTP or HTTPS

DoItDev·2021년 8월 19일
0
post-thumbnail

HTTP

Http 는 Hyper Transfer Protocol 의 약자
인터넷에서 데이터를 주고 받을 수 있는 프로토콜

프로토콜: 컴퓨터와 컴퓨터 간의 통신할때 사용하는 언어
단적인 예로 외국인 과 한국인이 각각의 언어로 대화를 한다면
이해 할 수 없다 하지만 같은 언어를 사용을 하면 대화가 가능하다.
장비와 장비 사이의 통신하는 언어
그리고 인터넷과 인터넷 간의 통신하는 언어
결론적으로 말을 하면 규칙 이라고 생각을 하면 쉽다.

화면 캡처 2021-08-19 092003

HTTP 의 문제점

프로토콜에서 공통되는 문제점 3가지

  • HTTP 는 평문 통신이라 도청 하기 쉽니다.
  • 통신 상대를 확인하지 않기 때문에 위장이 가능하다.
  • 완전성을 증명할 수 없기 때문에 변조가 가능하다.
    TCP/IP 는 도청 가능한 네트워크 이다.
    TCP/IP 구조의 통신은 전부 통신 경로상 엿볼 수 있다.
    패킷을 수집하는 것으로 도청이 가능하다.

그렇다면 보안법은?

  1. 통신 자체를 암호화 SSL or TLS 라는 프로토콜을 조합하여 사용 함으로써
    HTTP 의 통신 내용을 암호화 할 수 있다.
    SSL 을 조홥한 HTTP 를 HTTPS / HTTP over SSL 이라고 부른다.
  2. 콘텐츠를 암호화 말 그래도 HTTP 를 사용해서 운반하는 내용인,
    HTTP 메시지에 포함되는 콘텐츠만 암호화 한다.
    받는 쪽에서 컨텐츠를 복호화 하고 사용을 하면 될것이다.

SSL & TLS

SSL 은 Secure Sockets Layer 의 약자 이다. 인터넷에서 구현될 수 있는 전송 계층의 표준 보안 기술로서
모든 TCP 데이터를 암호화 하고 캡슐화 하는 역할을 한다.
인터넷에서 누군가 보기 때문에 포장하는 용기라고 할 수 있다.
SSL은 오직 TCP 커넥션에 사용하며 수 많은 암호 키(key) 와 인증서 교환 기법 그리고 이렇게 보호된
어플리케이션 데이터 교환이다.
4 계층(전송 계층, TCP) 과 7계층(어플리케이션) 사이에 동작하는 전송계층 보안 프로토콜이다.

TLS 은 Transport Layer Security 의 약자 이다.

HTTPS

HTTPS 는 SSL로 포장한 HTTP 라고 표현할 수 있다.
HTTPS 는 새로은 어플리케이션의 프로토콜이 아니다...
HTTP 통신하는 부분을 SSL / TSL 라는 프로토콜로 대체하는 것 뿐이다.
HTTP 는 보토은 TCP 와 직접통신 하였지만, HTTPS 에서는 HTTP 는 SSL 과 통신 하고 SSL 이 TCP 와 통신하게 된다.
HTTPS 는 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.

HTTPS 사용법?

HTTPS 의 SSL 에서는 공개키 암호화 방식과 공개치 암호화 방식을 혼합한 하이브리드 방식 두가지로 사용이 된다.

551px-공개키암호화

그럼 모든 페이지에 적용하는게 좋은가요?

평문 통신에 비해서 암호화 통신의 경우 CPU/메모리 등 리소스를 많이 요구를 한다.
통신할 때마다 암복호화 작업을 하다보면 과부화가 온다..
그렇기 때문에 대용량 서비스나 대용량 처리가 필요하다면 https 를 권장하지 않는다..
하지만 최근에 하드웨어의 발달로 https 를 사용하더라도 속도 저하가 일어나지 않으며
새로운 표준인 HTTP 2.0 을 함께 사용하면 오히려 HTTPS 가 HTTP 보다 더 빠르게 동작한다.
따라가서 과거의 민감한 정보를 다룰 때만 HTTPS 에 의한 암호화 통신을 했다면
현재는 모든 웹페이지에서 HTTPS를 적용하는 방향으로 가고 있다. 물론 예외도 있다.

about.

참고 블로그
2번 이미지출처

profile
Back-End Engineer

0개의 댓글