본문 바로가기
얼리어답터 리뷰/IT정보

Public Key Infrastructure (PKI)

by 엔돌슨 2007. 10. 30.
반응형
Public Key Infrastructure (PKI)

요즘 IT관련지를 들여다 보면 빠지지 않고 등장하는 것이 VPN, 무선네트워크, PKI 등의 용어일 것이다. 하지만 대부분의 독자들은 그러한 용어들에 대해서는 약간의 거부감을 가지고 있을 것이다. 불과 몇 년전까지만 하더라도 신경도 쓰지 않았을 뿐더러 관련업체들도 상당수는 불과 2~3년 정도의 신생기업인 경우가 많다. 그만큼 국내에서는 짧은 시간을 두고 급속도로 시장이 활성화되고 있는 기술인만큼 우리가 접할 수 있는 기간 역시 상대적으로 아주 짧았다는 데서 어려움을 먼저 느끼기 때문이라고 생각된다.

PKI를 이해할 때는 이것을 하나의 기술로 이해하기보다는 하나의 커다란 ‘인프라’라고 이해할 필요가 있다. 전자상거래, 인터넷 뱅킹, 기밀 데이터의 보호, 사용자의 인증 등 안전한 데이터전송을 필요로 하는 수많은 분야에서 PKI기반의 보안이 구현되고 있고 이것에 대한 수요는 향후 보다 급속도로 확산될 것이 분명하다.

데이터를 보호하기 위한 기본적인 생각은 제3자는 읽을수 없도록 데이터를 암호화하자는 것이다. 필자는 독자들에게 ‘암호학’에 대해서 이야기 하자는 것이 아니다. 암호학에 관련한 내용은 필자도 모른다. 다만 암호화기술이 어떤 기본 알고리즘을 가지고 있고, 어떻게 네트워크 환경에 적용되어 사용되는지, 그리고 어떻게 당신이 관리하는 회사에서 응용을 할 수 있을 것인지에 대해 알아보자는 것이다. 기본 알고리즘 역시 몰라도 구현하는데는 큰 지장이 없지만, 서두에서 말했듯이 우리에게 비교적 생소한 기술이기 때문에 막연히 툴을 이용하여 구현하고자 한다면 상당히 어렵고 구현을 하고서도 ‘내가 도대체 지금 무슨 작업을 한 거지?’라는 의문을 가지게 될 것이다.

암호화(Encryption)의 역할

암호화가 왜 필요한가? 이것이 하고자 하는 목표는 뚜렷하다. A가 B에게 데이터를 전송할 때 이 데이터는 B가 아닌 다른 어느 누구도 들여다 봐서는 안된다는 것이다. 그것을 만족시키기 위해서는 A와 B만이 알고 있는 방법을 이용해서 원본 데이터를 ‘위장’할 필요가 있다. 제3자는 A가 보내는 데이터를 네트워크에서 가져갈 수는 있지만 A가 보낸 완전한 원본 데이터를 알아내기에는 역부족이다. 그 방법은 B만이 알고 있기 때문이다.
A가 B에게 보내는 데이터의 종류는 중요하지 않다. A가 B라는 인터넷쇼핑몰에서 물건을 구입하고 자신의 신용카드 번호를 넘겨주는 것일수도 있고, A가 B라는 사용자에게 회사의 기밀을 담고 있는 전자메일을 전송하는 것일수도 있다. 어떠한 성격이든지 상대방이 아닌 다른 사람은 데이터를 열수 없도록 하기 위해서 ‘암호화’가 필요한 것이다.

현재 이러한 암호화가 제공하고자 하는 것, 즉 업계에서 암호화를 통해서 얻고자 하는 요구사항은 크게 4가지로 정리해 볼 수 있다. 잘 정리해 보자. 앞으로의 내용들을 이해하는데 필수적인 사항들이다.

① Confidentiality (기밀성) : Privacy라고도 표현할 수 있다. A가 B에게 데이터를 보낼 때 B가 아닌 어느 누구도 이 데이터를 열어봐서는 안 된다는 것이다.

② Authenticity (신뢰성,신원증명) : A가 B에게 데이터를 보낼 때 데이터를 받은 B는 자신이 받은 데이터가 정말 A가 보낸 것이 맞는지를 보장해야 한다는 것이다. 그러기 위해서 A는 자신의 신원을 B에게 증명할 수 있어야 한다.

③ Integrity (무결성) : 원본 데이터의 훼손이 없어야 한다는 것을 뜻한다. 무결성이 보장된다는 것은 Confidentiality와는 다르다. A가 B로 보내는 데이터를 제3자가 열어볼 수도 있다. 그렇지만 제3자가 데이터를 변조하거나 바이러스 코드를 심었다거나 했을때는 무결성이 깨지는 것이다. B는 데이터를 받고서 A가 보낸 원본과 정확히 일치하는지 판단할 수 있어야 한다.

④ Non-repudiation (부인방지) : 전자상거래를 하는데 A가 B에게 돈을 받고서 오리발을 내민다. 혹은 B가 A에게 물건을 받고서 언제 주문했었느냐고 딴소리를 하고 있다. 이것을 방지할 필요가 있다는 것이다.

암호화를 통해서 위의 4가지 요구사항을 해결해야 한다. 암호화를 한다는 것은 데이터를 통신의 양자간에만 알 수 있는 ‘방법’을 통해서 데이터를 변경시키는 작업을 의미한다. 이때 ‘방법’에 해당하는 것이 바로 ‘키(Key)’이다. 이 Key가 어떻게 사용되는가가 암호화를 이해하는데 가장 관건이 된다. 개념은 단순하다. A는 데이터를 암호화키(Encryption Key)를 이용해서 걸어잠그고(암호화하고), B는 복호화키(Decryption Key)를 이용해서 해독하는 것이다.