SSL/TLS, 웹 방화벽 TCP throughput

Zeung-il Kim
6 min readAug 5, 2020

--

SSL(Secure Socket Layer), 요새는 TLS(Transport Layer Security)라고도 부른다. TLS가 더 최신버전이지만 SSL이 고전적으로 계속 사용해오던 용어라 아직도 같이 사용되는 것 같다. SSL은 보통 웹 사용할 때 HTTPS로 트래픽을 암호화 하는데 사용되며 인증서 기반으로 동작한다. 자동차관련 업무를 하면서 내가 SSL/TLS를 처음 접하게 된 것은 전기차(client)와 충전기(server) 사이에 암호화 통신을 TLS를 사용하기 때문이다. 온갖 기기들이 네트워크로 연결되면서 다양한 정보들(개인정보, 과금 등 보안이 필수적인 정보들 포함)을 주고 받기 때문에 TLS는 기존의 웹 외에도 암호화가 필요한 통신에 필수적으로 사용될 것으로 보인다.

  • 웹 방화벽의 TCP throughput 계산 공식 (정보통신기술사 122회 문제)

웹 방화벽은 웹 서버와 웹 서비스 이용자 사이에서 요청 및 응답 검사를 통해 웹 서버 및 데이터를 보호하는 웹 전용 보안 솔루션이다. 웹 서비스에 암호화 트래픽이 증가함에 따라서 웹 서버 앞에서 SSL 암호화/복호화를 수행하고, SSL 관련 인증서 및 키를 서버 대신 관리하면서 서버 성능 저하를 막는 역할을 웹 방화벽이 하게 되고 최근에는 암호화 키 사이즈도 RSA 1024-key에서 RSA 2048-key로 2배 커져서 웹 방화벽의 성능이 더욱 중요하게 되었다. (그래서 소프트웨어적으로 처리하기 보다는 전용 SSL하드웨어 가속기를 두는 형태로 구축하는 것 같음) 방화벽은 설정된 정책에 의해 허용된 트래픽만을 장애 없이 전달 해야하기 때문에 성능이 떨어지면 응답시간 저하, 신규 접속 불능의 동시 다발적 발생, 느린 초기 접속 또는 초기 접속 장애 등의 문제를 일으킬수 있으므로 방화벽 네트워크 성능 지표를 잘 이해할 필요가 있다.

초 당 83,000개의 패킷을 처리하는 방화벽이 있다고 하면 1,500byte 패킷을 처리한다면 1Gbps의 성능을 낸다고 할 수 있다. 하지만 TCP/IP 네트워크에서 패킷의 크기는 64byte ~ 1518byte까지 다양한 크기가 존재하므로 만약 64byte 패킷만을 처리한다면 성능은 42Mbps 수준밖에 안되게 된다. 단순히 초 당 몇 비트 처리하는가로 성능 지표를 기준으로 삼으면 안된다는 것임.

83,000pps(packet per second)× 15,000byte × 8bit = 996,000,000bps ≒ 1Gbps

83,000pps × 64byte × 8bit = 42,496,000bps ≒ 42Mbps

=== 중요한 방화벽 성능지표 ===

  • 초 당 패킷 처리 성능 및 패킷 사이즈 별 throughput

pps(초당 패킷 처리 수)는 가장 중요한 방화벽 성능 지표 중 하나로 패킷 단위로 정책 판별, 통제 규칙 적용 등의 방화벽 기능을 수행 하므로 하나의 패킷을 얼마나 빨리 처리 할 수 있는지가 중요하다. 패킷 사이즈에 따라 처리 성능이 다른 방화벽도 있으므로 “초 당 처리 패킷 수” 외에 “패킷 크기 별 초당 처리 비트 수 인 throughput” 도 계산해서 확인 한다.

예를 들어 패킷 크기와 상관 없이 초 당 43만개 패킷을 처리하는 방화벽의 경우 64byte 크기의 패킷만 처리한다면 293Mbps 정도 성능, 256byte 패킷의 경우 850Mbps, 1024byte 패킷이면 1600Mbps, 1518byte 패킷이라면 1800Mbps 의 성능이 나온다. 이렇게 패킷 사이즈별 throughput을 계산 (pps × 패키사이즈(byte) × 8)한 다음, 실제 해당 네트워크에 흐르는 패킷에 대한 “사이즈 별 초당 출입 패킷 분포”를 측정한다. (네트워크 스니핑 장비 등을 활용)

패킷 사이즈 분포가 64Byte 35%, 128Byte 10%, 256Byte 10%, 512Byte 15%, 1024Byte 10%, 1500Byte 20% 라면,

패킷 분포와 throughput을 곱해서 더한 후 계산 하면 이 방화벽의 이 네트워크에서의 최대 처리 가능 대역폭 수치를 구할 수 있다.

(293 × 35%) + (516 × 10%) + (850 × 10%) + (1200 × 15%) + (1600 × 10%) + (1800 × 20%) = 939Mbps

▶ 초 당 세션 처리 능력

▶ 전체 세션 처리 능력

최근 시장에 출시되는 방화벽은 세션 중심으로 트래픽을 처리함. 출발지와 목적지의 IP주소 및 포트번호 4개의 정보가 하나의 세션을 지칭한다. 4개 값 중 하나라도 다르면 다른 세션으로 취급함. 초당 몇 개의 세션을 처리하는지 성능 측정 필요함.

▶ 정책의 수 및 세션 수의 증가에 따른 성능 저하 여부

세션 정보를 유지하는 캐시(cache) 구조와 캐시 검색방법 특성에 따라 세션 수 증가하면 전체 캐시 크기가 증가하게 되고 점점 캐시 검색 속도가 떨어지면서 패킷 처리 성능 감소 유발

여기에 추가로 앞에서 언급 했듯이 요즘 웹 서비스는 대부분 SSL 보안 트래픽이 발생하므로 SSL 처리 성능도 중요하다.

SSL통신을 위해서는 클라이언트와 서버간에 인증서 및 키를 교환하는 handshake 과정이 필요하고 이 과정이 완료되면 해당 세션을 통해 암호화된 데이터를 전달 하게 된다. (PKI 비대칭키 형태로 키 교환하고 실제 데이터 암호화는 대칭키로 하는 형태)

SSL 처리 과정

초 당 SSL 핸드쉐이크 처리 수, 초 당SSL 암호화 트래픽 처리량을 웹 방화벽 도입시 확인 필요하다.

  • SSL에서는 인증서를 사용하는데 인증서에도 종류가 많다.

DV (Domain validation) : 도메인 유효성만 검사, 주체명(도메인)만 표시되며 회사 확인은 되지 않음. 도메인 소유권 심사를 통해 발급되는 가장 쉽고 빠른 SSL인증서, 민감한 정보를 다루는 사이트에 적합하지 않음.

OV (Organization validation) : 비지니스의 적법성 검증과 도메인 소유권 심사를 통해 발급되는 인증서, 검증된 회사 정보는 인증서에 표시되며, 사이트 소유권 확인 가능, 주로 전자 상거래 용도

EV (Extended validation) : DV, OV보다 까다로운 검증으 통해 기업의 실존성을 강화한 인증서. 웹 사이트가 보안인증이 되어 있다는 사실을 한눈에 알아 볼수 있도록 다양한 방식을 적용하여 사용자 인터페이스를 강화시킨 SSL 인증서(인터넷 익스플로러로 접속 했을 때 주소창이 녹색으로 바뀌면서 안전한 사이트임을 확인 할 수 있음.)

참고 사이트

https://archiblue.tistory.com/78 [Forte、 Forte、Fortissimo。]

https://www.piolink.com/

--

--

No responses yet