HTTP와 HTTPS

해연·2023년 7월 26일
0

네트워크

목록 보기
5/16

HTTP(Hyper Text Transfer Protocol)

클라이언트와 서버 간 통신을 위한 응용계층 프로토콜
인터넷을 작동시키는 역할

HTTP 통신

사용자가 웹 사이트에 방문하면 사용자 브러우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 브라우저에 HTTP 응답한다.
이 때 데이터를 일반 텍스트로 교환한다.

HTTP 특징

1) 네트워크 통신을 작동하게 하는 기본 기술
2) 80번 포트 사용
3) 평문으로 데이터를 전송하기 때문에 데이터 암호화가 되어 있지 않아 보안에 취약하다
4) 인증서가 필요하지 않다
5) TCP/IP 위에서 작동
6) stateless
=> HTTP 요청이 독립적이므로 이전 요청과 다음 요청이 연결되어 상태를 공유하지 않는다.
=> 서버에 도착할 때마다 해당 요청을 처리하기 위한 모든 정보를 함께 제공한다.
=> 이전 요청과 관련된 정보를 서버에 기억하지 않는다.

HTTP 문제점

HTTP는 암호화되지 않은 데이터를 전송하므로 브라우저에서 전송된 정보를 제 3자가 가로채고 읽을 수 있다. 이러한 이유때문에 HTTPS가 등장하였다.

HTTPS(Hyper Text Transfer Protocol Secure)

브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결 설정
HTTP에 데이터 암호화가 추가된 프로토콜

HTTPS 특징

1) SSL/TLS 프로토콜을 사용하여 데이터를 암호화한다.
2) 443포트를 사용한다.
3) SSL/TLS 인증서를 사용하여 서버의 신원을 검증하기 때문에 통신 신뢰성을 확보한다.
4) SSL 위에 HTTP를 얹어서 보안이 보장된 통신 방식인 SSL 암호화 통신이라고 한다. 이 통신은 공개키 암호화 방식이다.
5) 검색엔진 최적화(SEO)

HTTPS 작동 순서

  1. 사용자 브라우저의 주소 표시줄에 https://URL 형식을 입력하여 HTTPS 웹사이트에 방문
  2. 브라우저는 서버의 SSL 인증서를 요청하여 사이트의 신뢰성을 검증하려고 시도
  3. 서버는 퍼블릭 키(공개키)가 포함된 SSL 인증서를 회신으로 전송
  4. 웹 사이트의 SSL 인증서는 서버 아이덴티티를 증명
    브라우저가 공개키를 사용하여 비밀 세션키가 포함된 메시지를 암호화하고 전송
  5. 웹 서버는 비밀키를 사용하여 메시지를 해독하고 세션 키를 검색
    세션 키를 암호화하고 브라우저에 승인 메시지 전송
  6. 브라우저와 웹 서버 모두 동일한 세션 키를 사용하여 메시지를 안전하게 교환하도록 전환

공개키(비대칭키) 암호화 방식

암호화와 복호화에 사용하는 키가 서로 다른 암호화 방식

  • 특정 사람만 가지는 개인키(비밀키) / 누구나 가질 수 있는 공개키
    • 개인키로 암호화하면 공개키로 복호화를 해야하고 개인키로 복호화하면 공개키로 암호화 해야한다

절차

1) 송신자는 수신자의 공개키를 구한다.
2) 송신자는 수신자의 공개키로 평문을 암호화한다.
3) 송신자는 암호화된 메세지를 상대방에게 전달한다. 메세지는 암호화되어 있기 때문에 전달 도중에 유출되거나 도청이 되더라도 암호문으로부터 원문을 알아내기 어렵다.
4) 수신자는 자신의 비밀키로 암호화된 메세지를 해독해서 평문을 얻는다.


참고
https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
https://mangkyu.tistory.com/98
https://brunch.co.kr/@hyoi0303/10
https://devjem.tistory.com/3
https://raonctf.com/essential/study/web/asymmetric_key

profile
물음표를 느낌표로 바꾸며 성장하는 예비 백엔드 개발자입니다.

0개의 댓글