TIL

[모의 면접 준비] 대칭키와 비대칭키

nbcssw 2024. 10. 28. 16:50

대칭키, 비대칭키 암호화

  • 대칭키 암호화는 암호화와 복호화에 동일한 키를 사용합니다. 송신자와 수신자가 같은 키를 알고 있어야 하기 때문에 빠른 암호화와 복호화가 가능합니다. 하지만 키를 수신자와 송신자가 공유해야 해서, 공유하는 과정에서 키가 노출될 위험이 있습니다.
  • 비대칭키 암호화는 암호화와 복호화에 서로 다른 키를 사용합니다. 공개키와 개인키라는 두 가지 키를 사용하는데, 공개키는 이름 그대로 모두에게 공개되어 있는 키고, 개인키는 개인이 비밀로 가지고 있는 키입니다. 공개키로 암호화한 데이터는 오직 해당 개인키로만 복호화 할 수 있고, 개인키로 암호화한 데이터는 공개키로만 복호화할 수 있습니다. 대칭키를 사용하는 방식보단 보안성이 좋지만, 속도가 더 느립니다.

대칭키/비대칭키 혼합 사용

  • 대칭키와 비대칭키의 장단점을 결합하여, 보안성과 효율성은 둘 다 챙기는 방식입니다.
  • 먼저 대칭키를 생성하고, 생성한 대칭키를 사용해서 암호문들 만듭니다. 다시 이 대칭키를 서버의 공개키로 암호화합니다. 그리고 두 암호문을 서버에 보내고, 서버는 자신의 개인키로 암호화된 대칭키를 복호화하고, 이 대칭키를 통해 암호문을 해독합니다.
  • 이제 서버와 클라이언트가 동일한 대칭키를 공유하게 되었으므로, 앞으로의 데이터 전송은 이 대칭키를 통해서 암호화됩니다.
  • 이러한 방식은 주로 HTTPS에서 사용됩니다.

HTTPS

  • HTTPS는 대칭키/비대칭키 혼합 방식을 통해 웹사이트와 사용자 간에 주고받는 데이터의 보안성을 보장해주는 프로토콜입니다.
  • HTTPS 동작 원리
    • 먼저 클라이언트가 서버에 연결을 요청하면, 서버는 서버의 인증서를 클라이언트에 전송합니다. 이 인증서에는 서버의 공개키와 인증기관의 정보가 포함되어있습니다.
    • 클라이언트는 서버로부터 받은 인증서의 유효성을 확인합니다. 인증서의 만료 날짜나 발급 기관 등을 확인합니다.
    • 이제 클라이언트는 서버와의 통신에 사용할 대칭키를 만들고, 앞서 설명했던 과정을 통해 서버와의 연결을 설정합니다.

'TIL' 카테고리의 다른 글

최종 프로젝트 기획안  (1) 2024.11.13
[모의 면접 준비] 전송 계층 프로토콜  (0) 2024.10.28
Buffer  (0) 2024.10.22
[웹소켓] Chrome_dino 프로젝트 트러블슈팅  (1) 2024.10.07
모의면접 준비  (0) 2024.09.30