Infomation_Security

공개키 인증서 인증과정

부산대보금자리 2021. 8. 21. 13:46

앞서 공개키 키 관리 기법과 PKI구조에서 사용되는 x.509 형식에 대해서도 알아보았다.

이제 이런 인증서를 얻는 방법과 인증하는것에 대해 알아보자.

인증서는 기관의 개인키로 서명되기때문에 기관만 modify 할 수 있다.

따라서 공개적인 위치에 두어도 상관이 없다.

현실적으로 생각을 해보자

대한민국의 모든 사람들이 여러개의 기관으로부터 인증서를 발급받는다. 

이것에 대해 인증을 그럼 어떻게 할것인가?

서로 다른 CA로부터 발급받은 인증서는 인증 체인을 통해서 서로 간의 신뢰를 얻을 수가 있다.

 

용어 정리를 하자면 Ca<<a>>라는 것은 ca로부터 받은 a 인증서라는 것이다. 

그리고 a 인증서에는 a id a 공개키가 있다.

예를 보자

만약 내 인증서에 X1<<X2>>이것은 X1의 개인키로 서명된 x2의 인증서를 가지고 있으며 x2의 공개키를 가지고 있는 상태이다.

그럼 이 상태에서 X2<<B>>라는 것이 본다면 

나는 지금 내 인증서는 신뢰할 수 있는 상태이므로 x2<<b>>라는 것에 대해서 x2공개키를 활용하여 b의 공개키를 얻을 수가 있다.

이런 식으로 chain이 만들어진다. 이러한 것을 CA Hierarchy라고 한다.

이해하기 쉽게 그림을 보자. 

나는 A라고 가정하자

X<<A>>이므로 내가 믿을 수 있는 기관은 X이다.

 

X의 공개키를 가지고 X<<W>>또한 신뢰할 수 있고 W의 공개키를 얻었다.

W를 통해 V를 얻는다 V를 통해 Y를 얻는다. Y를 통해 Z를 얻는다.

Z를 통해 B를 얻어서 A와 B는 신뢰할수 있는 키 교환이 되었다.

이제 이렇게 인증서를 이용해서 서로를 어떻게 인증하는지 보자. 

세 가지 방법이 있다.

그리고 이 방법들에서 Nonce라는 걸 쓴다. 이것은 시간에 따라 변하는 parameter로 일종의 난수라고 보면 된다.

일방향 인증이다. 

A() 내용이 a에 의해서 서명이 된다

b가 a의 인증서와 저 서명을 받으면 인증서 내의 공개키를 가지고 verify 한다.

이 방법은 b가 a를 인증할 수 있다.

이번엔 Two-way이다. 

a가 보내는 건 똑같은데 b가 verify 하고 a가 보낸 난수 값과 a의 id를 b의 개인키로 서명해서 b가 보낸다.

즉 서로 인증한다는 것이다.

 

3-way는 이전 방법에서 한 번 더 진행하는 것이다. 

이렇게 하는 이유는 뭘까? 

어떤 시스템이냐 따라 다를 수 있겠지만 주로 네트워크가 좀 복잡하거나 잘 전달이 되지 않을 때 할 수 있겠다.

'Infomation_Security' 카테고리의 다른 글

X.509 인증서란  (0) 2021.08.21
전자서명 기법 정리  (0) 2021.08.20
메세지 인증(MAC)과 해시 함수  (0) 2021.08.20
공개키 키 관리기법  (0) 2021.08.19
공개키 암호와 RSA  (0) 2021.08.19