정보를 주고 받음에 있어서 보안 기능을 위한 암•복호화를 하는 대칭키, 비대칭키 라는 2가지 방식이 있습니다.
대칭키 란?
- 키가 동일한 암호화 방식, 대칭(동일) 한 키를 기준으로 암•복호화
- 속도가 빠르며, 대용량 암호화에도 적합
- 키가 탈취 당한다면 정보도 같이 탈취될 수 있다, 보안성이 약하다
비대칭키 란?
- 개인키 + 공개키 라고도 불리며, 암• 복호화 할 떄 사용하는 키가 서로 다르게 설정하는 방식
- 서버에서 공개키를 모두에게 공개하며 공개키로 넘어온 데이터는 서버에서만 사용하는 키(개인키) 로만 복호화가 가능하여 정보를 사용할 수 있습니다.
- 보안성이 높다
- 데이터가 많아질 수록 속도가 느리다.
핸드쉐이크 (HandShake) 란
- 클라이언트가 데이터를 보내고 서버가 데이터를 받고 인증서를 같이 첨부하여 클라이언트에 다시 보내서 악수하듯 무작위로 발생한 데이터를 주고 받는 행위를 뜻함
- 클라이언트 (랜덤데이터 발송) <- -> 서버 (랜덤 데이터 + CA 인증서)
- 클라이언트는 서버에서 받아 브라우저에 저장된 CA 인증서 정보를 CA 에게 보내고 CA가 개인키를 통하여 해당 데이터가 인증된 데이터인지 확인하여 준다.
⁎ CA (Certificate Authority)
- 공인된 인증서인지 신뢰 검증을 해주는 인증서 발급 기관
대칭키 + 비대칭키 로 사용되는 경우
- 핸드쉐이크 시 발생하는 무작위 데이터들을 클라이언트에서 조합하여 또다른 무작위 데이터를 공개키로 만든 후 서버와 통신할떄 새로 만든 공개키를 넘긴 후 현재 클라이언트와 연결된 서버에도 공개키를 사용함으로 써 속도가 느려짐을 방지하고 보안적인 측면도 챙길 수 있게 된다.