HTTPS : 웹 통신 보안 프로세스 이해하기

dmn_nmd·2024년 7월 29일
0

Internet

목록 보기
2/6
post-thumbnail

1. HTTPS HyperText Transfer Protocol secure

  • HTTPS는 보안된 하이퍼텍스트 전송 프로토콜입니다. 이는 웹 브라우저와 웹 서버 간의 통신을 암호화하여 데이터의 기밀성, 무결성, 그리고 인증을 제공합니다.
  • HTTPS에서 SSL/TLS 프로토콜을 사용하여 클라이언트와 서버 간 통신을 보호합니다. 이 프로토콜은 핸드셰이크 과정을 통해 시작되며, 이 과정에서 공개키(비대칭키) 암호화를 사용하여 인증과 초기 키 교환을 수행합니다. 그 후 실제 데이터 전송에는 협의된 대칭키 암호화를 사용합니다.

2. SSL / TLS

  • 인터넷에서 데이터를 안전하게 전송하기 위해 사용되는 암호화 프로토콜입니다.

SSL Secure Sockets Layer

  • 초기에 넷스케이프에 의해 개발된 프로토콜입니다.
  • 현재는 더이상 사용하지 않습니다.

TLS Transport Layer Security

  • SSL의 업그레이드 버전입니다.
  • IETF* 에서 유지, 관리하는 웹의 보안 암호화를 위한 새로운 프로토콜
    - IETF(Internet Engineering Task Force): 인터넷의 기술 표준을 개발하고 촉진하는 국제적인 비영리 단체

3. HTTPS의 주요 보안 기능

기밀성 Privacy

  • 제 3자가 통신 내용을 읽을 수 없게 합니다.

무결성 Integrity

  • 데이터가 전송 중에 변경되지 않았음을 보장합니다.

식별 Identification

  • SSL/TLS 인증서로 웹 사이트의 신원을 확인합니다.

4. 암호화 메커니즘

대칭키 암호화

  • 동일한 키로 암호화하고 복호화합니다.
  • 키 공유가 어렵습니다.

공개키 암호화

  • 받는 사람의 공개키를 사용하여 암호화합니다.
  • 받은 사람은 자신의 개인키로 복호화합니다.

5. CA Certificate Authority

  • CA는 디지털 인증서를 발급하는 신뢰할 수 있는 제3자 기관입니다.
  • 핸드셰이크 과정에서 서버는 CA에서 발급 받은 디지털 인증서를 클라이언트에게 제공합니다.

6. HTTPS 핸드셰이크 프로세스

  • TLS 연결이 시작될 때 클라이언트와 서버는 '핸드셰이크'를 수행합니다.
  1. 클라이언트가 서버에 암호화 방식 목록, 랜덤 값을 전송합니다.
  2. 서버는 암호화 방식을 선택하고, 자신의 공개키가 포함된 TLS 인증서와 랜덤 값을 전송합니다.
  3. 클라이언트는 공개키를 사용해서 서버 신원을 확인합니다.
  4. 클라이언트는 pre-master secret을 생성하고, 서버 공개키로 암호화하여 서버에 전송합니다.
  5. 서버는 개인키로 복호화하고, 서버와 클라이언트는 pre-master secret으로 master secret을 생성합니다.
    • Master secret = Pre-master secret + 클라이언트 랜덤 + 서버 랜덤
  6. 최종 세션 키(대칭키) 생성:
    • 세션 키 = Master secret + 추가 매개변수
profile
일잘러가 되어야지

0개의 댓글