2022. 12. 13. 17:11ㆍ암호
4장 키관리
1. 비밀키 분배의 어려움
2. KDC 를 이용한 비밀키 분배
3. 공개키의 유용성
4. 공개키 기관에 의한 세션키 분배
5. 공개키를 이용한 세션키 분배
1. 비밀키 분배의 어려움
물리적인 방법으로 전달
- 링크 암호화에서 적용 가능
- 단대단 암호화에서 적용 어려움
이전의 키를 사용하여 암호화된 새로운 키를 전송
- 링크 암호화나 단대단 암호화 모두 적용 가능
- 공격자가 어떤 한 키를 안다면 이후의 모든 키가 노출
제 3자(키 분배 센터)를 통하여 키 분배
- 단대단 암호화에서 널리 채택
- 사용자는 키 분배 센터와 유일한 키를 공유
2. KDC를 이용한 비밀키 분배
KDC 를 이용한 키분배 방법(Kerboros)
*
SK = 세션키
ID(A), ID(B) = 구별하기 위한 신원 정보일뿐 IP나 그런게 아니다.
T : 난수
*
2. KDC를 이용한 비밀키 분배
각 사용자(A,B)는 KDC와 각자 마스터 키를 가지고 있다고 가정
(1) 단계
- 세션키 요구 메시지를 보냄
- 전송 내용 : A와 B의 신원, 신원 정보(ID(A))
(2) 단계
- KDC는 A와 B에게 세션키(SK)와 상대의 신원정보를 각자의 master key로 암호화 하여 배포
- B는 A가 통신을 원한다는 것을 확인
- KA, KB는 KDC와 사용자간의 master키
- T는 time stamp
(3) 단계
- A는 세션키를 이용 ESK[ID(A),T] 를 B에게 전송
- B는 A의 신원을 확인 (T와 ID(A)) (4) 단계 (인증을 위한 추가적인 단계)
- B는 세션키를 이용 ESK[ID(B),T+1] 를 A에게 전송
- A는 B의 신원을 확인 (T+1과 ID(B))
키 분배 센터에서의 키 계층 구조
세션키
- 종단 시스템간의 통신을 암호화하는데 사용되는 임시 키
- 보통 논리적인 연결에 사용된 후 폐기
- 키 분배 센터로부터 획득 : (마스터키를 사용하여 암호화되어 전송)
- 개체가 N일 경우 필요한 세션키 : N(N-1) / 2
마스터키
- 키 분배 센터와 사용자가 공유하는 유일한 키
- 개체가 N일 경우 필요한 마스터키 : N개
3. 공개키의 유효성
공개키의 공개 발표
- 자신의 공개키를 다른 사용자에게 전송 등의 방법으로 공개
- 문제점
- 어떤 사용자가 다른 사용자 A로 위장하여 공개키 공개 (A에 전송되는 암호화 메시지를 읽을 수 있게 됨)
공개적으로 사용 가능한 디렉토리
- 필요한 사항
- 기관은 각 가입자에 대한 {이름, 공개키}의 디렉토리 유지
- 각 가입자는 디렉토리 기관에 공개키 등록
- 가입자는 필요시 새로운 것으로 교체 가능
- 기관은 디렉토리를 공포
- 가입자는 전자적으로 디렉토리 접근 가능
문제점
- 디렉토리 정보를 수정
- 위조의 공개키로 임의의 가입자로 위장하여 도청
4. 공개키에 의한 세션키 분배 : SESAME
(1) 단계
B의 공개키에 대한 요구를 타임스템프와 함께 전송
(2) 단계
공개키 기관은 B의 공개키와 (1) 단계의 메시지를
자신의 개인키로 암호화하여 전송
(3) 단계
B의 공개키를 저장하고, A의 식별자(IDA)와 임시비표(N1)을 B
의 공개키로 암호화하여 전송
(4), (5) 단계
B는 (1), (2) 단계와 같은 방법으로 A의 공개키 획득
(6) 단계
B는 임시비표 N1, N2를 A의 공개키로 암호화하여 전송
(7) 단계
A는 N2를 B의 공개키로 암호화하여 전송
(8) 단계
A는 비밀키 Ks를 선택하여 M=EKUb[EKRa[Ks]]를 B에게 전송
1) *a는 b의 공개키를 기관에게 요청한다.*
2) *공개키 기관이 자신의 개인키로 b의 공개키를 암호화 하여 a에게 보내준다.*
3) *a가b의 공개키로 암호화 된것을 b에게 보내준다
4) *b는 a의 공개키를 기관에게 요청한다.
5) *공개키 기관이 자신의 개인키로 a의 공개키를 암호화 하여 b에게 보내준다.*
6) *b는 a의 공개키로 암호화된 N1,N2난수를 a에게 보내준다.
n2 :난수나 시리얼넘버? 보내준다(신원을 확인하기 위해서)*
7) *a는 b의공개키로 암호화된 N2를 b에게 보내준다.*
8) *a는 b의 공개키로 암호화된 N2를 b에게 보내준다.*
9) *a는 비밀키 ks를 a의 개인키로 암호화하고 b의 공개키로 한번더 암호화한후 b에게 보내준다.*
'암호' 카테고리의 다른 글
암호 - Part 5, 6 (0) | 2022.12.13 |
---|---|
암호 - Part 3 (0) | 2022.12.13 |
암호 - Part 2 (0) | 2022.12.13 |
암호 - Part 1 (0) | 2022.12.07 |