인터넷을 위한 비대칭키 체계
Last updated
Last updated
대칭키 체계에서 Key 도 암복호화를 할 수 있는 중요한 개인정보인데, 이 정보를 어떻게 안전하게 보낼 것인가?
하지만, 대칭키를 인터넷 환경에서 안전하게 전달하는 방식은 없다 .. -> 효율은 대칭키 방식이 좋지만, 인터넷 환경에서는 사용하면 안된다.
이를 해결하기 위한 방식이 비대칭키 방식이다.
클라이언트와 서버 모두 각각의 비대칭키(Public, Private Key) 를 만든다.
클라이언트 서버 모두 각각의 Public Key 를 공유한다.
공유된 Public Key 를 기반으로 암호화를 진행하고,
암호화된 데이터를 Tunnel 을 통해 송수신한다. -> 해당 방식으로 암호화 된 TCP/IP 세션을 Tunnel 이라고 한다.
클라이언트 서버 모두 각각의 Private Key 로 복호화를 진행한다.
하지만 비대칭키 방식은 컴퓨팅 파워를 상당히 소모하기에 효율적인 방식이라고 볼 수는 없다.
때문에, 대칭키와 비대칭키를 혼합한 방식을 사용하게 되며, 해당 방식은 SSL 인증의 기반이다. -> 여기서 공유되는 대칭키를 Session Key 라고 부른다!
서버는 비대칭키(Public, Private) 를 만든다.
서버의 Public Key 를 기반으로 클라이언트는 대칭키를 암호화한다.
암호화된 대칭키 를 Tunnel 을 통해 송수신한다.
클라이언트 서버 모두 공유된 대칭키를 기반으로 암복호화해 통신한다.
만약 서버의 Public Key 를 해커가 가로채 해커의 Public Key 로 클라이언트에게 전달해준다면,
클라이언트는 해커의 Public Key 로 대칭키를 암호화해 서버에게 요청을 보내게 된다.
요청을 보내는 중간에 해커는 암호화 된 대칭키를 확인하고 서버의 Public Key 로 다시 암호화 후 서버에 전달해준다.
위의 상황이 완성된다면, 해커는 중간에서 클라이언트와 서버의 모든 송수신 정보를 도청할 수 있다!