[면접] 네트워크 CS Q&A 정리

YOOJUN·2023년 1월 6일

CS

목록 보기
17/18
post-thumbnail

(CS기초 지식 - 네트워크)

💭 HTTPS

HTTP는 클라이언트 (웹 브라우저) ↔ 서버 사이의 요청/응답 프로토콜

HTTPS는 하이퍼 텍스트 전송 프로토콜 보안, HTTP 프로토콜의 보안 버전

SSL을 사용하면 암호화를 할 수 있고, 통신하려는 상대를 보증할 수 있다.

HTTPS는 SSL(Secure Socket Layer)을 이용한 HTTP 통신 방식

SSL 통신과정

CA(Certificate authority)란?

Client Server 통신에 앞서 Server는 CA에서 인증서를 받는다.

공인된 기관에서 Server가 믿을 수 있는 서버인지 보증하는 SSL 보증서를 발급한다.

자체 CA (사설 CA)로도 SSL 인증서를 발급할 수 있다.

사설 CA도 HTTPS 통신이지만 브라우저 입장에서는 안전하지 않다고 판단한다.

통신과정

Client가 Server에 최초 접속하면서 2가지 정보를 보낸다.

Client가 생성한 random data와 암호화 기법 목록을 보낸다.

SSL에서 사용되는 암호화 기법은 여러가지가 있다.

Server는 Client에게 3가지 정보를 보낸다.

random data

Server가 생성한 random data

Client가 보낸 암호화 기법 중 자신도 사용할 수 있고, 가장 안정된 암호화 기법을 선택
인증서

인증서에는 서비스 정보와 public key를 보낸다.

서비스 정보: 인증서를 발급한 CA, 서비스의 도메인 등등

서비스 정보는 private key로 암호화된 상태

Client는 믿을 수 있는 CA에서 발급한 인증서인지 확인

Browser는 믿을 수 있다고 판단한 CA 기관 목록을 가지고 있다.

공인 CA (믿을 수 있는 CA) / 사설 CA에서 발급한 인증서는 각각 다른 형태로 표시된다.

Client는 실제 CA 기관에서 발급한 인증서인지 확인

Server가 보낸 인증서에는 서비스 정보와 public key가 있다.
private key와 public key는 하나의 쌍을 이룬다.

public key로 암호화 → private key로 복호화

private key로 암호화된 서비스를 public key로 복호화할 수 있다면, 두 key는 pair되고 CA 기관에서 발급한 인증서라고 할 수 있다. 즉, 내가 기대한 서버인지 확인하게 된다.

⇒ 대칭키 방식 (public, private key를 사용하는 암호화 방식)

통신에 사용할 key를 Client와 Server가 공유
⇒ 공통키 방식 (하나의 key를 공유하는 암호화 방식)

premaster secret은 앞서 언급한 random data를 합쳐 생성

public key로 암호화하면 private key로만 복호화할 수 있기 때문에 premaster secret은 안전하다.

premaster secret → master secret → session key

일련의 과정을 거쳐 client와 server는 공통키를 가지게 된다.

공통의 session key로 데이터를 암호화/복호화할 수 있다.


profile
거북이 개발자

0개의 댓글