IT 그리고 정보보안/Knowledge base

니덤-슈로더 프로토콜 (Needham-Schroeder Protocol)

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

이번에는 키 교환 프로토콜 중 Needham-Schroeder 프로토콜이라는 녀석에 대해 한번 알아보자.

제작자 2명은 이름에 나와있다. 이 두사람이 1978년 대칭키와 trent 개념을 사용하여 제안함.

 

여기선 새로운 기관이 하나 등장한다. KDC(Key Distribution Center) 라는 기관이다.

이름만 보면 딱 직관적으로 키를 분배해주는 기관인 듯 싶다.

어떠한 과정을 거치는지 봅시다.

 

1.  최초 A는 KDC에게 A,B의 아이디 N1(nonce)을 전송한다.

 

2. KDC는 여러가지를 A에게 전송한다.

  - A와 B사이의 세션키

  - B의 아이디

  - N1

  - A와 B의 세션키, A의 아이디를 T와 B의 세션키로 암호화 시킨 값

  - 위 모든 내용을 T와 A의 세션키로 암호화

 

3. A는 B에게 A와 B의 세션키와 A의 아이디를 T와 B의 세션키로 암호화 하여 전송

 

4. B는 A에게 N2를 A와 B의 세션키로 암호화한 값을 전송

 

5. A는 B에게 N2+1 한 값을 A와 B의 세션키로 암호화 하여 전송

 

 

뭐 과정은 대충 이러하다. 

근데 이 Needham-Schroeder 프로토콜에 취약점이 있다. MITM 공격에 취약하다. 세션키를 탈취당하면 노답인데..

그래서 나온 것 방법이 

 

Timestamp 사용

timestamp 값을 키교환시 추가하여 암호화를 시키면 이 문제를 해결할 수 있다.

이 값은 현재 시간을 나타내는 값으로,

이 타임스템프 값으로 세션키가 탈취된 것인지 아닌지 판별할 수 있다.

반응형