honey_pot

CloudFlare - CDN 보안 본문

네트워크

CloudFlare - CDN 보안

_tera_ 2023. 6. 13. 11:45

SSL/TLS 암호화

TLS(Transport Layer Security)

  • 인터넷을 통해 전송하는 데이터를 암호화하는 프로토콜
  • 최초로 널리 채택된 웹 암호화 프로토콜인 SSL(Secure Sockets Layer)을 확장, 기존 프로토콜의 보안 결함을 대부분 해결 http://가 아니라 https://로 시작하는 웹 사이트는 브라우저와 서버 간의 통신에 TLS/SSL을 사용
  • 암호화 프로토콜 👉 의도된 수신자만 정보를 해독, 중간자는 전송된 데이터의 콘텐츠 해독 불가

TLS 프로토콜 설계

  1. 1. 인증 - 제공된 ID의 유효성을 검증
  2. 2. 암호화 - 호스트 간에 전송되는 정보를 변조
  3. 3. 무결성 - 위조 및 변조 발견

 

SSL 인증서

사이트에서 TLS를 사용하려면, SSL 인증서해당 가 필요

인증서 👉 사이트의 소유자에 대한 정보 및 비대칭 키 쌍의 공개된 절반을 갖고 있는 파일 인증서의 정보가 올바른지 확인한 인증 기관 (CA)의 디지털 서명

 

  • CDN에는 CDN 제공 인증서를 사용하며 동일 네트워크 내에서 호스팅되는 자산을 방문하는 사람들에게 보안을 제공
  • 방문자는 CDN에만 연결하기 때문에, 원본 서버와 CDN 사이의 사용 중인 낡거나 덜 안전한 인증서가 클라이언트의 경험에 영향을 주지 않음

 

SSL/TLS 연결은 기존 TCP/IP 연결과 다르게 작동한다

  • TCP 연결의 초기 단계가 마무리되면, 보안 연결을 설정하기 위한 별도의 교환이 발생
  • 보안 연결을 요청하는 장치를 클라이언트, 보안 연결을 제공하는 장치를 서버라고 부름

 

3단계에 걸쳐 TCP/IP 핸드쉐이크가 수행

  1. 1. 클라이언트가 연결을 시작하기 위해 SYN 패킷을 서버로 전송
  2. 2. 서버는 이 통신을 승인하기 위해 SYN/ACK 패킷으로 해당 초기 패킷에 응답
  3. 3. 클라이언트는 서버로부터 패킷의 수신을 승인하기 위해 ACK 패킷을 반환
  4. 4. TCP 연결이 열리고 데이터를 전송하고 수신
  5.  
  6. (TCP/IP 핸드쉐이크가 이뤄지면, TLS 암호화 핸드쉐이크 시작)
  7. TLS 암호화를 사용하면 전체 메시지 수가 증가하기 때문에 웹 페이지 로드 시간이 길어짐

TLS 핸드쉐이크의 3가지 기본 요소

  1. 1. 클라이언트와 서버가 TLS 버전과 통신에 사용할 암호의 유형에 대해 협상
  2. 2. 클라이언트와 서버의 상호 인증된 통신을 보장하기 위한 단계를 수행
  3. 3. 향후 암호화된 통신에서 이용할 키를 교환

SSL로 인한 대기 시간의 개선 방법

1. TLS 세션 재개

  • CDN은 추가 요청에 대해 동일한 세션을 재개 👉 원본 서버와 CDN 네트워크 간에 연결을 활성 상태로 오래 유지
  • 연결이 활성 상태로 유지되면 클라이언트가 캐시되지 않은 원본의 내용을 요청할 때 CDN과 원본 서버 간의 연결 재협상에 소모되는 시간 감소

  • 세션 재개의 전체 비용 : 전체 TLS 핸드쉐이크의 50% 미만 (전체 TLS 핸드쉐이크에는 왕복이 2회 필요하지만, 세션 재개는 1회의 왕복으로 끝나기 때문)
  • (새 세션에 필요한) 대량의 유한 필드 계산이 필요하지 않음 👉 클라이언트의 CPU 비용은 전체 TLS 핸드쉐이크에서와 비교하면 거의 무시 가능.
  • 모바일 사용자의 경우, 세션 재개로 성능을 높이면, 훨씬 반응성이 좋아지고, 배터리 수명이 늘어나는 효과

2. TLS False 시작 사용

  • 방문자가 처음으로 사이트를 방문한 경우에는 세션 재개 도움X
  • 송신자는 완전한 TLS 핸드쉐이크 없이 응용 프로그램 데이터를 전송

  • TLS 프로토콜 자체를 수정하는 것이 아니고, 데이터가 전송되는 시점만 변경
  • 클라이언트가 키 교환을 시작하면, 암호화를 보장할 수 있으므로, 데이터 전송이 시작👉 왕복 회수가 줄어들고 필요 대기 시간이 60ms 단축

 

3. 제로 왕복 시간 재개(0-RTT)

  • 연결에 RTT 대기 시간이 추가되지 않고 세션을 재개
  • TLS 1.3 및 0-RTT를 사용하여 재개된 연결의 경우 연결 속도가 향상되어 사용자들이 정기적으로 방문하는 웹 사이트에 대해 더 빠르고 부드러운 웹 경험 👉특히 모바일 네트워크 상에서 두드러짐
  • 보안을 희생 👉 CDN 서비스는 재생 공격이라고 하는 위험을 극복하기 위해 HTTP 요청의 유형 및 허용되는 매개변수를 제한
Comments