예전에 은행권 프로젝트를 진행하며 SSL 가속기를 접하게 되었는데, 당시에는 단순히 보안 장비라고만 생각했다. 이번 기회에 SSL 가속기의 역할과 필요성을 정리해보았다.
HTTP와 HTTPS의 차이
HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP 로 중요한 정보를 주고받으면 제 3자에 의해 조회될 수 있다.
이러한 문제를 해결하기 위해 HTTP 에 암호화가 추가된 프로토콜이 HTTPS 입니다.
HTTPS 는 SSL 의 껍질을 덮어쓴 HTTP 라고 할 수 있습니다.
- SSL(Secure Socket Layer) 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약
- 클라이언트와 서버가 서로 데이터를 암호화해 통신할 수 있도록 돕는 보안계층
- TCP 4계층의 암호화 프로토콜
HTTP 는 원래 TCP 와 직접 통신했지만, HTTPS 에서는 HTTP 는 SSL 과 통신하고 SSL 이 TCP 와 통신함으로써 암호화와 증명성, 안정성 보호를 이용할 수 있게 됩니다.
openssl s_client 명령어로 TLS/SSL 연결을 시도할 때의 실제 출력에서 중요한 부분을 확인 할 수 있다.
CONNECTED 메시지
이 메시지가 출력되면 서버와의 연결이 성공적으로 이루어졌다는 의미입니다.
서버 인증서 정보 (Certificate)
서버가 클라이언트에게 인증서를 보낼 때, openssl s_client는 이를 출력합니다. 이 부분을 통해 서버의 인증서가 무엇인지 확인할 수 있습니다.
서버의 공개키와 핸드셰이크 (Key Exchange)
핸드셰이크 중 서버가 사용하는 공개키를 보낸 후, 클라이언트는 이 공개키로 세션 키를 암호화하여 서버로 보냅니다. 하지만 openssl s_client에서는 이를 직접적으로 표시하지는 않아요. 대신, 핸드셰이크와 관련된 정보는 "Cipher Suite"와 관련된 부분에서 확인할 수 있습니다.
세션 정보 (Session Info)
핸드셰이크 후 클라이언트와 서버가 세션 키를 설정하고, 암호화된 연결이 확립됩니다. 이를 확인하려면 세션 정보가 출력됩니다:
안전한 데이터 전송 (Encrypted Communication)
핸드셰이크가 완료되면, 그 후에는 데이터를 암호화된 채널로 전송합니다. openssl s_client에서 -starttls 옵션을 사용했을 때, 클라이언트와 서버 간의 모든 통신은 암호화된 상태로 진행됩니다.
SSL 가속기란?
HTTPS는 HTTP에 보안을 추가한 프로토콜이며, SSL/TLS를 통해 데이터를 암호화한다.
하지만 암호화·복호화 과정에서 CPU 부하가 발생할 수 있다.
특히 금융 서비스, 이커머스 등 대규모 트래픽을 처리하는 환경에서는 암호화 작업이 서버 성능의 병목이 될 수 있다. 이를 해결하기 위해 SSL 가속기(SSL Accelerator)는 암·복호화 연산을 전용 하드웨어 또는 소프트웨어에서 수행하여 서버의 부담을 줄인다.
SSL 가속기의 장점
- CPU 부하 감소 -> 웹서버가 더 많은 요청 처리 가능
- 응답 속도 향상 -> 암복호화 연산을 전용장비에서 수행
- 보안 강화 -> 최신 암호화 기술을 적용하여 보안 유지
SSL 가속기 적용 사례
- 대형 금융 서비스: 인터넷 뱅킹, 온라인 결제 시스템
- 쇼핑몰 및 이커머스: 대규모 HTTPS 트래픽 처리
- 클라우드 서비스: AWS, Azure 등의 SSL 오프로드 기능
'Network' 카테고리의 다른 글
버퍼(Buffer)와 I/O 최적화 (0) | 2025.04.21 |
---|---|
HTTP 메서드란? 멱등성 (0) | 2025.04.01 |
L4 , L7 로드밸런서 (0) | 2025.02.12 |
TCP/IP 네트워크 이해하기 (4) - TCP (0) | 2025.01.27 |
TCP/IP 네트워크 이해하기 (4) - IPv4, ICMP (1) | 2025.01.27 |