[백업][가리사니] ssl / tls 구동원리
certificate, crypt

이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.

SSL / TLS 구동원리를 정리해보았습니다. 잘못된 부분이 있으면 알려주세요 고치겠습니다.

주체

서버, 인증기관, 유저

- 사전작업

  1. 서버공개키, 서버개인키 만듬.
  2. 인증기관에 서버정보, 서버공개키 전송.
    • 인증기관은 서버정보, 서버공개키 로 인증서 만듬.
    • 이때 인증기관개인키 사용.

- 작동

  1. 유저가 서버에 접속요청 인증서, 서버공개키를 받아옴
  2. 유저가 인증기간공개키를 통해 인증서를 해독.
  3. 유저가 해독된 인증서안의 서버공개키와 서버로부터 받은 서버공개키를 대조.
    • 웹브라우저에선 이 과정에 문제가 있을 경우 [신뢰할 수 없는 페이지] 경고를 보여줌.
    • 다른 언어에서는 익셉션 오류가 나며 [실무에서도 이문제를 해결하지 않고… 그냥 인증무시하는경우도 있지만… 근본적으로 추천하지 않음….]
  4. 유저가 대칭키를 만듬.
  5. 유저가 인증서에서 해독된 서버공개키를 가지고 대칭키를 암호화함.
  6. 서버는 유저에게 받은 정보를 서버개인키로 해독.
  7. 서버와 유저는 대칭키로 암호화 통신을 함.