Https

Choco·2024년 4월 18일
1
post-thumbnail

HTTPS(Hypertext Transfer Protocol Secure)

HTTP의 보안 취약점을 보안하기 위해 SSL/TLS를 사용하여 암호화하여 데이터를 전송하는 방법.

SSL(Secure Sockets Layer)

웹 서버와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 프로토콜.

  • 대칭키 & 공개키/개인키 기반으로 사용

대칭키

한 키를 이용하여 암호화&복호화를 수행한다.
1. client에서 데이터를 대칭키로 암호화하여 server에 전송
2. server에서는 해당 데이터를 대칭키로 복호화
3. server에서 응답값을 대칭키로 암호화하여 client에 전송
4. client에서 대칭키로 복호화

공개키/개인키

두 키를 이용하여 암호화&복호화를 수행한다.
공개키로 암호화 하면 개인키로만 복호화 가능
개인키로 암호화 하면 공개키로만 복호화 가능

대칭키 & 공개키

  1. client에서 server로 접속 요청을 보낸다.
  2. server에서 client에게 공개키를 전송.
  3. client에서 공개키를 통해 Client 대칭키를 암호화하고 server에 전송.
  4. server에서 개인키를 통해 Client 대칭키를 복호화.

CA(Certificate Authority)

인증기관
1. server에서 CA에게 사이트 정보와 사이트 공개키를 전송
2. CA에서 CA 개인키를 사용하여 인증서(사이트 정보,사이트 공개키)를 암호화하고 전송
3. CA에서 client에게 CA 공개키를 전송(브라우저 내장)

Client가 https 사이트에 접속하려면..

  1. client가 server에 접속 요청을 하면 CA 인증서 반환
  2. client는 인증서를 CA 공개키로 복호화 하여 사이트정보 & 사이트 공개키 획득
  3. 대칭키 & 공개키
profile
주니어 백엔드 개발자 입니다:)

0개의 댓글