공개키는 해독에 걸리는 시간을 오래 걸리게 하기 위해 키의 크기를 늘린다.
공개키를 사용하여 통신을 하면 너무 느리기에 대칭키에 속도를 버릴 수는 없다.
그래서 비밀키를 나눠가질 방법에 대해 연구하기 시작했다.
*비밀키 분배의
어려움
물리적인
방법으로 전달
- 링크 암호화에서 적용 가능
# 라우터를 거치지 않기 때문이다.
- 단대단 암호화에서 적용 어려움
이전의
키를 사용하여 암호화된 새로운 키를 전송
- 링크 암호화나 단대단 암호화 모두 적용 가능
- 공격자가 어떤 한 키를 안다면 이후의 모든 키가 노출
제 3자(키
분배 센터)를 통하여 키 분배
- 단대단 암호화에서 널리 채택
- 사용자는 키 분배 센터와 유일한 키를 공유
# 관리 주체가 다르면 키의 관리가 어려워진다.
# 로컬네트워크 - LAN ,외부네트워크 - WAN
# vpn, 라우터를 이용하는 사기업등의 등장으로 LAN과 WAN의 구분이 모호해짐
# 지금은 관리의 주체가 정해진 네트워크는 LAN
# 키관리란 어떻게 비밀키를 나눠갖느냐라는 것이다.
*KDC를 이용한 비밀키 분배
KDC
를 이용한 키분배 방법(Kerboros)
# 실제로 잘 쓰지 않는다. 같은 네트워크가 아니기 때문.
# request 세션키를 달라고 요청
# A, B 는 A와 B가 통신하겟다는 용도 설명
# A와 B가 정상적인 가입자인지 확인한다.
# KDC가 세션키를 만들어줄때 T는 A와 B가 서로를 확인할 수 있는 난수이다.
# ka 로 내용을 암호화한다. ka 는 마스터키
# ID(A) A의 신원정보, ID(B) B의 신원정보
# B는 KB를 이용하여 KDC가 직접 통신하지 않아도 A를 통해서 KDC와 통신할 수 있다.
# SK 세션키
# 커버로스는 비밀키만 사용한다.
방법으로는 커버로스와 세사미
소규모 네트워크(관리를 하는 네트워크)는 커버로스, 인프라는 세사미 사용
세션키를 어떻게 주고 받느냐가 중요하다. 세션키는 모두 비밀키이다.
인프라라는 것은 사회기관망을 말하는것이다.
각
사용자(A,B)는 KDC와 각자 마스터 키를 가지고 있다고 가정
키 분배
센터에서의 키 계층 구조
세션키
- 종단 시스템간의 통신을 암호화하는데 사용되는 임시 키
- 보통 논리적인 연결에 사용된 후 폐기
- 키 분배 센터로부터 획득 :
(마스터키를
사용하여 암호화되어 전송)
- 개체가 N일 경우 필요한 세션키 : N(N-1) / 2
마스터키
- 키 분배 센터와 사용자가 공유하는 유일한 키
- 개체가 N일 경우 필요한 마스터키 : N개
*공개키의 유효성
공개키의
공개 발표
- 자신의 공개키를 다른 사용자에게 전송 등의 방법으로 공개
- 문제점
- 어떤 사용자가 다른 사용자 A로 위장하여 공개키 공개
(A에
전송되는 암호화 메시지를 읽을 수 있게 됨)
공개적으로
사용 가능한 디렉토리
- 필요한 사항
- 기관은 각 가입자에 대한 {이름, 공개키}의 디렉토리 유지
- 각 가입자는 디렉토리 기관에 공개키 등록
- 가입자는 필요시 새로운 것으로 교체 가능
- 기관은 디렉토리를 공포
- 가입자는 전자적으로 디렉토리 접근 가능
- 문제점
- 디렉토리 정보를 수정
- 위조의 공개키로 임의의 가입자로 위장하여 도청
- SESAME
*공개키 기관에 의한 세션키 분배
장점 : 서로 다른 주체에 의해서 관리해도 된다. 공개키 표준 규격이 정해져 있기 때문이다.
믿을 수 있는 공개키 기관이란 돈받는 곳이 믿을 만한 곳이다. ex) 은행?
A와 B는 공개키 기관에 한번은 가야한다. A와 B는 서로 만날 필요는 없다.
A와 B가 공개키를 기관에 등록하면 등록기관의 공개키를 가져온다.
KUb 를 공개키 기관의 비밀키로 암호화해서 A에게 주는 이유는 공개키 기관이 보냈다는것을 입증하기 위해서이다.
A는 N1가 돌아온것을 통해 진짜 B인지 확인한다. - N1 은 A가 만들었기에 가능
*공개키를 이용한 세션키 분배
세션키를 자신의 개인키로 암호화 하고 뒤에 B의 공개키로 암호화한다.
공개키는 언제든 바뀔 수 있기 때문에 항상 재사용하기전에 상태검증을 해야한다.
공개키를 상태검증을 하였을때 아직 유효하다면 인증단계를 스킵한다.
댓글 없음:
댓글 쓰기