1) 정상적인 케이스는 보내는 쪽은 받는 쪽의 공개키를 이용해서 Encryption하고, 받는 쪽은 개인키로 Decryption 함.
2) 보내는 쪽이 개인키로 Encryption하는 경우는
개인키로 암호화하는 주요 용도:
· 디지털 서명 생성: 송신자가 메시지나 문서를 자신의 개인키로 암호화합니다.
· 인증: 개인키로 암호화된 데이터는 해당 공개키로만 복호화할 수 있어, 송신자의 신원을 확인할 수 있습니다.
· 무결성 검증: 공개키로 복호화가 가능하다면, 메시지가 변조되지 않았음을 의미합니다.
· 이 방식은 데이터의 기밀성보다는 송신자의 신원 확인과 데이터 무결성 보장에 중점을 둡니다. 따라서 전자서명 시스템의 기반이 됩니다.
3) 그러면 SSH의 송수신은 어떻게 하는가? 시작은 무조건 내 공개키를 보냄. 공개키를 받아서 암호화해서 보냄.
- 로그인 과정
· 클라이언트가 공개키를 보냄
· 서버는 등록되어 있는 공개키인지 확인, 그렇다면 디지털 서명을 요청함
· 클라이언트는 본인의 개인키로 디지털 서명을 만듦.
· 서버는 공개키를 이용해서 디지털 서명을 확인함
- 대칭키 교환
· 서버는 클라이언트에게 자신의 공개키를 전송합니다
· 클라이언트는 대칭키 알고리즘을 사용해 세션을 위한 비밀키(세션 키)를 생성합니다
· 클라이언트는 이 세션 키를 서버의 공개키로 암호화하여 서버에 전송합니다
· 서버는 자신의 개인키로 받은 데이터를 복호화하여 세션 키를 얻습니다.
· 이후 클라이언트와 서버는 이 세션 키를 사용하여 대칭키 암호화 방식으로 통신합니다.
→ 서버가 보낸 공개키를 이용해서 대칭키인 세션키를 만들어서 암호화해서 보내면 서버는 개인키로 복호화해서 대칭키를 얻음
4) 공인인증서는
공인인증서를 발급 신청할 때 개인키와 공개키를 사용자가 생성해서 사용자 모르게 개인키를 저장하고, 인증기관에 공개키를 제출한 후에 인증기관의 디지털 서명이 된 공개키를 다시 돌려받는 것이 공인인증서라고 생각하면 좀 쉽다.
maeg-kiceiniran-jjQMkJSUTJm2X2OaNW_ODg
댓글