비대칭키 암호화 (공개키 암호화)
ssh
로 서버를 접속하기 위해password
를 입력하거나 사전에 준비된 키를 통해 서버에 접속합니다.- 이때 사용하는 SSH-Key 형식이 바로
비대칭키
입니다
Why 비대칭키?
왜 비대칭키를 사용할까요?
- 대칭키를 사용할 경우 양쪽다 같은 키를 배포해야합니다
- 암호화에 쓸 키를 서로 공유해야 하는데, 이 키를 어떻게 안전하게 주고받을지 문제가 생김.
- 이 키를 전송하는 과정에서 해커가 가로채면 > 보안 시스템 무너짐.
비대칭키 방식은 공개키
와 개인키
를 지니고 있습니다 (그래서 공개키 암호화형식이라고도 함.)
비대칭키 플로우
ssh
로 서버에 접속할 때, 해당 플로우 외에도 사전 작업이 존재하지만 본 글에서는 제외.
- 클라이언트는 개인키와 공개키 쌍을 미리 생성하고, 서버에 공개키를 등록해 둡니다.
- 클라이언트가 접속을 시도하면, 서버는 무작위 Challenge 데이터를 생성하여 클라이언트에게 전달합니다.
- 클라이언트는 Challenge 데이터를 자신의 개인키로 서명하여 서버에 전달합니다.
- 서버는 클라이언트가 등록한 공개키로 서명을 검증하여, 클라이언트의 신원을 확인합니다.
어떻게 다른키로 암호화 한 것을 복호화 할 수 있을까?