SSL 인증 동작
Last updated
Last updated
먼저 SSL 은 대칭키, 비대칭키를 모두 사용하는 방식이다.
서버가 제공하는 공개키, 서버가 가지고 있는 개인키를 사용하는 방식인 비대칭키 방식을 사용하게되면 보안적으로 탈취 가능성이 낮은 가장 이상적인 방식이 되겠지만, 비대칭키 방식은 많은 컴퓨팅 파워를 소모하는 방식으로 성능적인 문제가 발생할 수 있다.
때문에, 실제 데이터는 대칭키를 사용해 통신을 하고, 대칭키를 공유하기 위해서 보안이 우수한 비대칭키 방식을 사용한다.
클라이언트 / 서버 사이의 3way-hand-shake 를 통해서 서로의 EndPoint가 연결을 확인한다. -> handshake 방식에서, 대칭키 전달을 위한 랜덤데이터, 암호화방식을 서로 공유한다.
서버의 신뢰성을 보장받기 위해서 다음의 과정을 거친다.
클라이언트가 서버에 요청을 할 시, 서버는 인증서를 클라이언트에게 전달한다.
웹 브라우저는 이 인증서를 발급한 CA 가 브라우저에 내장되어 있는지 확인하고,
브라우저에 내장되어 있는 CA 의 공개키를 사용해서 인증서를 복호화한다. -> 여기서 복호화 된다는 것은 서버가 신뢰할 수 있다는 것을 의미한다.
이를 통해서 서버의 신뢰성을 확인할 수 있다.
이전에 handshake 과정에서 공유했었던, 랜덤데이터와 암호화 방식을 사용해서 대칭키를 만들고 획득한 사이트 공개키로 암호화하여 대칭키를 공유한다.
공유된 대칭키를 통해서 데이터를 주고받게 된다.