본문 바로가기
  • 포르쉐타고싶다
인포테인먼트 - development/보안

[보안] ssl 활용

by 지오ㄴl 2020. 3. 16.

SSL이 활용되는 방법에는 크게 두가지가 있다.

1. 서버가 공인된 서버임을 인증(전자서명)

 - CA는 비공개키를 갖고있는데 전자인증을 신청한 서버에게 그 비공개키로 풀 수 있는 공개키를 갖고있는(공개키로 암호화된) 인증서를 서버에게 부여 전달

 - (이 과정에서 서버는 그 공개키에 대한 비밀키도 갖게됨 => 클라이언트와의 소통에서 필요)

 - 서버는 해당 서버를 이용하려는 클라이언트에게 공개키로 암호화된 인증서를 전달

 - 클라이언트(브라우저)는 해당 공개키에 해당하는 CA에게 암호화된 인증서를 전달하고 CA가 비공개키로 풀림을 보여줌으로써 이 서버가 공인된 서버임을 확인시켜줌

 - 클라이언트는 여러 백신을 뚫고 깔끔하게 연결이 가능한 것.

 

2. 정보 보안 전달

 - 인증서를 보내면서 거기에 담겨있는 공개키를 클라이언트가 획득!

 - 클라이언트가 공개키와 자신만의 랜덤데이터를 사용해서 pre master secret을 생성, 서버에게 전달

 - 서버는 공개키에 대한 비밀키를 갖고있었기 때문에 해독하고 master secret으로 전환한 다음,

 - master secret으로 마지막으로 session key를 생성, 클라이언트와 세션 키 교류

 - 앞으로의 클라이언트의 서버를 향한 데이터전송은 session key로 암호화해서 전달, 서버는 공개키로 session key를 복호화

 

 * 그럼 결국 이 세션키는 대칭키의 단점을 그대로 갖고있는거 아닌가?

 => 이 세션은 클라이언트와 서버의 연결이 끝나면 삭제(클라이언트를 브라우저라고 생각하면 연결이 끝나면 삭제, 그 세션을 훔쳤다고 하더라도 그 이후론 무효화되는 것), (한번 클라와 연결될때마다 생성됨)

 - 클라이언트가 서버에게 정보를 전달할 때(로그인 등등) session키로 암호화해서 전달

 

반응형

댓글