Tech

Diary

Lecture

개발중

About Me

개발중

HTTPS

JeongSeulho

2023년 07월 21일

준비중...
클립보드로 복사
thumbnail

0. 들어가며

인프라를 구축하면서 SSL 인증을 받을지 결정하기 위해 HTTPS의 동작 방식에 대해 알아보았다.

1. 대칭키 방식

대칭키 방식은 암호화와 복호화에 같은 키를 사용하는 방식이다.
송신자는 키를 사용해 데이터를 암호화하여 수신자에게 전송하고, 수신자는 키를 사용해 데이터를 복호화한다, 간단하고 컴퓨터의 연산량이 적다. 하지만, 대칭키 방식은 키를 공유해야 하기 때문에 키를 어떻게 안전하게 공유할 것인가가 문제가 된다(키 배송 문제).

2. 공개키(비대칭키) 방식

공개키 방식은 암호화와 복호화에 다른 키를 사용하는 방식이다.
송신자는 수신자의 공개키를 사용해 데이터를 암호화하여 수신자에게 전송하고, 수신자는 자신의 개인키를 사용해 데이터를 복호화한다, 복잡하고 컴퓨터의 연산량이 많다는 단점이 있다. 아래에서는 실제 HTTPS 통신이 어떻게 이루어지는지 알아보자.

3. HTTPS 발급 부터 사용까지

(1) 인증서 발급 신청

A 사이트가 인증기관에게 본인들의 사이트 정보와 사이트 공개키를 보내고 인증서 발급을 요청한다.

(2) 인증서 생성 및 발금

인증기관은 사이트의 정보와 사이트 공개키를 인증기관이 보유한 인증기관 개인키로 암호화하여 인증서를 생성하고 A 사이트에게 인증서를 발급한다.

(3) 브라우저에 인증기관 공개키 등록

인증 기관은 사용자들의 브라우저에 인증기관 공개키를 등록한다.

(4) 사용자의 A 사이트 접속 요청

사용자가 A 사이트에 접속하면 먼저 handshake를 통해 A 사이트의 인증서를 전달받는다.

(5) 인증서 검증

브라우저는 인증서를 전달받으면 인증기관의 인증기관 공개키를 사용해 인증서를 복호화한다.
이때 복호화가 성공하면 인증서가 검증된 것이며 복호화 하면 사이트 공개키를 얻을 수 있다.

(2)단계에서 인증서는 인증기관의 인증기관 개인키로 암호화되었기 때문에 인증기관 공개키로 복호화할 수 있다.

(6) 사이트 공개키를 사용하여 대칭키 공유

이렇게 얻은 사이트 공개키를 사용하여 통신할 수 있지만 공개키 방식은 연산량이 많기 때문에 대칭키 방식을 사용한다.
대칭키 방식에서 있던 문제인 키 배송 문제를 공개키 방식으로 해결한 것이다.
A 사이트와 브라우저사이 공유할 대칭키를 생성하고 브라우저는 이 대칭키사이트 공개키로 암호화하여 A 사이트에 전달한다.

(7) 사이트에서 개인키를 사용하여 대칭키 복호화

사이트에서는 사이트 개인키를 사용하여 브라우저로부터 전달받은 대칭키를 복호화한다.
이렇게하면 A 사이트와 브라우저는 대칭키를 공유하게 되고 이후 통신은 대칭키를 사용하여 암호화된다.

출처
10분 테코톡 다니얄팍한 코딩사전