반응형
| 키 관리: 세션 키를 어떻게 저장, 분배, 보관 할 것이냐에 대한 것 * 세션 키(=임시 키): 통신할때 직접 사용하는 비밀 키(통신할 때만 임시적으로 사용 하는 키) |
키 분배 3개의 방식과 KDC의 효율성
| 1.비밀키 분배는 직접 전달(안전하지만 불편) 2.기존 키 활용(간편하지만 연쇄 유출 위험) 3. KDC(중앙 서버를 통한 효율적·대중적 방식)로 나뉜다 특히 KDC는 사용자가 중앙 서버와 연결된 키 하나만 관리하면 되게 함으로써 물리적 한계와 키 관리의 복잡성을 동시에 해결함 |
키 분배 과정

| (1) A의 요청: Request || ID(A), B 클라이언트(A)가 1차 도메인인 KDC에 접속하여 서버(B)와 통신하고 싶다고 요청함 * ID(A) = A의 신원 정보, 1차 로그인을 수행하는 것 (2) KDC의 키 생성 및 전달 1. KDC가 두 주체가 사용할 세션키(SK)를 생성함 2. 전달: A에게 A의 마스터키(KA)로 암호화하여 전달함. 여기서 T(타임스탬프)는 이 요청이 유효한지 구분하는 용도임 B의 마스터키(KB)로 암호화하여 전달함. 여기서 T는 접속하려는 A를 식별하는 용도임 3. 결과 A와 B 모두 동일한 세션키를 안전하게 확보함 (3) A의 신원 확인 A가 KDC로 부터 받은 세션키(SK)로 자신의 신원 (ID(A))과 시간(T)을 암호화하여 서버(B)에 보낸다 (4) B의 응답 B가 세션키(SK)로 응답을 보낸다. 시간(T)에 1을 더해 보냄으로써 서로의 신원을 최종 확인 한다 |
| 보안상 특징 및 문제점 1. 장점: 클라이언트는 1차 도메인(KDC) 로그인만으로 여러 서버(2차 도메인)를 이용할 수 있다 2. 근본적 문제점 (Single Point of Failure): 모든 키 관리와 인증이 KDC에 집중되어 있다. 만약 KDC 서버가 다운되거나 해킹당하면 전체 시스템의 통신이 불가능해진다. 3. 해결책 (이중화/다중화): 시스템의 안정성을 위해 KDC 서버를 2대, 3대 이상 운영하여 사고에 대비한다 |

| (1) A의 B에 대한 공개키 요청 A가 KDC에 B의 공개키를 달라고 요청함. 이때 타임스탬프를 함께 보내 이 요청이 방금 만들어진 요청임을 증명함 (2) A가 B의 공개키 확보 KDC는 B의 공개키(KUb) 와 A의 요청 메시지를 자신의 개인키(KRau)로 암호화해서 보낸다 (3) A의 첫 번째 신원 확인 시도 A는 전달받은 B의 공개키를 저장하고, 자신의 이름(IDA)과 확인용 난수 숫자(N1) 를 B의 공개키로 암호화해서 B에서 보낸다 (4) B에게 A의 공개키 요청 B가 공개키 기관에 A의 공개키를 달라고 요청한다 (5) B의 A의 공개키 획득 기관이 자신의 개인키(KRau)로 A의 공개키(KUa)를 암호화해서 B에게 준다 상호 신원 인증 완료 (6) B가 A의 공개키(KUa)로 A의 질문(N1)에 답하고, 자신의 질문(N2)을 담아 보내는 단계 이다 (7) A가 B의 공개키(KUb)로 B의 질문(N2)에 답하며 인증을 마무리 한다 (8) 세션 키 분배 및 통신 A가 세션 키(Ks)를 자신의 개인키(KRa) 로 서명하고, 다시 B의 공개키(KBb) 로 암호화해서 보내는 최종 단계 이다 |
참고사항
| SSH 세션 키 전달 원리 1. 누구의 키로 암호화 하나? 서버(ex. 리눅스)의 공개키로 암호화함 이유: 서버의 공개키로 잠근 데이터는 오직 서버의 개인키로만 열 수 있기 때문에 교환 과정 (3단계) 1. 키 획득: 클라이언트(ex. putty) 가 서버 접속시, 서버로부터 서버의 공개키를 받음 2. 키 암호화: 클라이언트가 만든 세션 키(대칭 키) 를 서버의 공개키로 암호화해서 서버에 보냄 3. 키 복호화: 서버는 자신의 개인키로 이를 풀어내어 세션 키를 얻음 결과: 이제 양측 모두 동일한 세션 키를 가지게 되어, 이후 통신은 이 키로 빠르고 안전하게 암호화함 예시: PuTTY 접속 시 키 교환 과정 1. 서버 공개키 획득: PuTTY로 서버에 접속하면, 서버가 자신의 공개키를 보낸다 (처음 접속할 때 나오는 "Accept?" 팝업이 이 키를 신뢰할 거냐는 확인창임) 2. 세션 키 생성: PuTTY(클라이언트)가 내부적으로 통신에 쓸 대칭키(세션 키) 를 만듬 3. 서버 공개키로 암호화: PuTTY 는 1번에서 받은 서버의 공개키로 이 세션 키를 잠금 4. 전송 및 복호화: 암호화된 키를 서버로 보냄. 서버는 오직 자신만이 가진 개인키로 이를 풀어내어 세션 키를 확인함 요점 정리 사용되는 키: 서버의 공개 키 암호화 대상: PuTTY가 만든 대칭키(세션 키) 결과: 서버와 PuTTY가 동일한 비밀 키를 공유하게 되어, 이후 모든 명령어 전송이 안전해 진다 |
'Infra & Security Eng > Network & Security' 카테고리의 다른 글
| 0319 Daily Records (0) | 2026.03.19 |
|---|---|
| 전자서명과 전자봉투: 신뢰와 기밀성을 만드는 암호 메커니즘 (0) | 2026.03.19 |
| 암호학(키의 종류와 역할, 공개키 암호화, 전자 서명, 암호화와 전자 서명의 결합 개념과 특징) (0) | 2026.03.18 |
| 개인키 암호화 실습 (0) | 2026.03.17 |
| 암호시스템의 원리와 DES 암호화 과정 완벽 정리 (0) | 2026.03.17 |










