HTTPS
JeongSeulho
2023년 07월 21일
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 사이트와 브라우저는 대칭키
를 공유하게 되고 이후 통신은 대칭키
를 사용하여 암호화된다.