약간 다르게 작동하는 2 개의 시나리오 :
시나리오 1 :
SSL을 사용하여 HTTPS를 통해 웹 페이지 (서버)에 액세스하는 웹 브라우저 (클라이언트).
서버에는 두 키가 모두 포함 된 .PFX 파일이 있습니다. 클라이언트는 서버의 웹 사이트에 연결하고 서버는 SSL 핸드 셰이크의 일부로 공개 키 (.CER 파일)의 사본을 클라이언트에 보냅니다. 그런 다음 클라이언트는 "SESSION-Key"를 생성하고 서버에서받은 공개 키를 사용하여 암호화합니다. 그런 다음 세션 키가 서버로 다시 전송되고 해독되어 진위를 확인합니다. 성공적으로 성공하면 클라이언트와 서버 모두 대칭 암호화를 사용하여 통신하기 위해 "세션 키"를 공유합니다 (즉, 클라이언트와 서버 모두 이제 동일한 세션 키를 사용하여 서로간에 모든 메시지를 암호화하고 해독합니다. 주소 표시 줄에 URL을 입력하고 웹 페이지가 나타나는 시간 사이에 웹 브라우저의 배경에서 수행됩니다.
시나리오 2 :
응용 프로그램 (클라이언트)이 SSH를 사용하여 FTP 사이트 (서버)
또는
원격 데스크톱 (클라이언트 대 서버)에 연결합니다
(두 예제 모두 적용됨).
이 시나리오에서는 모두 클라이언트와 서버가 됩니다 자신의 개인 및 공개 키 쌍을
(서버가 두 키를 가지고 있으며, 클라이언트는 공개 키가있는 경우에만 설명하는 것이,이 스레드에서 언급 된 다른 예는 달리)
이제 설명을 위해 키 쌍에 다음과 같은 레이블을 지정합니다.
A1 및 A2 = 각각 서버 개인 및 공개 키로
B1 및 B2 = 각각 클라이언트 개인 및 공개 키로
이 모델을 사용하여이 스레드의 이전 게시물은 서버에 A1 및 A2 ( .PFX 파일 )가 있고 클라이언트와 A2 ( .CER ) 사본 만 공유하는 경우에 대해 설명했습니다.
FTP 또는 SSH 연결 (다른 예가 있음)은 전체 클라이언트-서버 통신에서 A1 , A2 , B1 및 B2 키로 구성됩니다. 예를 들어
-클라이언트가 FTP 서버에 연결합니다.
-서버는 클라이언트에게 공개 키 (A2)의 사본을 보냅니다.
-클라이언트는 자체 공개 키 (B2)를 서버로 다시 보내 핸드 셰이크를 완료합니다.
-이제 비대칭 암호화를 사용 합니다.
서버는 이제 A1 , ( 자체 비공개 ), A2 ( 자체 공개 ), B2 사본 ( 클라이언트 공개 )
클라이언트는 이제 B1 , ( 자체 비공개 ), B2 ( 자체 공개 ) 및 A1 사본 ( 서버의 공개 )
클라이언트-서버 통신 :
클라이언트는 A2 (서버 공개 키)를 사용하여 서버에 바인딩 된 메시지를 암호화하고, 서버는 A1 (서버 개인 키)을 사용하여 메시지를 암호화합니다.
서버-클라이언트 통신 :
서버는 B2 (클라이언트 공개 키)를 사용하여 클라이언트에 바인딩 된 메시지를 암호화하고, 클라이언트는 B1 (클라이언트 개인 키)을 사용하여 메시지를 해독합니다.
.CER 및 .PFX 파일 유형과 관련하여 서버에는 조직 외부에 배포해서는 안되는 자체 .PFX가 있습니다. 대신 .CER 파일을 클라이언트에 배포해야합니다.
자세한 정보는 여기에서 찾을 수 있습니다 :
https://www.digicert.com/ssl-cryptography.htm
그리고 여기 :
/server/107433/why-does-a-ssh-public-key-sit-on-the-server-and-not-with-the-client