honey_pot
CloudFlare - CDN 보안 본문
SSL/TLS 암호화
TLS(Transport Layer Security)
- 인터넷을 통해 전송하는 데이터를 암호화하는 프로토콜
- 최초로 널리 채택된 웹 암호화 프로토콜인 SSL(Secure Sockets Layer)을 확장, 기존 프로토콜의 보안 결함을 대부분 해결 http://가 아니라 https://로 시작하는 웹 사이트는 브라우저와 서버 간의 통신에 TLS/SSL을 사용
- 암호화 프로토콜 👉 의도된 수신자만 정보를 해독, 중간자는 전송된 데이터의 콘텐츠 해독 불가
TLS 프로토콜 설계
- 1. 인증 - 제공된 ID의 유효성을 검증
- 2. 암호화 - 호스트 간에 전송되는 정보를 변조
- 3. 무결성 - 위조 및 변조 발견
SSL 인증서
사이트에서 TLS를 사용하려면, SSL 인증서와 해당 키가 필요
인증서 👉 사이트의 소유자에 대한 정보 및 비대칭 키 쌍의 공개된 절반을 갖고 있는 파일 인증서의 정보가 올바른지 확인한 인증 기관 (CA)의 디지털 서명
- CDN에는 CDN 제공 인증서를 사용하며 동일 네트워크 내에서 호스팅되는 자산을 방문하는 사람들에게 보안을 제공
- 방문자는 CDN에만 연결하기 때문에, 원본 서버와 CDN 사이의 사용 중인 낡거나 덜 안전한 인증서가 클라이언트의 경험에 영향을 주지 않음
SSL/TLS 연결은 기존 TCP/IP 연결과 다르게 작동한다
- TCP 연결의 초기 단계가 마무리되면, 보안 연결을 설정하기 위한 별도의 교환이 발생
- 보안 연결을 요청하는 장치를 클라이언트, 보안 연결을 제공하는 장치를 서버라고 부름
3단계에 걸쳐 TCP/IP 핸드쉐이크가 수행
- 1. 클라이언트가 연결을 시작하기 위해 SYN 패킷을 서버로 전송
- 2. 서버는 이 통신을 승인하기 위해 SYN/ACK 패킷으로 해당 초기 패킷에 응답
- 3. 클라이언트는 서버로부터 패킷의 수신을 승인하기 위해 ACK 패킷을 반환
- 4. TCP 연결이 열리고 데이터를 전송하고 수신
- (TCP/IP 핸드쉐이크가 이뤄지면, TLS 암호화 핸드쉐이크 시작)
- TLS 암호화를 사용하면 전체 메시지 수가 증가하기 때문에 웹 페이지 로드 시간이 길어짐
TLS 핸드쉐이크의 3가지 기본 요소
- 1. 클라이언트와 서버가 TLS 버전과 통신에 사용할 암호의 유형에 대해 협상
- 2. 클라이언트와 서버의 상호 인증된 통신을 보장하기 위한 단계를 수행
- 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 요청의 유형 및 허용되는 매개변수를 제한
'네트워크' 카테고리의 다른 글
CloudFlare - CDN의 지표 2. TTL (0) | 2023.06.13 |
---|---|
CloudFlare - CDN의 지표 1. 왕복 시간(RTT) (0) | 2023.06.13 |
CloudFlare - CDN 안정성과 이중화 (0) | 2023.06.13 |
CloudFlare - CDN의 작동 방식 (0) | 2023.06.13 |
CloudFlare - CDN에서 로드 시간이 개선되는 방식 (0) | 2023.06.13 |
Comments