Next-Squad / Interview-Question

주니어 백엔드 개발자 면접 시에 물어볼 수 있는 질문에 대해서 같이 공부하고, 공유하고자 합니다.
169 stars 11 forks source link

[Network] 15. 비대칭키 또는 공개키 암호화 방식은 무엇인가요? #52

Open naneun opened 2 years ago

naneun commented 2 years ago

15. 비대칭키 또는 공개키 암호화 방식은 무엇인가요?

키워드

대칭키, 공개키, 암호화

naneun commented 2 years ago

대칭키 암호화 방식

  1. 암복호화에 서로 같은 키를 사용한다. 따라서, 키를 나누는 과정이 필요하다.
  2. 내가 키로 암호화한 내용을 대칭키를 갖고 있는 다른 사용자가 해당 키로 복호화할 수 있다.
  3. 키의 길이가 짧아 암복호화가 빠르다.

공개키 암호화 방식

  1. 암복호화에 서로 다른 키를 사용한다.
  2. 비밀키는 나 이외의 다른 사용자가 알아서는 안 되는 키다.
  3. 공개키는 누구나 알 수 있도록 공개되어있기 때문에 따로 키를 나누는 과정이 필요 없다.
  4. 내가 비밀키로 암호화하면 공개키를 알고 있는 다른 사용자가 공개키로 복호화할 수 있다
  5. 다른 사용자가 공개키로 암호화하면 나는 비밀키로 복호화할 수 있다.
  6. 키의 길이가 길어서 암복호화가 느리다.

ex) 디지털 서명

ex) HTTPS

서버 측 사전 준비

  1. 서버는 인증기관 (CA) 로부터 인증서를 발급 받기 위해 서버의 정보가 포함된 인증서 발급 요청을 한다.
  2. 인증기관은 서버, 인증기관에 대한 정보 및 서버 측 공개키가 포함된 인증서를 서버에 발급해 준다.

클라이언트의 요청

  1. 클라이언트가 서버에 요청하면 서버는 클라이언트에게 인증기관으로부터 발급 받은 인증서를 발급한다.
  2. 웹 브라우저가 사전에 인증기관의 공개키를 갖고 있기 때문에 이를 통해 클라이언트는 인증서 내의 서버의 공개키를 얻을 수 있다.
  3. 클라이언트는 대칭키를 만든 후 이를 인증서로부터 얻어낸 서버 측의 공개키로 암호화하여 서버에 전달한다.

데이터 교환

  1. 서버는 클라이언트가 전달한 암호화된 대칭키를 받고 이를 비밀키로 복호화하여 대칭키를 얻어낼 수 있다.
  2. 클라이언트, 서버 양측 모두 대칭키를 갖게 되고 이로써, 이후 데이터를 주고 받을 때 대칭키 암호화 방식을 사용할 수 있게 된다.

대칭키 암호화 방식을 사용하는 이유

  1. 대칭키 암호화 방식이 공개키 암호화 방식에 비해 빠르다.
  2. 따라서, 데이터를 전송하는데 있어서는 대칭키 암호화 방식을 사용하기 위해 대칭키를 공개키로 암호화해서 전달한다.