[Network] HTTPS, SSL/TLS, 인증서

Fabro·2021년 8월 27일
0
post-thumbnail

HTTP

HTTP(Hyper Text Transfer Protocol)

  • 가장 일반적인 웹 콘텐츠 전송 프로토콜
  • 상태가 없는(stateless) 프로토콜 (상태가 없다는 것은 각각의 데이터 요청이 서로 독립적으로 관리된다는 뜻)
  • stateless라는 특징 덕에 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되기 때문에 성능에 이점
  • TCP/IP 통신 위에서 동작
  • 기본 포트 = 80번

HTTP 보안상의 문제

  • 평문 통신이기 때문에 도청이 가능
  • 완전성을 증명할 수 없기 때문에 변조 가능
  • 통신 상대를 확인하지 않아 위장 가능
    - 의미없는 요청도 수신하기 때문에 DoS 공격 당할 수 있음
    • 통신하는 상대가 허가된 상대인지 확인 불가

HTTPS

HTTPS(Hyper Text Transfer Protocol + Secure Socket Layer)

  • 기본적으로 HTTP와 거의 동일함
  • HTTP 메시지에 포함되는 정보에 보안요소가 추가된 것이 가장 큰 차이
  • 모든 Request와 Response는 네트워크로 보내지기 전에 SSL 계층을 통해 암호화
  • HTTP의 하부에 SSL/TLS의 보안 계층이 추가된 형태

SSL/TLS

SSL(Secure Socket Layer)

  • 1973년 Netscape사에 의해 개발된 통신 규약
  • 응용계층과 전송계층의 사이에서 동작하여 telnet, ftp, http등의 프로토콜의 안전성 보장
  • 서버 인증, 클라이언트 인증, 기밀성 보장
  • 전자상거래 등에 이용
  • 키의 신뢰성 문제 해결을 위해 CA(인증기관) 개념을 도입

TLS(Transport Layer Security)

  • 기존의 SSL보다 보안이 강화된 SSL v3을 표준화해서 붙인 이름
  • TLS의 각 버전은 SSL v3의 각 하위버전과 연결됨
  • SSL v3.1이 TLS의 1.0에 해당하고 이후 SSL의 3.2, 3.3버전이 각각 TLS의 1.1, 1.2버전
  • 현재 대부분의 웹 브라우저는 TLS 1.2버전을 지원

SSL 프로토콜 통신 과정

  1. Client Hello (Client -----------> Server)
    • 지원 가능한 암호방식, 키 교환 방식, 서명 방식, 압축 방식 등을 서버에게 알림
    • 32Byte의 임의 데이터를 추가로 전송(NONCE : 랜덤 생성 토큰)
  2. Server Hello (Client <----------- Server X 2번)
    • 지원 가능한 암호방식, 키 교환 방식, 서명 방식, 압축 방식 등을 클라이언트에게 알림(1회차)
    • 1회차 통신 때 서버도 32Byte의 임의 데이터 추가로 전송(NONCE : 랜덤 생성 토큰)
    • 서버측 공개키가 포함된 인증서를 클라이언트에게 보냄(2회차)
  3. 인증서 확인 및 대칭키 전송 (Client -----------> Server)
    • 서버가 전달한 인증서가 CA(인증기관)에 의해 발급된 인증서인지를 웹 브라우저에 내장된 CA의 리스트와 CA 인증서를 통해 확인
    • 통신에 사용하기 위한 대칭키를 서버의 공개키로 암호화하여 전송
  4. 상호간의 완료 메시지
  5. 비밀키로 서로 암호화 통신

인증서

공개키를 기반으로 하는 알고리즘인 x.509에 따라 만들어진 전자 신분증

인증서 발급 절차

  1. 서버에서 서버 정보와 Publi Key를 인증기관으로 보내 인증요청
  2. 인증기관에서 검증을 거친 후 서버 정보와 Public Key를 인증기관의 Private Key로 암호화하여 인증서를 제작
  3. 서버로 인증서 발급
  4. 인증기관에서 웹 브라우저로 Public Key를 제공해 브라우저에 내장됨
    검색창 옆의 자물쇠를 눌러보면 인증서를 확인할 수 있다
    인증서를 눌러보면 인증 기관과 인증서 정보를 확인할 수 있다

References

profile
엔지니어 유망주의 곡괭이질

0개의 댓글