SSL 연결 부하를 줄여 주는 기능 - SSL Offloading
Pumpkin SSL 연결 부하를 줄여 주는 기능 - SSL Offloading
●시작하기 전에
본 문서는 펌킨네트웍스(주)의 SSL Offloading을 소개하며, 이를 이용한 설정 방법을 안내하는 문서입니다. 문서의 작성은 PNOS5.0을 기준으로 작성되었습니다.
●소개
현재 컴퓨터 환경은 인터넷이란 거대한 네트워크를 통해 신문을 읽고, 방송을 보며, 물건을 사고 팔 수 있습니다. 또한 은행이나 증권사이트를 이용하여 돈을 관리할 수도 있습니다. 이렇게 인터넷 같은 컴퓨터간 통신이 발달해 있는 현재 컴퓨터 환경에서는 보안이 적용된 통신 환경을 제공해 주는 것은 매우 중요합니다. SSL(Secure Socket Layer)은 보안이 적용된 통신 환경을 제공해 줍니다. SSL은 개발 초기에 인터넷 웹 상의 전자 상거래 보안을 위해 설계되었습니다. 하지만, 실제로 SSL은 웹 환경뿐만 아니라 많은 다른 통신상의 보안이 필요한 분야에서 사용할 수 있습니다. SSL은 기밀성, 무결성, 인증, 부인방지와 같은 암호화 기능을 제공해 줍니다.
●동작 과정
클라이언트와 서버는 SSL 암호화 통신을 하기 위해 그림1과 같이 SSL Handshake를 실행합니다.
그림 2는 SSL Offloading 기능은 SSL Handshake 및 데이터 암호화/복호화를 서버대신 수행하고 서버와는 복호화된 데이터를 주고받음으로써 서버를 보호하고 서버의 부하를 최소화 할 수 있습니다.
SSL Offloading
그림 3은 FWLB, SLB 와 SSL Proxy가 복합적으로 구성된 상황에서의 SSL 동작과정을 보여줍니다.
FWLB와 SLB에 대해선 자세한 설명을 생략하고, SSL Proxy에 대한 부분만 단계별로 설명합니다.
External Service에는 FWLB를, Internal service에는 FWLB, SLB 및 SSL Proxy를 설정하였습니다.
①클라이언트가 요청한 packet 은 payload가 암호화된 상태로 진입합니다.
②SSL Proxy로 진입한 뒤 Kernel module에서 packet의 Destination 주소를 수정합니다.
③SSL Proxy는 SLB와 같은 서비스와 복합적으로 구성하여 사용할 수 있습니다.
④SLB 서비스 단계입니다.
⑤Packet의 Destination 주소가 SSL Proxy의 Backend-IP:Port(192.168.2.1:8888)와 일치한다면 SSL Proxy application으로 진입합니다.
⑥장비는 암호화된 packet을 클라이언트에게 전달합니다.
SSL Offloading 전체 동작 과정
그림 3은 FWLB, SLB와 SSL Proxy가 복합적으로 구성된 상황에서의 SSL 동작과정을 보여줍니다.
FWLB와 SLB에 대해선 자세한 설명을 생략하고, SSL Proxy에 대한 부분만 단계별로 설명합니다.
External Service에는 FWLB를, Internal service에는 FWLB, SLB 및 SSL Proxy를 설정하였습니다.
①클라이언트가 요청한 packet은 payload가 암호화된 상태로 진입합니다.
②SSL Proxy로 진입한 뒤 Kernel module에서 packet의 Destination 주소를 수정합니다.
③SSL Proxy는 SLB와 같은 서비스와 복합적으로 구성하여 사용할 수 있습니다.
④SLB 서비스 단계입니다.
⑤packet의 Destination 주소가 SSL Proxy의 Backend-IP:Port(192.168.2.1:8888)와 일치한다면 SSL Proxy application으로 진입합니다.
⑥장비는 암호화된 packet을 클라이언트에게 전달합니다.
SSL Offloading 전체 동작 과정
그림4는 SSL 세부 동작 과정을 나타냅니다.
SSL Proxy는 크게 Client측과 연결되는 Client-side와 Server나 Service와 연결되는 Server-side로 나누어 집니다. SSL Proxy는 Client-side와 Service-side에 각기 다른 connection을 만들어 pair로 관리합니다. Client-Side의 connection로부터 온 packet은 Kernel module과 application으로 나누어 처리하고, Client-side의 connection과 pair로 관리하고 있는 Server-side의 connection으로 packet의 payload를 전달하게 됩니다. Server-side로 오는 packet은 역과정을 거치게 됩니다.
①Client-side로부터 온 packet이 SSL Filter의 조건에 일치하는지를 판별합니다.
②Kernel module에서 SSL Proxy에서 설정한 Front 주소로 packet의 Destination 주소를 변환합니다.
③SSL Proxy의 Front Process는 암호화된 packet을 복호화하는 과정입니다.
④SSL Proxy의 Backend Process는 자신이 받은 Payload를 Server-side로 전달하여 줍니다.
⑤Kernel module은 SSL Proxy에서 설정한 Backend 주소가 Destination 주소인 Packet을 만나면 해당 packet의 Source 주소를 Client의 주소로 변환됩니다.
⑥Server-side로부터 암호화되지 않은 Packet이 수신됩니다.
⑦Packet의 Source 주소가 Backend 주소와 일치하면 Destination 주소를 Kernel에서 지정했던 임의의 IP로 변환합니다.
⑧SSL Proxy의 Backend Process는 source 주소가 Backend 주소와 일치하는지 확인한 후 Payload를 Front process로 전달합니다.
⑨SSL Proxy의 Front Process는 받은 payload를 암호화하여 Kernel module로 전달합니다.
⑩Kernel module은 받은 packet의 Source 주소가 Front 주소라면 Source 주소를 원래 가지고 있던 주소로 변환하여 최종적으로 Client에게 암호화된 packet을 전달합니다.
'IT Infra. > Server' 카테고리의 다른 글
SSL 인증서 생성 (0) | 2017.08.29 |
---|---|
윈도우 로그 관리 및 분석 방법 (0) | 2017.04.07 |
CentOS xrdp 설정 (원격데스크탑) (0) | 2017.02.12 |
Was Server와 Web Server차이 (0) | 2014.10.19 |
윈도우즈 파일시스템의 진화 (0) | 2014.09.16 |