#HTTP

HyperText Transfer Protocol

HTTP란?

HTTP는 웹브라우저(Client)서버(Server)간의 웹페이지같은 자원을 주고 받을 때 쓰는 통신 규약

  • 인터넷 상에서 정보를 주고 받기위한 프로토콜(양식과 규칙의 체계)
  • 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜
  • 암호화되지 않은 방법으로 데이터를 전송한다. (악의적인 감청, 데이터 변조의 가능성)
  • TCP/IP 는 도청 가능한 네트워크 이다

#HTTPS

HTTPS는 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer)프로토콜을 이용하여 웹브라우저(클라이언트)와 서버가 데이터를 주고 받는 통신 규약

  • 보안이 강화된 HTTP
  • Hypertext Transfer Protocol Over Secure Socket Layer의 약자
  • 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다.
  • HTTPS는 HTTP의 하부에 SSL과 같은 보안계층을 제공함으로써 동작한다.

#SSL

  • 클라이언트와 서버간의 통신을 공인된 제3자(CA) 업체가 보증해주는 전자화된 문서

#SSL 인증서의 장점 및 역할

  • 통신 내용이 노출, 변경되는 것을 방지
  • 클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지 확인가능
  • SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.

#SSL에서 사용하는 암호화의 종류

  • 암호 : 텍스트를 아무나 읽지 못하도록 인코딩하는 알고리즘
  • 키 : 암호의 동작을 변경하는 매개변수, 키에 따라서 암호화 결과가 달라지기 떄문에 키를 모르면 복호화가 불가능하다.

#대칭키 암호화 방식

  • 인코딩과 디코딩에 같은 키를 사용하는 알고리즘
  • 단점 : 단점은 발송자와 수신자가 서로 대화하려면 둘 다 공유키를 가져야 한다는 것이다.
  • 대칭키를 전달하는 과정에서 키가 유출이 되면 암호의 내용을 복호화할 수 있기 때문에 위험하다
  • 이를 보완하기 위해서 나온 방법이 공개키 암호화 방식이다.

#공개키 암호화 방식

  • 인코딩과 디코딩에 다른 키를 사용하는 알고리즘
  • A키로 암호화를 하면 B키로 복호화를 할 수 있고, B키로 암호화 하면 A키로 복호화 할 수 있는 방식
  • 인코딩 키 (public key)는 공개되어 있으며 (그래서 공개키 암호방식이라는 이름이 붙었다.) 보통 디지털 인증서안에 포함되어 있다.
  • 디코딩 키는 (secret key)는 호스트만이 개인 디코딩 키를 알고있다.
  • 공개키와 비공개키의 분리는 메시지의 인코딩은 누구나 할 수 있도록 해주는 동시에, 메시지의 디코딩은 비밀키 소유자에게만 부여한다.
  • 이는 클라이언트가 서버로 안전하게 메시지를 발송하는 것을 쉽게 해준다.
  • 단점 : 공개키 암호화 방식의 알고리즘은 계산이 느린 경향이 있다.

#CA (Certificate Authority)

  • 디지털 인증서를 제공하는 공인된 기업 (Certificate Authority 혹은 Root Certificate)