개발조아

HTTP와 HTTPS 본문

CS/네트워크

HTTP와 HTTPS

개발조아 2021. 10. 21. 21:10
728x90
  • HTTP
    • 인터넷 상에서 데이터를 주고받을 때의 통신규약, 프로토콜
    • OSI 7계층 중 응용 계층
    • 요청 메소드
      • GET
        • 리소스 요청
        • URL을 데이터를 담아 전송(쿼리파라미터)
        • 보안 취약
        • URL길이의 제한이 있어 전달할 수 있는 데이터가 적음
      • POST
        • 리소스 전송
          • 데이터 처리 요청 등
        • 데이터를 body에 담아 전송
        • 데이터를 body에 담으므로 상대적으로 안전
        • 데이터 길이의 제한 없으며 객체 형식의 데이터도 전송 가능(Json)
      • PUT
        • 리소스 저장
          • 데이터 저장, 수정 등
        • 데이터를 body에 담아 저장
        • 수정하려는 리소스 없을 시 생성함
      • DELETE
        • 리소스 제거
    • HTTP 상태코드
      • 1xx : 서버가 데이터를 받았고, 클라이언트는 계속 일하라는 의미
      • 2xx : 클라이언트의 요청 성공적으로 처리 완료
      • 3xx : 리다이렉션에 관한 상태
        • 요청한 리소스가 옮겨졌거나 삭제되어 다른 URL로 접근해야하는 경우를 알려주기도 함
        • 요청에 대한 변화가 없어서 캐싱된 정보를 주기도함
      • 4xx : 클라이언트의 요청에 대한 오류
        • 데이터가 없거나 URL이 잘못됐거나, 허용되지 않은 메소드 거나 등등
      • 5xx : 서버 에러
  • 두 시스템간의 텍스트 교환이기 때문에, 신호를 가로채면 정보가 그대로 노출된다
  • HTTPS
    • HTTPS에 보안적 요소를 추가한것
    • 데이터 통신에 SSL 프로토콜을 이용하여 데이터를 암호화하여 저농
  • SSL
    • 통신시 데이터를 암호화해주는 프로토콜
    • 대칭키 암호화방식과 공개키 암호화 방식 둘다 사용
    • 두 시스템 통신시 사용할 대칭키를 공개키 암호화 방식으로 배포
    • 이후 통신은 대칭키로 수행
      • A가 B의 공개키로 통신시 사용할 대칭키를 암호화하여 B에게 전송
      • B는 자신의 개인키로 복호화하여 대칭키 저장
      • B는 받은 대칭키로 A에게 데이터를 암호화해서 전송
      • A는 대칭키로 복호화
      • 이제 둘은 대칭키로 통신
  • SSL 인증서
    • 두 시스템간의 통신을 제 3자가 보증해주는 전자문서
  • 동작
    • 서버가 CA 기업에 대칭키와 암호하화하는 방식들을 가지고 인증서 만들어달라해서 기업의 비밀키로 암호화된 문서를 인증서를 줌
    • 클라이언트가 서버에게 랜덤값과 암호화방식 리스트를 서버에 전송
    • 서버 또한 랜덤키를 만들고 클라이언트가 보낸 암호화 방식과 SSL 인증서를 보냄
    • 클라이언트는 인증서를 받고 브라우저를 통해 안전한 인증서인지 확인 후 공개키 인증서 복호화 수행함
    • 클라이언트와 서버의 랜덤키로 임시 키 생성
    • 임시 키를 인증서에 포함된 공개키로 서버에 전송
    • 서버는 자신의 비밀키로 복호화하여 임시 키 획득
    • 이후 두개의 키를 대칭키 암호화 방식으로 수행

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

대칭키 암호화, 공개키 암호화  (0) 2021.10.21
3 way handshake, 4 way handshake  (0) 2021.10.21
TCP, UDP  (0) 2021.10.21
TCP/IP 4계층  (0) 2021.10.21
OSI 7계층  (0) 2021.10.21
Comments