공개키 인증 ( public key authentication )

hnk1022·2025년 2월 16일

정의

  • 주로 사용자 인증을 위해 사용

  • 두 개의 키(공개키와 개인키)를 사용하여 클라이언트와 서버 간에 상호 인증을 수행합니다

  • 비대칭키 방식 ( 암복호화에 사용하는 키가 서로 다르다 )

  • 공개키 암호화 는 다른 개념

    • 공개키 인증 방식에서 private key로 암호화, public key로 복호화 하는 방식
    • 공개키 암호화 방식에서는 private key로 복호화, public key로 암호화 하는 방식

※ 공개키 인증 방식의 동작 원리

1) 키 쌍 생성 (Public and Private Keys)
먼저, 클라이언트는 공개키와 개인키로 이루어진 키 쌍을 생성합니다.

공개키(Public Key): 서버에 제공되어 인증을 받기 위한 키
개인키(Private Key): 클라이언트가 보유하며, 절대로 외부에 노출되지 않아야 합니다.

2) 공개키를 서버에 등록
클라이언트가 생성한 공개키는 원격 서버에 등록되어야 합니다.

3) 클라이언트가 서버에 연결
클라이언트가 SSH 연결을 시도할 때, 서버는 등록된 공개키를 이용하여 클라이언트가 제공하는 암호화 된 챌린지를 공개키로 복호화하여 챌린지 내용의 일치 여부로 사용자 인증을 시도합니다.

4) 서버의 인증 요청 및 클라이언트 응답 (핵심)
서버가 클라이언트에게 랜덤한 "챌린지"를 생성하여 전송합니다.
클라이언트는 이 챌린지를 자신의 개인키로 암호화하여 서버에 다시 보냅니다.
서버는 클라이언트가 암호화한 챌린지를 자신의 공개키로 복호화하고, 그 결과가 맞는지 확인하여 사용자 인증을 성공시킵니다.

5) 서버 인증 성공
클라이언트가 올바른 개인키를 사용하면, 서버는 이를 인증하고 연결을 허용합니다. 이제 클라이언트는 비밀번호 없이 SSH 세션을 시작할 수 있습니다

장점)
SSH 키를 설정해두면 로그인 할 때마다 패스워드를 입력할 필요가 없어 편리하다

profile
코딩 공부장

0개의 댓글