HTTP, HTTPS

지수 🤓·2020년 5월 20일
0

개념 정리

목록 보기
12/17
post-thumbnail
post-custom-banner

HTTP는 웹 서버와 웹 브라우저 사이에 하이퍼텍스트를 전송하기 위한 통신 규약

HTTP의 문제점

  1. 평문 통신이기 때문에 도청이 가능
  2. 통신 상대를 확인하지 않기 때문에 위장이 가능하다.
    상대가 누구인지 확인하는 처리가 없기 때문에 누구나 리퀘스트를 보낼 수 있다. 즉, 누구나 요청을 보낼 수 있다.
  3. 정보가 정확한지 알 수 없기 때문에 변조가 가능하다.

HTTP에 암호화, 인증을 더한 HTTPS

HTTPS

HTTP의 보안 취약점을 해결하기 위해 나왔다.

HTTP에 통신하는 소켓 부분을 SSL라는 프로토콜로 대체하는 것 뿐이다. 그러면서 암호화와 증명서를 이용할 수 있게 된다.

SSL에서는 대칭키 암호화 방식과 공개키 암호화 방식으르 혼합한 하이브리드 암호 시스템을 사용한다.
공개키 암호화 방식은 보안성이 높으나, 컴퓨터 자원을 많이 소모하는 단점이 있기 때문에 HTTPS에선 비교적 자원을 덜 소모하는 대칭키 암호화를 같이 사용한다.

SSL

디지털 인증서라고도 하는 Secure Socket Layer 인증서는 브라우저 또는 사용자의 컴퓨터와 서버 간에 암호화된 연결을 수립하는데 사용한다.

인증되지 않은 사용자의 방해로부터 중요한 데이터를 보호한다.

3가지 키를 사용하여 대칭 세션 키를 만들며 이렇게 만들어진 세션 키는 전송 중 데이터를 암호화하는데 사용한다.

  1. 서버에서는 공개 키의 복사본을 브라우저로 전송한다.
  2. 브라우저에서는 대칭 세션 키를 만들어 서버의 공개 키로 암호화한 다음 서버로 전송한다.
  3. 서버는 대칭 세션 키를 얻기 위해 공개 키를 사용하여 암호화된 세션 키를 해독한다.
  4. 서버와 브라우저에서 대칭 세션 키를 사용하여 전송된 모든 데이터를 함호화 및 해독한다. 브라우저와 서버에만 대칭 세션 키에 대한 정보가 있으며 세션 키는 해당하는 특정 세션에만 사용되기 때문에 채널 보안이 보장된다.

출처

profile
Backend Junior Developer
post-custom-banner

0개의 댓글