TLS의 개념 및 역할

  • TLS(Transport Layer Security)는 데이터 암호화, 인증, 무결성을 제공하여 안전한 통신 환경을 조성.
  • 초기 SSL 프로토콜에서 발전된 것으로, TCP 위에서 작동하여 HTTP, 이메일 등 애플리케이션의 보안을 강화.

TLS의 작동 원리

  • 핸드셰이크 과정: 클라이언트와 서버가 암호화 방식과 키를 협상하여 안전한 터널을 생성.
  • 암호화: 대칭키 암호화를 통해 효율적이고 안전한 데이터 전송.
  • 인증: 신뢰 사슬을 기반으로 클라이언트와 서버의 신원을 확인.

 

최적화 기법

  • 세션 재개: TLS 핸드셰이크 과정에서 발생하는 레이턴시를 줄이기 위해 세션 캐시나 세션 티켓을 활용.
  • TLS 레코드 크기 조정: 레코드 크기를 TCP MSS(Maximum Segment Size)에 맞춰 설정해 효율적 데이터 전송.
  • 조기 종료: CDN(콘텐츠 전송 네트워크)나 프록시 서버를 활용해 클라이언트와 가까운 서버에서 세션을 종료해 레이턴시 최소화.
  • 압축 비활성화: TLS 레벨에서의 압축은 보안 문제(CRIME 공격) 및 이중 압축 문제로 인해 비활성화 권장.

 

TLS 관련 최신 기술

  • ALPN (Application-Layer Protocol Negotiation): 핸드셰이크 과정에서 애플리케이션 프로토콜 협상을 포함시켜 추가 레이턴시를 줄임.
  • SNI(Server Name Indication): 하나의 서버에서 여러 도메인을 운영할 때 필요한 확장.

 

실무에서의 TLS 활용

  • 최신 OpenSSL 및 TLS 버전 사용으로 성능 최적화.
  • 인증서 길이 최소화 및 중간 인증서 포함으로 불필요한 레이턴시 방지.
  • TLS를 지원하지 않는 구형 클라이언트를 고려해 세션 캐시와 세션 티켓을 병행 사용하는 것이 권장됨.

 

참고 자료

[1] 일리아 그리고릭, "구글 엔지니어에게 듣는 네트워킹과 웹 성능 최적화 기법", 정해권, 오현주 공역, 인사이트(insight)

+ Recent posts