728x90
이 두가지 방법은 TLS의 경우에도 사용하고있다.
- (공개키 사용 방법) 클라이언트가 서버에 접속을 하고싶다고 서버에 말을 하면, 서버가 “내가 진짜 서버다” 라고 인증을 하는데 그 과정에서 공인인증서를 사용자에게 준다. 그러면 사용자는 서버의 공개키를 받고 그 공개키로 대칭키를 만들 수 있다. 그래서 대칭키를 만들어서 서버한테 안전하게 전달시켜준다. 안전하게 서버에게 전달하는 과정은, 클라이언트가 아까 받았던 서버의 공개키를 사용해서 대칭키를 암호화 시켜서 보낸다. 이렇게 하면 암호화된 내용은 누구든지 볼 수 있지만 서버에 개인키가 없으면 대칭키를 복호화할 수 없다. 오로지 서버만이 이 메시지를 복호화할 수 있다. 그래서 서버는 클라이언트가 만든 동일한 세션키를 가질 수 있게 된다.
- (Diffe-Hellman 방법) 클라이언트가 서버에 접속을 하고싶다고 서버에 말을 하면, 서버가 “내가 진짜 서버다” 라고 인증을 하는데 그 과정에서 공인인증서를 사용자에게 준다. 그러면 서버가 자신의 비밀값을 만든다. 그래서 Diffie-Hellman 파라메터를 클라이언트에게 전달하고, 클라이언트도 자신의 비밀값을 만든다. 그리고 클라이언트도 Diffie-Hellman 파라메터를 서버에게 전달한다. 그래서 클라이언트와 서버는 각자 받은 값(Diffie-Hellman 파라메터)과 각자의 비밀값을 가지고 계산을 하면은 둘만이 공유하는 비밀값이 되겠고, 계산해서 나온 값을 이용해서 세션키 혹은 다른 키를 이용해서 사용한다.
'서버 > 암호' 카테고리의 다른 글
TLS Handshake 프로토콜 (4 단계) (0) | 2021.03.21 |
---|---|
TLS Handshake 프로토콜 (3 단계) (0) | 2021.03.21 |
TLS Handshake 프로토콜 (2 단계) (0) | 2021.03.21 |
TLS Handshake 프로토콜 (1 단계) (0) | 2021.03.21 |
TLS의 절차 (0) | 2021.03.20 |