대칭키 - 비대칭키 암호화

ims·2020년 12월 3일
0

알고리즘

목록 보기
15/23

얄팍한 코딩 사전 HTTPS / 대칭키

https://www.youtube.com/watch?v=H6lpFRpyl14

HTTPS

인증된 보안 기관에 의해 보안이 적용된 통신 규약

대칭키

  • 말 그대로 서버와 클라이언트가 양 쪽이 똑같은 키를 갖고 있는 것. 동일한 key table을 갖고 있으면 암/복호화를 표를 보고 하면 된다.

  • 그러나 이런 대칭키는 중간에 키가 탈취되면 암호화의 의미가 없다.

비대칭키

  • 공개키라고도 불리며, 공개키와 개인키 다른 두가지 키를 이용하는 방법

  • 공개키는 개인키로만 풀리며, 개인키는 공개키로만 풀린다.

A < --- > B

  • 공개키의 진위 여부만 검증할 수 있다면 안전하게 신호를 주고 받을 수 있다.

  • 그러나 한가지 문제가 있는데, 모든 신호를 이렇게 비대칭키로 신호를 주고 받으면 트래픽이 과해진다.

실제 비대칭키 사용

비대칭키 + 공개키

  • Client의 내장 브라우저 (크롬,파이어폭스 등등) 에는 해당 CA의 개인키로 암호화 된 내장 인증서를 갖고 있다.

  • 처음 Server와 Client가 연결될 때는 Client입장에서는 Server를 신뢰하지 못한다.

  • 처음에 Client와 Server는 무작위 data a,b를 주고 받는다. 이 과정을 HandShaking(악수)라고 한다.

  • 무작위 data를 주고 받을 때, 서버는 Client에게 인증서의 공개키, 그리고 서버의 공개키가 포함된 인증서를 보낸다.

  • Client는 인증서를 CA인증서로 풀어본다. CA 인증서는 개인키로 암호화 돼있기 때문에 서버에서 보낸 인증서의 공개키로 풀리지 않는다면 서버는 가짜인 것이다.

  • HandShaking 했을 때 임의의 문자열을 임시키로 만든다.

  • 공개키를 주고 받는 방식에 비공개키 방식이 개입하는 것이다.

  • 같은 data를 갖고 있으므로, 그 값으로 일련의 과정을 통해 같은 키를 만든다. 그 키를 대칭키로 사용한다.

  • 비대칭키를 사용하면 traffic이 너무 과다하기 때문에 공개키를 주고 받는 방식에만 비대칭키 방법을 사용하고, 같은 공개키를 갖고 나서는 공개키를 갖고 신호를 주고 받는다.

요약

  1. HandShaking

  2. CA로 서버 인증서 안의 공개키 검증

  3. 인증서 안의 서버 공개키로 HandShaking data 암호화

  4. 서버에게 보내서 그 키를 공개키로 생성

  5. 생성된 공개키는 오직 둘만 앎으로, 그 공개키로 소통

profile
티스토리로 이사했습니다! https://imsfromseoul.tistory.com/ + https://camel-man-ims.tistory.com/

0개의 댓글