IT 그리고 정보보안/Knowledge base

공개키의 분배 (Public-Key Distribution)

plummmm 2021. 4. 16. 06:14
반응형

이번엔 공개키의 분배에 대해 알아보자.

공개키 같은 경우는 다른 나쁜놈이 송신자로 속여서 공개키를 전송하면 문제가 생긴다.

이말인 즉슨, 공개키 분배에 문제점이 생긴다 이말이다.

그래서 키 분배 방법이 여러가지 존재한다.

 

1. Public announcement (공개키 공개 발표)

2. Public available directory (공개적으로 사용 가능한 디렉토리를 이용한 분배)

3. Public-key authority (공개키 기관)

4. Public-key certificates (공개키 인증서)

5. Diffie-Hellman Key Distribution (Diffie-Hellman 키 분배)

 

하나씩 알아봅시다.

 

1.Public-key announcement (공개키 공개 발표)

자신의 공개키를 사용하는 집단에 공개적으로 뿌리는 것이다.

PGP (Pretty Good Privacy)이라는 이메일 보안의 표준인데, 발표할 때 사용된다.

 

2. Public available directory (공개적으로 사용 가능한 디렉토리를 이용한 분배)

이건 사용가능한 디렉토리.. 기관은 각 가입자에 대하여 디렉토리를 생성하여

{ ID, KUid } 즉, { 사용자, 공개키 } 형식으로 유지한다.

 

가입자들은 기관에 자신의 공개키를 등록하고, 기관은 디렉토리를 공개한다.

필요시에 얼마든지 내용을 수정할 수 있는데, 이게 단점이 된다.

위조된 공개키를 임의의 가입자로 위장하여 수정할 수 있기때문이다.

 

 

3. Public-key authority (공개키 기관)

요건 공개키 기관을 이용하는 것이다. 공인된 기관에서 공개키를 분배하고 제어하는 것임.

 

(1) A가 B의 공개키에 대한 요구를 타임스탬프 값과 함께 기관에 전송한다.

 

(2) 공개키 기관은 B의 공개키와 1단계의 메세지를 기관의 개인키로 암호화하여 전송

 

(3) A는 B의 공개키를 저장해두고 A의 식별자(IDa) 와 임시 비표(N1)을 B의 공개키로 암호화하여 전송한다.

 

(4),(5) B는 1,2단계와 같은 방법으로 A의 공개키를 획득한다.

 

(6) B는 임시비표(N1, N2)를 A의 공개키로 암호화 하여 전송한다.

 

(7) A는 N2를 B의 공개키로 암호화하여 전송한다.

 

아이고 뭐가 복잡다. 그래도 하나하나 따져보면 그리 어려운 내용은 아니다.

다음은 공개키 인증서를 알아보자.

 

 

4. Public-key certificates (공개키 인증서)

이것은 공개키 기관에 의존하지 않고 자기네들 끼리 인증서를 이용하여 키교환을 하는 것이다.

인증서를 이용하는데.. 이 인증서에는 {ID, KUid, SignCA} 가 요구된다.

신원, 공개키, 인증서 정당성 등이 확인이 되어야 한다는 말임.

 

 

결과적으로 말하자면, 마치 기관에서 독립된것처럼 말했지만 CA(Certificate Authority)라는

인증서 관기 기관에서 인증서를 받아야 한다.

그리고 난후 그 인증서를 이용하여 공개키를 전송한다.

 

여기랑 PKI(public key infrastructure, PKI)라는 

공개 키 암호 방식을 바탕으로 한 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는

놈이 있는데, 얘를 이용하여 인증을 받음

 

 

5. Diffie-Hellman Key Distribution (Diffie-Hellman 키 분배)

저번에 한번 이름이 나온적 있는 사람들이다. 보안 알고리즘이 아니라 키 분배 방식이다.

현재 상용 소프트웨어에서도 많이 사용되고 있다.

이거 좀 복잡한데.. 그냥 거두절미하고 과정부터 설명하겠다.

 

이 분배 방식은 discrete log(이산 로그) 계산의 어려움을 이용한 것이다.

Y = A^x mod q 에서 x는 찾기 힘들다.

 

* p는 소수 g는 발생기라고 치고, x = { 1,2, ... ,p-1 } 에 대해서 x = g^n mod p 인 n이 존재한다.

 

1. A는 임의의 값 a를 선택한다.

2. B도 임의의 값 b를 선택한다.

3. A는 B에게 g^a mod p 를 보낸다.

4. B는 A에게 g^b mod p 를 보낸다.

5. 둘다 g^ab mod p 를 계산한다.

 

여기서 착안할 부분은..

 

라는 점이다.

 

g^a, g^b 를 알고 있더라도 g^ab는 구할 수 없다. 결국은 실제 a와 b값을 알아야만 키값을 알 수 있다.

다만 a, b 값을 해커가 모두 알고 있다면 깨지겠지.

그리고 이건 세션키를 교환하는 데에는 한계가 있다.

반응형