[SSL 가속기②] SSL 가속기 제품을 이용한 다양한 구성 방법
상태바
[SSL 가속기②] SSL 가속기 제품을 이용한 다양한 구성 방법
  • 배헌장 소닉월 시스템엔지니어 과장
  • 승인 2003.05.12 00:00
  • 댓글 0
이 기사를 공유합니다

지난호에는 SSL이라는 프로토콜에 대해 간략하게 살펴보았다. 이제 우리는 SSL이 대략적으로 어떤 것이며 왜 지금 필요한 지에 대해 알게 되었다. 그렇다면 이번호에는 지난호에 다루었던 SSL의 개념 및 용도를 바탕으로 SSL 가속기라는 제품군의 종류와 용도, 그리고 실제 환경에서 사용될 수 있는 다양한 구성방법에 대해 알아보도록 한다. <편집자>

SSL(Secure Socket Layer)은 널리 알려진 바와 같이 암호화와 복호화를 통해 데이터를 전달하여 안전한 통신을 가능하게 하는 기술이다. 따라서 SSL 핸드쉐이크(Handshake) 과정에서 발생하는 각종 연산 작업들은 CPU에 많은 작업 부하를 주게 된다. SSL 가속기(SSL Accelerator)는 이러한 CPU의 과중한 부하를 해결하고자 나온 솔루션이다.

1. 1세대 SSL 가속기 ‘PCI SCSI 카드타입’

SSL 가속기의 첫번째 세대는 서비스를 제공하는 웹서버가 작동하는 하드웨어에 직접적으로 설치가 되는 PCI 나 SCSI 타입의 카드 형태로 만들어진 제품들이다. 이같은 타입의 가속기들은 SSL 가속기 시장의 최초 선점으로 인해 아직까지도 널리 사용되는 제품의 유형이지만 이제는 몇 가지 단점으로 인해 2세대 제품으로 전환되어 가고 있는 실정이다.

PCI나 SCSI 카드 타입의 SSL 가속기 제품군은 우선 SSL 핸드쉐이크 과정을 담당함으로 CPU에 부과되던 높은 부하를 절감시켰으며 설치 구조상 실제 콘텐츠 서비스를 수행하는 웹서버 또는 애플리케이션 서버가 작동하는 하드웨어의 슬롯에 직접 장착이 되기 때문에 SSL 사용시 보호되어야 할 클라이언트 브라우져로부터 웹서버 본체까지의 엔드 투 엔드(end-to-end)의 완벽한 보안이 이루어진다. 그러나 이러한 제품군에는 몇 가지 치명적인 단점이 존재했는데 그 첫번째는 가속기 설치시 반드시 시스템의 중단이 필요하다는 것이었고, 또 하나는 확장성의 문제이다. 카드 타입의 가속기는 하나의 가속기가 하나의 서버만을 감당하는 물리적인 구성의 한계 때문에 여러 가지 이유로 인해 서버의 증설이 요구되는 경우 서버 증설 숫자만큼 가속기의 추가 구매 또한 필요했기 때문이다.

2. 2세대 SSL 가속기 ‘SSL 오프로더’

1세대 제품이 몇가지 문제점을 개선하고 나온 네트워크 장비 타입의 SSL 가속기인 SSL 오프로더(Offloader)라고 흔히 불리우는 이 제품군들은 기존의 카드타입 가속기들과 달리 하나의 가속기가 여러 대의 웹서버나 애플리케이션 서버를 위한 SSL 가속기능을 수행함으로 기존 1세대 제품군의 확장성 문제를 보완했다. 웹서버나 애플리케이션 서버와 분리된 설치 방법으로 인해 가속기 드라이버와 서버 하드웨어의 충돌 등으로 인해 발생할 수 있는 문제의 소지를 없앴다.

그러나 네트워크 구성상 가속기와 서버사이에 물리적인 공백 구간이 있을 수밖에 없고 브라우져가 발생시킨 암호화 패킷은 가속기에서 복호화되고 클리어 텍스트(Clear Text)로 이 구간을 통과해 서버에 전달되기 때문에 실제 클라이언트 브라우저로부터 서버까지의 엔드 투 엔드 보안이 불가능하다. 또한 일반적인 인라인 구성(In-line Configuration)의 경우 설치 시 서비스의 일시적 중단을 피할 수는 없다,

몇 가지 단점에도 불구하고 최근에는 역시 단독 장비 제품형태의 2세대 제품군이 주류를 이루어 시장을 선도하고 있다. 또한 벤더에 따라서 2세대 제품군이 가지는 단점마저 보완한 장비들도 개발되고 있다. 특히 백엔드(Back end) SSL 기능을 통한 엔드 투 엔드 보안 제공이나 원 암 구성(One-arm Configuration)을 통한 서비스 중단 없는 설치기능 등을 통해 보다 효과적으로 SSL 가속기를 실제 네트워크상에 구현할 수 있는 다양한 방법들이 나오고 있다.

SSL 가속기의 구현

그렇다면 실제 환경에서 SSL 가속기는 어떠한 형태로 사용자의 네트워크상에서 구성되어 사용되는 것일까? 그에 대한 답을 찾기 전에 먼저 로드 밸런싱(Load Balancing)과 세션의 지속성 보장(Persistence)에 대해 살펴 볼 필요가 있다.

일반적으로 SSL을 사용하는 네트워크의 경우 다수의 사용자들에게 서비스를 목적으로 시스템을 운영하기 때문에 대부분이 다수의 웹서버나 애플리케이션 서버를 클러스터링으로 구성하여 로드 밸런싱을 구현하고 있다. 그러나 SSL의 특성상 이러한 부분을 충족시키기 위해서는 다양한 구성 방법이 필요하다. 따라서 SSL 애플리케이션의 특성상 세션의 라이프 타임(Life time)에 대한 보장이 필요하기 때문에 SSL 사용시 로드 밸런싱을 담당하는 로드 밸런서(Load Balancer)와 세션 영속성(Session Persistence)에 대한 이해가 먼저 필요하다.

로드 밸런싱과 웹사이트의 지속성 보장(Load Balancing & Web Site Persistence) 웹사이트가 지속적으로 발전하게 되면서 트래픽에 대한 로드 밸런싱은 높은 가용성 및 확장성 그리고 웹사이트의 지속성을 보장하기 위한 필수적인 요소로 자리잡게 되었다.

즉 다수의 서버를 하나의 클러스터로 구성하여 발생하는 부하를 동적으로 분담시켰던 로드 밸런싱은 과중 부하를 해결했지만 동시에 세션에 대한 보장 문제를 해결해야만 했다.

세션의 지속성(Stickness)은 최초에는 클라이언트(Client) IP-스틱키(Sticky)라는 기술을 통해 달성되었는데 이는 클라이언트의 IP 어드레스를 기반으로 클라이언트를 구분하여 세션의 지속성을 보장해준 기술이다. 이 기술은 ISP에 의해 하나의 세션이 생성되어 살아있는 동안에도 클라이언트의 IP 어드레스가 변경되는 ‘메가-프락시(Mega-Proxy)’가 일반화되기 전까지는 로드 밸런싱시 세션을 보장하는 주요 기술로 사용되었다. 그러나 메가 프락시 이후에는 이러한 단순한 IP 기반의 로드밸런싱은 그 의미를 잃게 되고 콘텐츠 스위치가 필요하게 된 것이다. 콘텐츠 스위치는 OSI 계층에서 3, 4 계층과 5계층사이에 애플리케이션 레벨에서 보다 지능적인 로드 밸런싱을 수행한다. 콘텐츠 스위치는 보다 강력한 패킷 검사 및 스위칭 기술을 바탕으로 URL 정보나 파일 확장자, 헤더, 쿠키 등에 기반하는 스위칭을 구현하도록 설계됐다. 그중에 특히 중요한 부분은 쿠키를 통한 세션의 지속성 보장으로 한 세션에 클라이언트 IP 어드레스가 몇 번을 변하든 상관없이 애플리케이션에서 세션의 지속성을 보장해 주었다.

SSL 세션 ID

콘텐츠 스위치의 단 하나의 치명적인 약점은 바로 SSL이었다. 엔드 투 엔드의 구성시 SSL을 통해 클라이어트는 모든 세션을 암호화시키기 때문에 콘텐츠 스위치는 암호화된 세션으로부터는 쿠키에 대한 검사를 수행할 수 없기 때문에 세션의 지속을 보장할 수가 없다. 그런데 문제는 이렇듯 세션의 지속성이 요구되는 대부분의 경우가 SSL 사용이 필요한 곳이었다는 것이다. 다행히 SSL은 자체에 32바이트로 구성된 독자적인 세션(Session) ID라는 것을 가지고 있었고 이는 최초 SSL 세션이 생성될 때 SSL 서버가 클라이언트에게 전송하면서 세션이 종료될 때까지 양쪽에서 세션의 적합여부를 위해 사용되었다. 콘텐츠 스위치는 이 세션 ID를 사용함으로써 암호화된 세션에 대한 지속성을 보장할 수 있게 되었다.

SSL 오프로더라고 불리우는 2세대 가속기의 경우 위와 같은 문제를 일정부분 해결하고 있다. 그 이유는 가속기가 웹서버나 애플리케이션 서버 등 SSL 처리가 필요한 서버의 앞단에 위치하여 SSL 암호화/복호화 기능을 대신 수행하고 가속기와 서버사이의 구간을 클리어 텍스트 구간으로 구현함으로 인해 쿠키에 대한 분석을 로드 밸런서가 담당하도록 하기 때문이다.

2세대 SSL 가속기를 이용한 구성방법은 크게 입력 출력 2포트를 모두 사용하는 SSL 인라인 구성과 한 포트만을 사용하는 SSL 원 포트 프락시(One port Proxy) 구성, SSL 원 포트 트랜스퍼(One port Transparent) 구성 등으로 나뉘어 질 수 있는데 입력 포트 하나만을 사용하는 원 포트 구성은 실제로 두 포트 모두를 사용하는 구성 방법에 비해 많은 장점을 지니고 있다.

먼저 SSL 가속기의 두 포트를 모두 사용하는 구성 방법은 네트워크상의 접정 지역에 설치 될 수 밖에 없으며 SSL 트래픽과 비 SSL 트래픽 모두가 지나가는 하나의 통로가 된다. 이 경우 필연적으로 버틀 넥 현상이 발생하게 되고 네트워크 전체의 마비를 가져올 수 있다. 또한 설치시 반드시 네트워크 전체가 중단되어야 하는 단점을 가지고 있다. 이에 반해 원 포트 구성은 콘텐츠 스위치에 의존하는 방식으로 다양한 구성방법을 지원하여 트래픽의 부하 집중을 방지할 수 있고 구성시 경우에 따라서는 기존 서비스에 영향을 최소화한 형태에서 설치가 가능하다는 장점을 가지고 있다. 따라서 최근에는 이러한 장점을 지닌 원 포트 구성이 가능한 다양한 제품이 출시되고 있다.

SSL 인라인 구성

가장 간단한 구성으로 SSL 가속기가 입력 포트를 통해 가속기능을 수행하고 출력 포트를 통해 콘텐츠 스위치로 전달된다. 논(Non)-SSL 트래픽의 경우에는 하단에 위치한 콘텐츠 스위치로 통과만 시키고 SSL 트래픽의 경우 복호화해 콘텐츠 스위치에 전달한다. 이 경우 콘텐츠 스위치는 OSI 5 레이어에서 작동하게 된다. 이 구성은 일단 설치 및 관리가 비교적 간단하기 때문에 초기에는 가장 많이 사용되었지만 몇 가지 문제점을 내포하고 있다.

· 설치시 네트워크의 중단 및 네트워크의 변경을 가져온다.
· SSL 가속기는 모든 트래픽의 종단점에 위치하기 때문에 많은 부하를 받게 되며 이는 단일 장애 지점(Singel point of Failure)을 발생시킨다.

SSL 원 포트 프락시 구성

SSL 원 포트 프락시(One Port Proxy) 설정은 SSL 가속기의 입력 포트만을 사용하여 트래픽을 전달한다. 콘텐츠 스위치는 레이어 4와 5상에서 모두 동작하고 SSL 가속기는 일반적인 TCP/IP 프락시로서 작동한다. 클라이언트로부터 전달된 SSL 트래픽은 콘텐츠 스위치에 전달되고 콘텐츠 스위치의 룰에 따라 SSL 가속기로 전달된다. 이 트래픽은 SSL 가속기에 의해 복호화되고 SSL 가속기의 IP 어드레스를 소스(Source) IP로 하여 웹서버에 전달된다.

이러한 구성은 일반적으로 가장 많이 사용되는 구성이며 설치가 비교적 용이하고 확장성이 보장되지만 한가지 문제를 가지고 있는데 이는 바로 웹서버에 클라이언트의 IP 어드레스가 로깅되지 않는다는 점이다. 원 포트 프락시 구성의 경우 SSL 가속기는 트랜스페어런트로 동작하지 않기 때문에 자신의 IP 어드레스와 맥 어드레스를 콘텐츠 스위치를 통해 웹서버에 전달해 준다. 이와 같은 문제는 웹서버를 서비스 제공을 위해 운영하는 경우 로그를 기반으로 한 다양한 분석툴을 가동하는 데 있어 한계를 가지도록 한다. 현재는 위와 같은 단점을 극복하도록 SSL 가속기가 클라이언트 원래의 IP 어드레스를 프락시 모드에서도 웹서버로 전달하는 기능을 지원하는 다양한 제품들이 나와 있다.

SSL 원 포트 트랜스퍼 구성

SSL 원 포트 트랜스퍼(One port transpaent) 구성은 SSL 가속기 스스로의 IP 어드레스를 통해 작동함으로 발생하는 한계점을 없애고자 고안된 구성으로 원 포트 프락시와 마찬가지로 입력 포트 하나만을 가지고 동작한다. 원 포트 트랜스퍼에서 콘텐츠 스위치는 SSL 가속기를 하나의 캐시 장치처럼 인식한다. 따라서 SSL 가속기가 스위치내의 콘텐츠 룰을 사용하도록 허용한다. 즉 콘텐츠 스위치는 443 포트를 사용해서 들어오는 모든 트래픽을 SSL 가속기 쪽으로 단순히 돌려주는 형태로 기능을 수행한다. 트랜스퍼 구성의 가장 큰 장점은 클라이언트의 IP 어드레스가 웹서버까지 전달되기 때문에 웹 애플리케이션이 클라이언트의 IP 어드레스를 구분할 수 있으며 콘텐츠 스위치의 로드 밸런싱 수행시 IP 기반으로도 세션의 지속성을 보장할 수 있다.

이처럼 각각의 구성은 어떤 것이 더 우수한 구성이라고 단정할 수는 없다. 각각 장단점을 가지고 있기 때문에 설치 시 기존 네트워크 환경에 어떠한 구성방법이 더욱 적합할 것인지에 대해 관리자와 충분한 논의가 필요하다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.