VPN의 기능 및 용어
* Data Confidentiality
데이터 기밀성 (Data Confidentiality)은 네트워크를 통과하는 데이터의 내용을 제3자가 보더라도
알 수 없도록 하며 원래 데이터를 받을 사람만이 알 수 있도록 하는 것이다. 이는 사전에 공유한
키를 사용하여 데이터를 암호화함으로써 가능하다. 그러나 이 방법은 키가 노출될 경우 문제가
심각해지므로 이를 위해 안전한 키의 분배가 필요하다. 이러한 키의 안전한 관리 메커니즘으로
IKE(ISAKMP/OAKLEY) 프로토콜을 사용한다.
* Data Integrity
데이터 무결성 (Data Integrity)은 네트워크를 통해 전달되는 데이터가 중간에서 변조되지 않았음을
보장한다. 그래서 A가 B에게 메일을 보냈을 때 중간에 제3자인 C가 메일의 내용을 조금이라도 변조할
경우 원래의 메일을 받게 되는 B는 그 내용이 변조되었음을 알 수 있게 된다. 이것은 VPN이 암호화
및 전자서명(Digital Signature) 방식으로 통신하기 때문이다.
* Data Origin Authentication
데이터 근원 인증(Data Origin Authentication)은 네트워크를 통해 데이터를 보낸 자가 누구인지
인증하는 것이다. 예를 들어, 원래는 A가 B에게 메일을 보내는데 중간에 제3자인 C가 자신이 A인
것처럼 속이고 보낸다 하더라도 그 데이터가 A에서 오지 않았음을 확인할 수 있다. 이것이 가능한
이유는 통신을 하고자 하는 당사자들끼리 공유한 키를 다른 제3자가 알지 못한다는 가정을 하였기
때문이다. 따라서 메시지의 근원을 인증 할 수 있다.
*접근 통제(Access Control)
접근 통제(Access Control)는 인증된 사용자에 대해서만 접근을 허가하는 서비스이다. VPN은 기본적으로
IPSec 프로토콜을 사용하는데, 이 IPSec을 사용할 경우 게이트웨이간에 사전 협상을 한다. 이 과정에서
VPN 게이트웨이에 설정된 여러 정보들이 통신하는 각 종단과 맞아야 상대방의 요청이 받아 들여지게 된다.
그러므로 사전 공유 정보를 알지 못하는 사람의 접근을 막을 수 있다.
3) 용어
* SA (Security Association)
데이터 송수신자간에 비밀데이터(인증되었거나, 암호화된 데이터)를 교환할 때 사전에 암호 알고리즘,
키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 한다. 이러한 정보들은 SA 에 저장된다.
데이터 송수신자간의 안전한 통신을 위해서는 적어도 하나의 SA가 필요하다. 그러므로 패킷 인증과
암호를 위해서는 SA가 선행되어야 한다. 동일한 알고리즘이 사용되어도 서로 다른 두 개의 키가 요구될
경우에는 두 개의 SA가 필요하다.
SA 변수
- SPI (Security Parameters Index)
- Source and destination IP address
- Source and destination port number
- User ID or System name
- Security Protocol : AH or ESP
- Authentication parameters
- Replay protection parameters
- Mode : Transport or Tunnel
- SA lifetime
- Fragmentation parameters (Path MTU)
* Security Association Databases
IPSec 프로토콜에는 보안연계 데이터베이스로 SPD(Security Policy Database)와 SAD(Security Associa-
tion Database)가 있다. SPD는 패킷들의 출입여부를 결정한다. 패킷의 선택자들을 SPD의 내용들과 비교하여
그 패킷에 적당한 정책을 결정한다. 이때 사용될 수 있는 내용으로는 목적지 IP 주소, 트랜스포트 계층
프로토콜, 발신지•목적지 포트 등이 있고, 결정될 수 있는 정책으로는 통과, 폐기 그리고 IPSec 적용
등이 있다.
SAD는 데이터 교환 전에 통일되어야 할 요소들을 정의하는 데, 이는 데이터 송수신자간에 비밀데이터를
교환할 때 사전에 암호 알고리즘, 키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 하기 때문이다.
* IKE(Internet Key Exchange Protocol)
VPN 암호화된 데이터를 주고 받기 때문에 데이터를 주고 받기 전에 암호를 풀 수 있는 key 값을 주고
받아야 된다. 키 교환 프로토콜은 SKIP, Photuris에서 시작하여 현재는 IKE(Internet Key Exchange)로
표준화되어 있다. IKE는 ISAKMP의 Framework에 Oakley 키 결정 알고리즘을 결합하여 SA의 협상과 키
교환 메커니즘을 제공하기 위한 프로토콜로서 Cisco Systems, Timestep, VPnet 등의 VPN 업체들도 IKE를
기본 키 교환프로토콜로 채택하여 사용하고 있다. IKE는 IETF 워킹그룹에서 ISAKMP 프레임웍을 기반으로
Oakley 키 결정 알고리즘을 결합하여 SA 협상과 키 교환 메커니즘의 표준으로 제정한 프로토콜이다
(참조 : RFC 2409 )
* Tunnel 모드
IP 데이터그램 전체를 보호하기 위하여 새로운 IP 헤더를 덧붙여서 IP 데이터그램 전체를 캡슐화 하고
호스트간 터널에 주로 이용한다.
* Transport 모드
데이터 전체를 캡슐화하고 새로운 IP 헤더를 추가하는 형태로 주로 게이트웨이(라우터) 간의 터널 형성에
이용되며, 이때 AH/ESP 헤더는 바깥쪽 IP 헤더 뒤, 안쪽의 IP헤더 앞에 붙는다.
* 인증 기술(Authentication Algorithms)
인증이란 크게 데이터가 변형되지 않았음을 증명하는 데이터의 인증과 송신자의 신분 확인 후 액세스 권한을
부여하는 사용자 인증으로 구분할 수 있다. 신분이 확실한 사람에게만 권한을 부여해 주기 때문에 네트워크의
보안을 유지할 수 있다.
가장 많이 사용하는 인증 방법으로 RADIUS 서버를 사용한 인증 방법을 들 수 있다. RADIUS서버는 이동 사용자
혹은 재택근무자의 수가 늘어남에 따라 이를 VPN 라우터에서 모두 인증시 발생할 수 있는 성능상의 문제점을
줄일 수 있게 한다.
VPN 라우터는 인증 과정의 수행을 위해 RADIUS 서버로 데이터를 전송하며 RADIUS 서버는 저장된 정보로
인증과정을 수행하게 된다. 이때 사용자들은 자신의 어드레스와 패스워드만으로 인증을 받게 된다.
이런 과정은 전체 네트워크의 성능을 더욱 강화시킬 수 있으며 네트워크의 원활한 관리 기능을 제공할 수 있다.
그리고 한 걸음 더 나간 고급기능으로 사용자별로 사용 시간을 추적, 과금을 부여하는 기능도 수행하는데
인증(Authentication), 허가(Authorization), 과금(Accounting) 서비스를 통틀어 AAA 서비스라고 부른다.
* 암호화 기술(Encryption Algorithms)
암호화란 외부의 침입으로부터 데이터의 보안 유지를 목적으로, 적절한 암호화 키를 가진 대상(pair)만이 읽을
수 있도록 데이터를 변형시키는 것이다. 암호화 방식으로는 PPTP 터널링에서 사용되는 MPPE와 IPSec
터널링에서 사용 되는 DES, 3DES, RC5 가 있으며, 키(Key) 방식과 함께 사용된다.
마이크로소프트의 MPPE 암호화는 40비트와 128비트 세션 키를 지원하며 256 패킷마다 자동으로 세션 키
변화가 진행되며, 이때 MS-CHAP과 같은 인증 알고리즘이 사용된다. 보다 강력한 암호화가 필요할 때 사용되는
IPSec은 DES(56bit), 3DES(168bit), RC5 등의 암호화 알고리즘을 사용하며, 이때 HMAC-MD5, HMAC-SHA1과 같은 인증 알고리즘이 사용된다.
암호화 알고리즘에는 비밀키 알고리즘과 공개키 알고리즘이 있다. 비밀키 알고리즘은 암호화와 복호화를 위해
같은 키를 사용하는 기술, 즉 타인이 알지 못하는 하나의 키를 사용한 암호화를 말한다. 우리가 사용하는 DES,
3DES, RC5는 비밀키 알고리즘에 해당한다. 공개키 알고리즘은 암호화키(공개키)와 복호화키(개인키)가 다른
2중 키를 사용하는 기술이다. 이때 각 호스트는 공개키를 사용해 각각의 키를 암호화하면(이때 다른 사람에게도
노출되어 있음) 이에 적합한 개인 키를 가진 사람만이 이를 복호화해 사용한다.
* CA (Certificate Authority)
CA는 사용자에게 인증서를 발급하는 기관을 통칭한다. 그리고 CA 자신이 발행한 인증서와 사용자 정보를
관리한다. 이 CA가 발행하는 인증서는 여러 종류가 있을 수 있다. 일단 서로 VPN통신을 하기 위해서는 자신의
인증서, 상대의 인증서, 그 인증서를 신뢰 할만 하다고 인증하는 CA의 인증서가 필요하다.
여기서 CA는 VPN통신을 하는 모든 종단들이 주체가 되어서 각 종단들에게 인증서를 발급해 인증을 할 수도
있으며 그 중 하나의 종단이 CA가 되어서 인증서를 발급하는 경우도 있을 수 있고, 외부의 다른 제3자가 CA가
될 수도 있다.
