Network

HTTP/ HTTPS , SSL 가속기

경딩 2025. 3. 19. 18:39

예전에 은행권 프로젝트를 진행하며 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 와 통신함으로써 암호화와 증명성, 안정성 보호를 이용할 수 있게 됩니다.

https://brunch.co.kr/@swimjiy/47

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