2016년 8월 20일 토요일

정보보안기사 정리 28 - VPN, IPSec, SSL/TLS, 라우터 보안

네트워크 - VPN(개요, 구현기술, 관련 프로토콜들), IPSec(개요, 전송모드, 터널모드, ESP 프로토콜), SSL/TLS(개요, 구성 프로토콜, Handshake 프로토콜 동작 과정), 라우터 보안(access-list 설정 예, 필터링 유형, 라우터를 통한 네트워크 보안)




1. VPN (Virtual Private Network, 가상 사설망)
- 개요: 네트워크 보안 프로토콜, 인터넷 같은 공중망을 이용해 사설망이 요구하는 서비스를 제공할수 있도록 구축한 망.
  공중망을 공유하기 때문에 낮은 비용으로 서비스를 제공할 수 있으며, 터널링 프로토콜과 보안과정을 거치기 때문에 보안성이 우수하고,
  내부 주소 및 내부 라우터를 숨기며, 데이터 암호화, 사용자 인증, 사용자 권한 기능을 제공함.
  사용자가 필요에 따라 IPSec, TLS/SSL, MPLS 등의 보안 프로토콜을 적용한 네트워크를 구축할 수 있음.
- 단점: ISP 마다 서로 다른 기술을 채택하여 연동에 문제가 있으며 표준이 부족함.

- VPN 구현 기술
  ① 터널링: 송신자와 수신자 사이에 일종의 파이프를 구성하는 것으로 사설망과 같은 보안 기능을 제공함.
  ② 암호화 및 인증: 네트워크의 패킷은 스푸핑, 하이재킹, 스니핑 등으로 정보가 노출될수 있지만 VPN에서는 대칭키 암호(DES, SEED, AES 등)으로 암호화 함.
      암호화에 사용된 대칭키는 공개키 암호방식(RSA, ElGamal 등)으로 키를 교환함.
      메시지 인증은 MAC 또는 해시함수를 이용하여 메시지의 무결성을 증명함.
      사용자 인증은 VPN 접속시 보안 서버로부터 인증 받으며, 공유키, 공개키, 인증서, 전자서명 등을 사용함.
  ③ 접근제어: 패킷 정보를 이용하여 필터링을 하지만 암호화된 패킷에는 적용이 불가능 함.

- VPN의 터널링을 제공하는 프로토콜
  ① 2계층에서 지원하는 프로토콜: L2TP(Layer 2 Tunneling Protocol), L2F(Layer 2 Forwarding Protocol), PPTP(Point-to-Point Tunneling Protocol)
  ② 3계층에서 지원하는 프로토콜: IPSec, GRE(일반 라우팅 캡슐화)
  ③ MPLS는 별도의 계층.

- 2계층 터널링 프로토콜
  ① PPTP: MS사의 윈도우 NT 서버에서만 동작, PPP(Point-to-Point Protocol) 패킷을 IP 패킷으로 캡슐화하여 네트워크에서 전송하는 터널링 기법. 1:1 통신만 가능.
  ② L2F: 하나의 터널에 여러개의 연결을 지원하여 다자간 통신이 가능. TCP가 아닌 UDP 프로토콜 사용.
      사용자가 ISP 장비에 접속하여 장비가 서버측의 터널 서버와 L2F 터널ㅇㄹ 생성함. 사용자는 접속하는 장비에서 사용자 인증을 받음.
  ③ L2TP: L2F 기반의 PPTP와 호환성을 고려한 터널링 프로토콜. 다자간 통신과 터널인증, IP, X.25등의 프로토콜을 지원하며, 암호화와 압축으로 보안 기능 지원.
      사용자 인증을 지원하고, 터널 유지에 TCP가 아닌 UDP를 사용 함.

- 3계층 터널링 프로토콜
  ① IPSec(IP Security): IP 계층의 보안을 위해 사용되는 터널링 프로토콜.
      IP 계층에서 서비스하므로 상위 계층 프로그램의 변경이 불필요하며 암호화된 패킷은 보통의 IP 패킷과 동일한 형태이므로 네트워크 상에서 라우팅이 가능 함.
      AH와 ESP를 통해 IP 데이터그램의 인증, 무결성, 기밀성 등을 제공.

- MPLS
  3계층 주소(IP 주소)를 이용해 각 라우터가 가진 레이블정보와 비교하여 부가적인 MPLS 레이블 정보를 덧붙임. 레이블 정보는 각 라우터마다 계속 변경됨.
  모든 라우터가 MPLS 기능을 수행하는 것이 아니라 일부 지정된 라우터만 수행함.
  패킷의 지연시간을 감소시키고, 높은 수준의 서비스를 지원가능.
  * MPLS의 자세한 개념은 구글링 할것. 어렵지 않음.

- 인증
  ① 데이터 인증: MD5, SHA-1 등의 해시 알고리즘을 사용함.
  ② 사용자 인증: Peer-Peer 방식과 클라이언트-서버 방식이 존재함.
      Peer-Peer 방식 예: 패스워드 기반 방식
      클라이언트-서버 방식 예: RADIUS(중앙서버에서 사용자 인증)


2. IPSec (IP Security)
- IP(네트워크) 계층 보안을 위한 표준화. 양 종단 간 또는 보안/터널 게이트웨이에 보안 서비스를 제공해 주는 IP 계층 보안 프로토콜.
  IPv6는 기본적으로 IPSec을 포함함.

- IPSec 동작 모드: 전송 모드, 터널 모드
  전송모드: IP 패킷 전체를 보호하는 것이 아닌 IP 패킷의 페이로드만 보호하는 방식. 전송 계층에서 전달된 데이터에 대해 IPSec의 헤더를 추가하는 방식.
                 IPSec의 헤더가 추가되면 IPSec 헤더 + 페이로드 를 하나의 IP 페이로드로 인식하고 IP 계층(네트워크 계층)의 헤더를 붙임.
                 IP 헤더를 보호하지 않기 때문에 출발지와 최종목적지가 노출될 수 있음.
                 일반적으로 호스트 대 호스트 간의 패킷 보안에 사용됨.
  터널모드: 전송계층에서 전달된 데이터에 IP 계층의 헤더를 붙이고 IPSec 프로토콜의 헤더를 추가로 붙임.
                 추가로 IPSec의 헤더가 붙었기 때문에 IP 주소가 가려지게 되므로 새로운 IP 계층의 헤더를 다시 붙임. 이것을 통해 IP 패킷 전체를 보호함.
                 일반적으로 보안/터널 게이트웨이 구간의 패킷 보안을 위해 사용됨.
                 출발지와 최종 목적지 주소 노출이 안되서 좋지만 새롭게 붙여지는 IP 헤더에는 보안/터널 게이트웨이의 주소가 붙으므로 이것이 노출될 수 있음.

- IPSec 위치: 전송 모드에서는 Application layer - Transport layer - IPSec layer - Network layer.
  터널 모드에서는 Application layer - Transport layer - Network layer - IPSec layer - New Network layer.

- IPSec의 세부 프로토콜: AH 프로토콜, ESP 프로토콜
  ① AH(Authentication Header) 프로토콜: 발신지의 호스트를 인증하고 IP 패킷으로 전달되는 페이로드의 무결성을 보장하기 위한 것.
      메시지 다이제스트를 만들기 위해 해시 함수와 대칭키를 사용함.
      ESP에서도 동일한 기능이 제공되므로 현재 사용을 자제하고 있음.
  ② ESP(Encapsulating Security Payload) 프로토콜: 발신지 인증, 데이터 무결성, 암호화 제공.
   
      위 그림을 보면 맨위에는 일반 패킷, 두번째는 IPSec 사용시 전송모드에서의 패킷, 세번째는 터널모드에서의 패킷 형태를 보여줌.
      ESP HDR(헤더)에는 보안 파라미터 인덱스, Sequence number(재전송공격 방지에 사용)가 들어가고, ESP Trailer에는 패킷 정보 등이 들어감.
      ESP 의 인증 데이터가 ESP Auth에 들어감.
      * 전송 모드의 경우 전송계층의 데이터와 ESP 프레일러가 암호화되고, 터널모드의 경우 원본 IP 패킷 전체와 ESP 트레일러가 암호화됨.

- 인터넷 키 교환(IKE, Internet Key Exchange)
  ① 보안 관련 설정들을 생성 및 관리하는 프로토콜.
  ② IPSec에서 논리적인 연결정보와 보안설정들을 보안연관(SA)라고 함.
  ③ 상당히 복잡한 여러 프로토콜들로 구성됨.



항목
IPSec
SSL/TLS
OSI 계층
네트워크
전송
암호화
어플리케이션에 의존함
브라우저에 의존
인증
two-way 인증
one or two-way
접근성
제한된 환경 접속
분산환경 접속
복잡성
높음
보통
사용 용이성
어려움
쉬움
확장성
좋음
좋음
용도
기업 LAN 환경 접근
원격 근무자 접근시
응용 분야
모든 IP 기반 서비스
웹 어플


3. SSL/TLS (Secure Socket Layer)
- SSL이 원래 이름이고, SSL3.0을 표준화 시킨 것이 TLS 임.
- 클라이언트-서버 환경에서 TCP 기반의 어플리케이션에 대한 종단간 보안 서비스를 제공하기 위해 만들어진 전송계층 보안 프로토콜.
  전송계층의 TCP와 어플리케이션 계층 사이에서 동작함.
  각 어플리케이션이 SSL을 사용할 경우 그렇지 않은 경우와 구분하기 위해 고유한 포트를 할당 함. 예: https(443/tcp), smtps(465/tcp), ftps(990/tcp), telnets(992/tcp)
- 기밀성(대칭키 암호화 방식 사용), 무결성(메시지 인증코드 MAC을 이용하여 송수신 메시지의 무결성 확인),
  인증(공개키 인증서를 이용하여 서버-클라이언트 상호간 인증)을 제공.
- SSL/TLS 프로토콜 구조
출처: http://m.blog.naver.com/nttkak/20130246501

  상위계층: Handshake, Change Cipher Spec, Alert, Application Data
  하위계층: Record
- Handshake 프로토콜: 양 종단간 보안 파라미터를 협상하는 프로토콜
- Change Cipher Spec 프로토콜: 양 종단간에 협상된 보안 파라미터를 사용 가능하게 적용시키기 위한 프로토콜
- Alert 프로토콜: SSL/TLS 통신과정의 오류 통보하는 프로토콜
- Application Data 프로토콜: application layer의 데이터를 전달하기 위한 프로토콜
- Record 프로토콜: 협상된 보안 파라미터를 이용해 실제 암호화/복호화, 무결성 검증 등을 수행하는 프로토콜.
  대칭키 암호 사용하여 상위 프로토콜의 메시지를 암호화하고 타켓 호스트와 통신함.

- 암호 스위트(cipher suite) 방식 사용
  적용하는 암호 기술에서 문제가 생기면 전체를 바꾸는 것이 아니라 일부분만 교체하는 방식.
  하지만 클라이언트와 서버가 서로 같은 기술을 사용해야 하므로 뭐든 자유롭게 고를수 있지 않고 서로 협의를 해야함.

- SSL/TLS의 상태유지 프로토콜
  SSL/TLS는 각 세션과 연결별로 상태정보를 유지하는 프로토콜로써 Full Handshake를 통해 세션을 생성하고,
  이 세션 정보를 공유하는 다수의 연결을 Abbreviation Handshake를 통해 생성함.
  세션정보: 두 호스트간의 보안연관, 세션 식별자 등의 보안 파라미터 정보.
  연결: 실제 통신이 이루어지는 단위, 해당 연결에만 사용하는 임시적 보안 파라미터 정보 저장.

- SSL/TLS Handshake 프로토콜 동작 과정
  ① Client가 Server에게 Client_Hello 전달
      클라이언트의 SSL/TLS 버전, 암호 도구(cipher suite) 목록(키교환 및 인증 알고리즘, 대칭 암호 알고리즘, 해시 알고리즘 증), 세션 ID 등 전달.
  ② Server가 Client에게 Server_Hello 전달
      사용할 SSL/TLS 버전, 암호 도구와 새롭게 생성된 세션 ID 정보 등 전달.
      서버는 필요시 서버의 인증서, 키 교환에 필요한 정보, 클라이언트 인증서 요청 메시지를 전달함.
  ③ 클라이언트는 키 교환에 필요한 파라미터를 서버에 전달. 필요시 요청 받은 인증서 등도 보냄.
      또한 서로 협상한 보안 파라미터 정보를 적용했다는 메시지를 보냄.
  ④ 서버는 협상한 보안 파라미터 정보를 적용했다는 메시지를 클라이언트에게 보내고 협상 완료함.


4. 라우터와 접근제어(ACL)
- 라우터에는 access-list가 있어 특정 패킷에 대한 접근제어를 할수 있음.
  접근 제어 방법은 standard access-list와 extended access-list가 있음.
- standard access-list: 패킷의 소스 IP 만으로 접근제어 수행. 리스트에서 1~99 사이의 번호로 설정 가능.
  형식: access-list acl번호 permit/deny IP주소/any
  예1: access-list 3 permit host 123.23.43.1 , list에서 번호는 3번이고 출발지 IP가 123.23.43.1이면 접근을 허용.
  * 특정 IP를 명시하는 경우 그 앞에 'host'를 붙여야 함.
  * 'host'를 명시 안하고 IP 주소 대신 서브넷 마스크 비트를 반전시킨 와일드카드 마스크 를 쓸수 있음.
  예2: access-list 4 deny any , 모든 출발지 IP에 대해 차단 함.
- extended access-list: 출발지 IP 목적지 IP, 포트, 프로토콜 등으로 차단을 수행. 리스트에서 100~199 사이의 번호로 설정 가능.
  형식: access-list acl번호 permit/deny 프로토콜 출발지IP 출발지-와일드카드 목적지IP 목적지-와일드카드
  예1: access-list 100 deny ip host 132.143.5.4 100.100.100.0 0.0.0.255
        출발지가 132.143.5.4 이고 목적지가 100.100.100.0/24 대역인 IP를 차단함.
  예2: access-list 150 deny tcp 132.143.5.0 0.0.0.255 host 100.100.100.1 eq 80
        출발지가 132.143.5.0/24 대역이고, 목적지가 100.100.100.1, 목적지 포트가 80인 TCP 패킷 차단.
  예3: access-list 180 deny udp host 132.143.5.4 100.100.100.0 0.0.0.255 range 100 200
        출발지가 132.143.5.4이고, 목적지가 100.100.100.0/24 대역, 목적지 포트가 100~200 범위인 UDP 패킷을 차단함.

* eq는 equal의 의미로 단일 포트 지정시 사용.
* "range 시작포트번호 끝포트번호" 로 포트 범위 지정함
* access-list는 맨 윗줄 부터 하나씩 차례로 수행되며, 리스트 맨 마지막 줄에 "permit any"를 넣지 않는 경우
  기본적으로 access-list에 매치되는 않는 IP주소를 차단함. 즉, "deny all"이 자동 삽입됨.

- 필터링 유형
  ① Ingress 필터링: standard 또는 extended access-list를 이용해 라우터 내부로 유입되는 패킷을 필터링.
  ② Egress 필터링: 라우터 내부에서 외부로 나가는 패킷의 정보로 필터링.
  ③ Blackhole 필터링(Null 라우팅): 특정 IP 또는 IP 대역에서 비정상적인 시도가 있을 경우 가상의 쓰레기 인터페이스(Null interface)로 보내 패킷 통신이 안되게 함.

- 라우터를 통한 네트워크 보안
  라우터는 네트워크 상에서 매우 중요한 역할을 하므로 이를 보호하여 네트워크 보안을 수행함.
  라우터 접근은 콘솔로 이루어지게하고 반드시 패스워드를 설정함.
  외부에서 접속하는 텔넷의 경우 반드시 허가된 IP를 가진 사용자만 접근하게 함.
  SNMP는 TCP/IP 네트워크를 모니터링 하고 관리하는 프로토콜이므로 기본적으로 설치함.
  불필요한 서비스(ICMP 등)을 제어함.
  Blackhole 보안 설정: DDoS 공격에 대응하기 위해 특정 목적지로 트래픽이 과도하게 발생하면 해당 목적지 IP를 차단함.

댓글 없음:

댓글 쓰기