99클럽 TIL

99클럽 코테 스터디 29일차 Network HTTPS HTTPS 란

차가리 2024. 6. 17. 15:40
728x90
  • NetWork
    • DNS
      • DNS Resolver
      • DNS란
    • Http Header
      • CORS
      • keep-alive header
      • Persistent Connection, Non-Persistent Connection
      • OSI 7 계층과 각 계층의 구성요소
      • TCP vs UDP
    • HTTPS
      • HTTPS 란

개념

  • HTTPS 는 HyperText Transfer Protocol Secure 의 약자
  • 웹 통신 프로토콜인 HTTP의 보안 버전
  • 데이터의 안전한 전송을 위해 사용됨.
  • 데이터가 전송되는 도중 도청, 중간자 공격, 데이터 변조 등을 방지함.

HTTPS 랑 HTTP 의 차이는?

  1. 보안성
    • HTTP : 데이터를 암호화하지 않고 평문으로 전송하기 때문에 도청 및 데이터 변조에 취약함.
    • HTTPS : SSL/TLS 를 사용하여 데이터를 암호화하여 전송하므로 데이터의 기밀성과 무결성을 보장함.
  2. 포트번호
    • HTTP : 기본적으로 80 포트 사용함.
    • HTTPS : 기본적으로 443 포트를 사용함.
  3. 인증서
    • HTTP : http:// 로 시작함.
    • HTTPS : https:// 로 시작함.

S 가 Secure 인거 아는데 어캐함?

  • SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜에 기반함.
  • SSL 은 더 이상 사용되지 않으며, 현대의 HTTPS 는 모두 TLS 를 사용함.
  1. 대칭 키 암호화(Symmetric Key Encryption)
    • 개념 : 동일한 키를 사용하여 데이터를 암호화하고 복호화 하는 방식
    • 장점 : 암호화와 복호화가 빠르고 효율적임.
    • 단점 : 키의 분배와 관리가 어려움.
    • 알고리즘 예시 : AES(Advanced Encryption Standard), DES(Data Encryption Standard)
  1. 비대칭 키 암호화(Asymmetric Key Encryption)
    • 개념 : 공개 키와 개인 키 두 개의 키를 사용함.
      • 공개 키 : 암호화에 사용
      • 개인 키 : 복호화에 사용
    • 장점 : 키 분배 문제가 해결됨. 공개 키를 안전하게 배포 가능
    • 단점 : 대칭 키 암호화에 비해 속도가 느림.
    • 알고리즘 예시 : RSA(Rivest-Shamir-Adleman), DSA(Digital Signature Algorithm)
  2. 해싱(Hashing)
    • 개념 : 데이터를 고정된 크기의 해시 값으로 변환함. 해시는 일방향 함수로, 해시 값을 통해 원본 데이터를 복원할 수 없음.
    • 장점 : 데이터의 무결성 검증에 사용됨. 데이터가 변경되지 않았음을 보장함.
    • 알고리즘 예시 : SHA(Secure Hash Algorithm), MD5(Message Digest Algorithm)
  3. SSL/TLS 핸드셰이크 과정
    • Https 연결을 설정할 때 클라이언트와 서버 간에 SSL/TLS 핸드셰이크가 수행됨.
      1. Client Hello : 클라이언트가 서버에 연결 요청을 보냄. 지원하는 SSL/TLS 버전, 암호화 알고리즘, 임의의 데터(Nonce)를 포함함.
      2. Server Hello : 서버가 클라이언트 요청에 응답함. 선택된 SSL/TLS 버전, 암호화 알고리즘, 서버의 인증서를 포함함.
      3. 서버 인증 및 키 교환
        • 서버는 자신이 인증서를 클라이언트에게 보냄. 인증서는 서버의 공개 키가 포함되어 있음.
        • 서버는 키 교환 방법(Diffie-Hellman 등)을 제안함.
      4. 클라이언트 키 교환
        • 클라이언트는 서버의 공개 키를 사용하여 대칭 키를 암호화한 후 서버에 전송함.
        • 서버는 자신의 개인 키로 암호화된 대칭 키를 복호화하여 세션 키를 얻음
      5. 암호화된 연결 설정
        • 클라이언트와 서버는 대칭 키를 사용하여 암호화된 통신을 시작함.
        • 이후의 통신은 모두 대칭 키 암호화로 보호됨.
  4. 공개 키 인프라(PKI) 와 인증서
    • PKI(Public Key Infrastructure)
      • 공개 키 암호화를 위한 인프라로, 인증 기관(CA) 을 통해 인증서를 발급하고 관리함.
    • 인증서
      • 클라이언트와 서버 간의 신뢰를 보장하기 위해 사용됨. 인증 기관에서 발급한 디지털 인증서에는 서버의 공개 키와 서버 정보가 포함되어 있음.
  5. TLS 버전
    • TLS 1.0 : SSL 3.0 을 기반으로 한 초기 버전, 현재는 사용 x
    • TLS 1.1 : 보안 강화 및 성능 개선, 현재는 사용하지 않음.
    • TSL 1.2 : 많은 보안 강화 기능이 추가된 버전, 현재도 많이 사용됨.
    • TLS 1.3 : 최신 버전으로 보안과 성능이 크게 개선되었음.

장단점

장점

  1. 데이터 보안
    • 암호화 : HTTPS 는 SSL/TLS 를 사용하여 데이터를 암호화함으써 전송 중에 도청 및 변조를 방지함.
    • 데이터 무결성 : 데이터가 전송 중에 변경되지 않았음을 보장함.
  2. 인증
    • 서버 인증 : 클라이언트는 인증서를 통해 서버의 신원을 확인할 수 있음. 이는 피싱 공격을 방지하는 데 도움이 됨.
    • 신뢰성 : 인증 기관(CA)이 발급한 인증서를 통해 사용자는 신뢰할 수 있는 웹사이트에 접속하고 있음을 확인할 수 있음.
  3. SEO 향상
    • 검색 엔진 최적화(SEO) : 구글과 같은 검색 엔진은 HTTPS 를 사용하는 웹사이트를 더 높은 순위에 올리는 경향이 있음.
  4. 브라우저 경고 및 방지
    • 보안경고 : HTTPS 를 사용하지 않는 웹사이트는 현대 브라우저에서 보안 경고를 표시할 수 있으며, 이는 사용자 신뢰를 저하시킬 수 있음.
  5. 사용자 신뢰 증가
    • 보안 인식 : 주소창에 표시되는 자물쇠 아이콘과 https:// 접두사는 사용자에게 사이트가 안전하다는 인식을 심어줌.

단점

  1. 성능 문제
    • 추가 처리 비용 : SSL/TLS 암호화의 복호화 과정은 추가적인 CPU 리소스를 소모함. 이는 특히 트래픽이 많은 사이트에서 성능 문제를 일으킬 수 있음.
    • 지연 시간 증가 : SSL/TSL 핸드셰이크 과정은 추가적인 네트워 크 왕복(RTT)를 필요로 하므로 초기 연결 시간이 증가함.
  2. 비용
    • 인증서 비용 : 신뢰할 수 있는 인증 기관(CA)으로부터 인증서를 발급받는 데 비용이 발생할 수 있음.(다만, Let's Encrypt 와 같은 무료 인증 기관도 있음)
  3. 복잡성
    • 설정 및 유지 관리 : HTTPS를 설정하고 유지 관리하는 과정은 HTTP 보다 더 복잡함. 인증서 갱신, SSL/TLS 버전 관리 등의 작업이 필요함.
  4. 호환성 문제
    • 구형 시스템 지원 : 일부 구형 브라우저나 운영 체제는 최신 SSL/TLS 버전을 지원하지 않을 수 있음. 이는 호환성 문제를 일으킬 수 있음.
  5. 디버깅 어려움
    • 트래픽 분석 : HTTPS 는 데이터가 암호화되어 있기 때문에 네트워크 트래픽을 분석하고 디버깅하는 과정이 더 어려움.
728x90