다음을 통해 공유


BranchCache 개요

 

적용 대상: Windows Server 2012, Windows 8

이 항목은 IT(정보 기술) 전문가를 대상으로 하며 BranchCache 모드, 특성, 기능 및 여러 운영 체제에서 사용할 수 있는 BranchCache 기능을 포함하여 BranchCache에 대한 개략적인 정보를 제공합니다.

BranchCache의 대상 사용자

시스템 관리자, 네트워크/저장소 솔루션 구축자 또는 기타 IT 전문가라면 다음과 같은 상황에서 BranchCache를 사용할 수 있습니다.

  • 실제 위치가 둘 이상이고 지점에서 본사로 연결되는 WAN(광역 네트워크)을 사용하는 조직을 위해 IT 인프라를 디자인하거나 지원하는 경우

  • 클라우드 기술을 배포했으며 작업자들이 WAN 연결을 사용하여 원격 위치의 데이터 및 응용 프로그램에 액세스하는 조직을 위해 IT 인프라를 디자인하거나 지원하는 경우

  • 지점과 본사 간의 네트워크 트래픽 양을 줄여 WAN 대역폭 사용을 최적화하려는 경우

  • 이 항목에서 설명하는 구성과 일치하는 콘텐츠 서버를 본사에서 배포했거나 배포할 예정인 경우

  • 지점의 클라이언트 컴퓨터에서 Windows® 8 또는 Windows® 7을 실행하는 경우

이 항목에는 다음 섹션이 포함되어 있습니다.

  • BranchCache란?

  • BranchCache 모드

  • BranchCache 사용 가능 콘텐츠 서버

  • BranchCache와 클라우드

  • 콘텐츠 정보 버전

  • BranchCache에서 파일의 콘텐츠 업데이트를 처리하는 방법

  • BranchCache 설치 가이드

  • BranchCache용 운영 체제 버전

  • BranchCache 보안

  • 콘텐츠 흐름 및 프로세스

  • 캐시 보안

BranchCache란?

BranchCache는 일부 버전의 Windows Server® 2012 및 Windows® 8 운영 체제와 Windows Server® 2008 R2 및 Windows® 7에 포함된 WAN(광역 네트워크) 대역폭 최적화 기술입니다. 사용자가 원격 서버의 콘텐츠에 액세스할 때 WAN 대역폭을 최적화하기 위해 BranchCache는 본사 또는 호스트된 클라우드 콘텐츠 서버에서 콘텐츠를 복사한 다음 지점 위치의 콘텐츠를 캐시하여 지점의 클라이언트 컴퓨터가 WAN이 아닌 로컬로 콘텐츠에 액세스할 수 있도록 합니다.

지점에서 콘텐츠는 캐시를 호스팅하도록 구성된 서버에 저장되거나, 지점에서 서버를 사용할 수 없는 경우 Windows 8 또는 Windows 7을 실행하는 클라이언트 컴퓨터에 저장됩니다. 클라이언트 컴퓨터가 본사에서 콘텐츠를 요청하여 수신한 후 이 콘텐츠가 지점에 캐시되면 같은 지점의 다른 컴퓨터에서는 WAN 연결을 통해 콘텐츠 서버의 콘텐츠를 다운로드하지 않고도 로컬로 콘텐츠를 사용할 수 있게 됩니다.

클라이언트 컴퓨터에서 같은 콘텐츠에 대한 후속 요청을 수행하는 경우 클라이언트는 실제 콘텐츠를 다운로드하는 것이 아니라 서버에서 콘텐츠 정보를 다운로드합니다. 콘텐츠 정보는 원본 콘텐츠 청크를 사용하여 계산되는 해시로 구성되며 원본 데이터의 콘텐츠에 비해 크기가 매우 작습니다. 그런 다음 클라이언트 컴퓨터는 콘텐츠 정보를 사용하여 지사의 캐시(클라이언트 컴퓨터 또는 서버에 있음)에서 콘텐츠를 찾습니다. 또한 클라이언트 컴퓨터와 서버는 콘텐츠 정보를 사용하여 권한이 없는 사용자가 액세스할 수 없도록 캐시된 콘텐츠를 보호합니다.

BranchCache는 지점에 있는 클라이언트와 서버의 콘텐츠 쿼리 응답 속도를 개선하여 최종 사용자 생산성을 높일 뿐만 아니라, WAN 연결을 통한 트래픽을 줄임으로써 네트워크 성능도 향상시킬 수 있습니다.

BranchCache 모드

BranchCache에는 분산 캐시 모드와 호스트 캐시 모드의 두 가지 작동 모드가 있습니다.

분산 캐시 모드로 BranchCache를 배포하는 경우 지점의 콘텐츠 캐시는 클라이언트 컴퓨터 간에 분산됩니다.

호스트된 캐시 모드로 BranchCache를 배포하는 경우 지점의 콘텐츠 캐시는 하나 이상의 서버 컴퓨터(호스트 캐시 서버)에서 호스팅됩니다.

참고

두 가지 모드를 모두 사용하여 BranchCache를 배포할 수 있지만, 지점당 한 모드만 사용해야 합니다. 예를 들어 지점이 두 개인데 한 지점에 서버가 있고 다른 지점에는 없는 경우 서버가 있는 지점에서 호스트된 캐시 모드로 BranchCache를 배포하고, 클라이언트 컴퓨터만 있는 지점에서 분산 캐시 모드로 BranchCache를 배포할 수 있습니다.

다음 그림에서는 두 가지 모드를 모두 사용하여 BranchCache를 배포합니다.

BranchCache 모드

분산 캐시 모드는 호스트 캐시 서버로 사용할 수 있는 로컬 서버가 없는 소규모 지점에 적합합니다. 분산 캐시 모드를 사용하는 경우 지점에 하드웨어를 추가하지 않고도 BranchCache를 배포할 수 있습니다.

BranchCache를 배포할 지점에 추가 인프라(예: 다른 워크로드를 실행하는 하나 이상의 서버)가 있는 경우 다음과 같은 이유로 BranchCache를 호스트된 캐시 모드에서 배포하는 것이 더 효율적입니다.

향상된 캐시 가용성

호스트된 캐시 모드에서는 데이터를 원래 요청하고 캐시한 클라이언트가 오프라인 상태인 경우에도 콘텐츠를 사용할 수 있기 때문에 캐시 효율성이 높아집니다. 호스트 캐시 서버는 항상 사용할 수 있기 때문에 더 많은 콘텐츠가 캐시되고 WAN 대역폭을 보다 많이 절약할 수 있으며 BranchCache 효율성이 향상됩니다.

다중 서브넷 지점을 위한 중앙식 캐싱

분산 캐시 모드는 단일 서브넷에서 작동합니다. 분산 캐시 모드를 사용하도록 구성된 다중 서브넷 지점에서는 한 서브넷으로 다운로드한 파일을 다른 서브넷의 클라이언트 컴퓨터와 공유할 수 없습니다. 이에 따라 다른 서브넷의 클라이언트에서는 해당 파일이 이미 다운로드되었음을 확인할 수 없으므로 프로세스의 WAN 대역폭을 사용해 본사 콘텐츠 서버에서 파일을 가져옵니다. 그러나 호스트된 캐시 모드로 배포하는 경우에는 이러한 과정이 진행되지 않습니다. 즉, 클라이언트가 각각 다른 서브넷에 있더라도 다중 서브넷 지점의 모든 클라이언트가 호스트 캐시 서버에 저장된 단일 캐시에 액세스할 수 있습니다. 또한 Windows Server 2012의 BranchCache는 지점당 둘 이상의 호스트 캐시 서버를 배포할 수 있는 기능을 제공합니다.

경고

파일 및 폴더의 SMB 캐싱을 위해 BranchCache를 사용하는 경우에는 오프라인 파일을 사용하지 않도록 설정하지 마세요. 오프라인 파일을 사용하지 않도록 설정하면 BranchCache SMB 캐싱이 올바르게 작동하지 않습니다.

BranchCache 사용 가능 콘텐츠 서버

BranchCache를 배포할 때 원본 콘텐츠는 본사의 BranchCache 사용 가능 콘텐츠 서버에 저장됩니다. BranchCache에서 지원되는 콘텐츠 서버 유형은 다음과 같습니다.

참고

원본 콘텐츠, 즉 클라이언트 컴퓨터가 BranchCache 사용 가능 콘텐츠 서버에서 처음 가져온 콘텐츠만 BranchCache에서 가속됩니다. 클라이언트 컴퓨터가 인터넷의 웹 서버나 Windows 업데이트 등의 다른 출처로부터 직접 가져온 콘텐츠는 클라이언트 컴퓨터 또는 호스트 캐시 서버에서 캐시된 다음 지점의 다른 컴퓨터와 공유되지 않습니다. 그러나 Windows 업데이트 콘텐츠를 가속하려는 경우 본사에 WSUS(Windows Server Update Services) 응용 프로그램 서버를 설치하고 BranchCache 콘텐츠 서버로 구성할 수 있습니다.

웹 서버

지원되는 웹 서버에는 웹 서버(IIS)의 서버 역할이 설치되어 있고 HTTP(Hypertext Transfer Protocol) 또는 HTTPS(HTTP Secure)를 사용하며 Windows Server 2012 또는 Windows Server® 2008 R2을 실행하는 컴퓨터가 포함됩니다. 또한 웹 서버에는 BranchCache 기능이 설치되어 있어야 합니다.Windows Server 2012의 웹 서버(IIS)에 대한 자세한 내용은 웹 서버(IIS)를 참조하세요.

파일 서버

지원되는 파일 서버에는 Windows Server 2012 또는 Windows Server 2008 R2을 실행하며 파일 서비스 서버 역할과 네트워크 파일용 BranchCache 역할 서비스가 설치되어 있는 컴퓨터가 포함됩니다. 이러한 파일 서버는 SMB(서버 메시지 블록)를 사용하여 컴퓨터 간에 정보를 교환합니다. 파일 서버를 설치한 후에는 그룹 정책이나 로컬 컴퓨터 정책을 이용하여 BranchCache를 사용하도록 설정해 폴더를 공유하고 공유 폴더에 대한 해시 생성을 사용하도록 설정해야 합니다.Windows Server 2012의 파일 및 저장소 서비스에 대한 자세한 내용은 파일 및 저장소 서비스를 참조하세요.

응용 프로그램 서버

지원되는 응용 프로그램 서버에는 Windows Server 2012 또는 Windows Server 2008 R2를 실행하며 BITS(Background Intelligent Transfer Service)가 설치 및 사용하도록 설정되어 있는 컴퓨터가 포함됩니다. 또한 응용 프로그램 서버에는 BranchCache 기능이 설치되어 있어야 합니다. 예를 들어 Microsoft WSUS(Windows Server Update Services) 및 Microsoft System Center Configuration Manager 분기 배포 지점 서버를 BranchCache 콘텐츠 서버로 배포할 수 있습니다.

BranchCache와 클라우드

클라우드를 사용하면 운영 경비를 줄이고 작동 범위를 새로운 수준으로 확장할 수 있어 매우 유용하지만, 사용자에게 익숙한 위치가 아닌 클라우드로 워크로드를 이전하는 경우 네트워킹 비용이 증가하고 생산성이 저하될 수 있습니다. 사용자는 뛰어난 성능을 원하지만 응용 프로그램과 데이터가 호스팅되는 위치에 대해서는 크게 신경쓰지 않습니다. BranchCache는 공유 데이터 캐시를 통해 네트워크 응용 프로그램의 성능을 개선하고 대역폭 사용량을 줄일 수 있습니다. 즉, BranchCache는 작업자들이 클라우드에 배포된 서버를 사용하는 본사와 지점의 생산성을 높여 줍니다.

BranchCache는 하드웨어를 새로 추가하거나 네트워크 토폴로지를 변경하지 않고도 사용할 수 있어 여러 사무실 위치와 공용 및 사설 클라우드 간의 통신을 개선하는 데 최적의 솔루션입니다.

Windows Server 2012의 클라우드 기술에 대한 자세한 내용은 Building Your Cloud Infrastructure을 참조하세요.

콘텐츠 정보 버전

두 가지 콘텐츠 정보 버전에는 다음의 두 가지 종류가 있습니다.

  • Windows Server 2008 R2 및 Windows 7을 실행하는 컴퓨터와 호환되는 콘텐츠 정보를 버전 1, 즉 V1이라고 합니다. 파일 세그먼트는 V1 BranchCache 파일 구분 기능을 갖춰 V2에서 더 크고, 그 크기도 고정되어 있습니다. 고정된 세크먼트의 크기가 커서 사용자가 파일 길이를 수정하도록 변경하면 무효화하도록 변경한 세그먼트뿐만 아니라 파일 끝에 있는 세그먼트가 모두 무효화됩니다. 따라서 지점에 있는 다른 사용자가 다음 번에 변경된 파일을 호출하면 변경된 콘텐츠와 변경한 이후의 모든 콘텐츠가 WAN 링크를 통해 전송되기 때문에 WAN 대역폭 절감 효과가 줄어듭니다.

  • Windows Server 2012 및 Windows 8를 실행하는 컴퓨터와 호환되는 콘텐츠 정보를 2, 즉 V2라고 합니다. V2 콘텐츠 정보에서는 파일 내의 변경 사항에 보다 적절하게 적용되는 더 작은 변수 크기의 세그먼트를 사용합니다. 이 경우 사용자가 업데이트된 버전에 액세스하면 이전 버전의 파일에서 만들어진 세그먼트를 다시 사용할 수 있는 가능성이 높아집니다. 그 결과, 해당 세그먼트는 콘텐츠 서버에서 변경된 파일을 일부만 검색하여 WAN 대역폭을 더 적게 사용합니다.

다음 표에는 클라이언트, 콘텐츠 서버 및 BranchCache 배포 시 사용하는 호스트 캐시 서버 운영 체제에 따라 사용되는 콘텐츠 정보 버전에 대한 설명이 나와 있습니다.

참고

아래 표에서 약자, “OS”는 운영 체제를 의미합니다.

클라이언트 OS 콘텐츠 서버 OS 호스트 캐시 서버 OS 콘텐츠 정보 버전
Windows Server 2008 R2 및 Windows 7 Windows Server 2012 또는 Windows Server 2008 R2 Windows Server 2012 또는 Windows Server 2008 R2(분산 캐시 모드의 경우 해당 안 됨) V1
Windows Server 2012 및 Windows 8 Windows Server 2008 R2 Windows Server 2012 또는 Windows Server 2008 R2(분산 캐시 모드의 경우 해당 안 됨) V1
Windows Server 2012 및 Windows 8 Windows Server 2012 Windows Server 2008 R2(분산 캐시 모드의 경우 해당 안 됨) V1
Windows Server 2012 및 Windows 8 Windows Server 2012 Windows Server 2012(분산 캐시 모드의 경우 해당 안 됨) V2

Windows Server 2012를 실행하는 콘텐츠 서버와 호스트 캐시 서버가 있는 경우, 이들 서버는 정보를 요청하는 BranchCache 클라이언트 운영 체제에 따라 해당하는 콘텐츠 정보 버전을 사용합니다.Windows Server 2012 및 Windows 8를 실행하는 컴퓨터에서 콘텐츠를 요청할 경우 콘텐츠 및 호스트 캐시 서버에서는 V2 콘텐츠 정보를 사용하며, Windows Server 2008 R2 및 Windows 7을 실행하는 컴퓨터에서 콘텐츠를 요청할 경우에는 콘텐츠 및 호스트 캐시 서버에서 V1 콘텐츠 정보를 사용합니다.

분산 캐시 모드에서 BranchCache를 배포할 경우 다른 콘텐츠 정보 버전을 사용하는 클라이언트는 다른 클라이언트와 콘텐츠를 공유하지 않습니다.

BranchCache에서 파일의 콘텐츠 업데이트를 처리하는 방법

지점 사용자가 문서 콘텐츠를 수정하거나 업데이트하는 경우 해당 변경 내용이 BranchCache의 개입 없이도 본사 콘텐츠 서버에 직접 기록됩니다. 사용자가 콘텐츠 서버에서 문서를 다운로드했거나 지점의 호스트 캐시나 분산 캐시에서 문서를 가져온 경우에도 마찬가지입니다.

수정된 파일을 지점의 다른 클라이언트에서 요청하는 경우, 파일의 새 세그먼트가 본사 서버에서 다운로드되어 해당 지점의 분산 캐시나 호스트 캐시에 추가됩니다. 이 때문에 지점 사용자는 항상 최신 버전의 캐시된 콘텐츠를 수신합니다.

BranchCache 설치 가이드

Windows Server 2012의 서버 관리자를 사용해 파일 서비스 서버 역할의 네트워크 파일용 BranchCache 역할 서비스 또는 BranchCache 기능을 설치할 수 있습니다. 다음 표를 사용하여 역할 서비스와 기능 중 설치할 항목을 결정할 수 있습니다.

기능 컴퓨터 위치 설치할 BranchCache 요소
콘텐츠 서버(BITS 기반 응용 프로그램 서버) 본사 또는 클라우드 데이터 센터 BranchCache 기능
콘텐츠 서버(웹 서버) 본사 또는 클라우드 데이터 센터 BranchCache 기능
콘텐츠 서버(SMB 프로토콜을 사용하는 파일 서버) 본사 또는 클라우드 데이터 센터 파일 서비스 서버 역할의 네트워크 파일용 BranchCache 역할 서비스
호스트 캐시 서버 지점 호스트 캐시 서버 모드를 사용하도록 설정한 BranchCache 기능
BranchCache 사용 가능 클라이언트 컴퓨터 지점 설치 필요 없음. 클라이언트에서 BranchCache와 BranchCache 모드(분산 또는 호스트)만 사용하도록 설정하면 됩니다.

역할 서비스나 기능을 설치하려면 서버 관리자를 열고 BranchCache 기능을 사용하도록 설정할 컴퓨터를 선택합니다. 서버 관리자에서 관리, 역할 및 기능 추가를 차례로 클릭합니다.역할 및 기능 추가 마법사가 열립니다. 마법사를 실행하면서 다음을 선택합니다.

  • 설치 유형 선택 마법사 페이지에서 역할 기반 또는 기능 기반 설치를 선택합니다.

  • 서버 역할 선택 마법사 페이지에서 BranchCache 사용 가능 파일 서버를 설치하는 경우 파일 서비스를 선택합니다. 마법사 구성 프로세스의 뒷부분에서는 네트워크 파일용 BranchCache도 선택합니다. BranchCache 사용 가능 파일 서버를 설치하지 않으려면 네트워크 파일용 BranchCache 역할 서비스와 함께 파일 서비스 역할을 설치하지 마세요.

  • 기능 선택 마법사 페이지에서 파일 서버가 아닌 콘텐츠 서버 또는 호스트 캐시 서버를 설치하는 경우 BranchCache를 선택합니다. 파일 서버나 호스트 캐시 서버 이외의 콘텐츠 서버를 설치하지 않으려면 BranchCache 기능을 설치하지 마세요.

BranchCache용 운영 체제 버전

다음은 각 BranchCache 기능 유형을 지원하는 운영 체제의 목록입니다.

BranchCache 클라이언트 컴퓨터 기능을 지원하는 운영 체제

  • Windows® 8 Enterprise

  • Windows® 7 Enterprise

  • Windows® 7 Ultimate

BranchCache 콘텐츠 서버 기능을 지원하는 운영 체제

Windows Server 2012 운영 체제 제품군은 BranchCache 콘텐츠 서버로 사용할 수 있습니다.

또한 Windows Server® 2008 R2 운영 체제 제품군도 BranchCache 콘텐츠 서버로 사용할 수 있습니다. 단, 다음의 예외가 적용됩니다.

  • Windows Server® 2008 R2 Enterprise의 Server Core 설치(Hyper-V 포함)에서는 BranchCache가 지원되지 않습니다.

  • Windows Server® 2008 R2 Datacenter의 Server Core 설치(Hyper-V 포함)에서는 BranchCache가 지원되지 않습니다.

BranchCache 호스트 캐시 서버 기능을 지원하는 운영 체제

Windows Server 2012 운영 체제 제품군은 BranchCache 호스트 캐시 서버로 사용할 수 있습니다.

또한 다음 Windows Server® 2008 R2 운영 체제도 BranchCache 호스트 캐시 서버로 사용할 수 있습니다.

  • Windows Server® 2008 R2 Enterprise

  • Windows Server 2008 R2 Enterprise(Hyper-V 포함)

  • Windows Server 2008 R2 Enterprise Server Core 설치

  • Windows Server 2008 R2 Enterprise Server Core 설치(Hyper-V 포함)

  • Itanium 기반 시스템용 Windows Server 2008 R2

  • Windows Server® 2008 R2 Datacenter

  • Windows Server® 2008 R2 Datacenter(Hyper-V 포함)

  • Windows Server 2008 R2 Datacenter Server Core 설치(Hyper-V 포함)

BranchCache 보안

BranchCache는 기존 네트워크 보안 아키텍처와 함께 원활하게 작동하는 기본 보안 방식을 구현하며, 추가 장비나 복잡한 추가 보안 구성을 사용할 필요가 없습니다.

BranchCache는 침투성 솔루션이 아니고 Windows 인증 또는 권한 부여 프로세스를 변경하지 않습니다. BranchCache를 배포한 후에도 인증은 도메인 자격 증명을 사용하여 수행되며 ACL(액세스 제어 목록) 기능을 사용한 권한 부여 방식은 변경되지 않습니다. 또한 다른 구성도 BranchCache 배포 전과 동일하게 계속 작동합니다.

BranchCache 보안 모델은 일련의 해시 형식인 메타데이터 작성을 기반으로 합니다. 이러한 해시를 콘텐츠 정보라고도 합니다.

작성된 콘텐츠 정보는 실제 데이터가 아닌 BranchCache 메시지 교환에서 사용되며 지원되는 프로토콜(HTTP, HTTPS, SMB)을 사용해 교환됩니다.

캐시된 데이터는 암호화된 상태로 유지되며 원본 출처의 콘텐츠 액세스 권한이 없는 클라이언트는 해당 데이터에 액세할 수 없습니다. 클라이언트는 원본 콘텐츠 출처에서 인증되고 권한을 부여받아야 콘텐츠 메타데이터를 검색할 수 있으며, 콘텐츠 메타데이터를 소유하고 있어야 로컬 사무실의 캐시에 액세스할 수 있습니다.

BranchCache의 콘텐츠 정보 생성 방법

콘텐츠 정보는 여러 요소에서 작성되므로 콘텐츠 정보의 값은 항상 고유합니다. 이러한 요소는 다음과 같습니다.

  • 해시가 파생되는 실제 콘텐츠(예: 웹 페이지, 공유 파일).

  • 해싱 알고리즘, 블록 크기 등의 구성 매개 변수. 콘텐츠 정보를 생성하기 위해 콘텐츠 서버는 콘텐츠를 여러 세그먼트로 분할한 다음 세그먼트를 다시 블록으로 세분화합니다. BranchCache는 보안 암호화 해시를 사용해 각 블록과 세그먼트를 식별 및 확인하고 SHA256 해시 알고리즘을 지원합니다.

  • 서버 암호. 모든 콘텐츠 서버는 임의의 길이로 된 이진 값인 서버 암호를 사용하여 구성해야 합니다.

참고

서버 암호를 사용하면 클라이언트 컴퓨터가 콘텐츠 정보를 자체적으로 생성할 수 없습니다. 따라서 클라이언트가 이전 버전에는 액세스할 수 있었지만 현재 버전에는 액세스할 수 없는 경우, 악의적인 사용자가 BranchCache 사용 가능 클라이언트 컴퓨터에 무차별 암호 대입 공격(brute force attack)을 사용하여 버전 간의 미세한 콘텐츠 변경 내용을 추측할 수 없습니다.

콘텐츠 세부 정보

BranchCache는 서버 암호를 키로 사용하여 권한이 있는 클라이언트에 발송되는 콘텐츠 관련 해시를 파생시킵니다. 결합된 서버 암호와 데이터 해시에 해싱 알고리즘을 적용하면 이 해시가 생성됩니다.

이 해시를 세그먼트 암호라고 합니다. BranchCache는 세그먼트 암호를 사용하여 통신을 보호합니다. 또한 BranchCache는 해시된 데이터 블록 목록인 블록 해시 목록과 블록 해시 목록을 해시하여 생성되는 데이터 해시를 만듭니다.

콘텐츠 정보에는 다음 항목이 포함됩니다.

  • 블록 해시 목록:

    BlockHashi = Hash(dataBlocki) 1<=i<=n

  • HoD(데이터 해시):

    HoD = Hash(BlockHashList)

  • 세그먼트 암호(Kp):

    Kp = HMAC(Ks, HoD)

BranchCache는 피어 콘텐츠 캐싱 프로토콜 및 검색 프레임워크 프로토콜을 사용하여 콘텐츠 캐시 간의 데이터 캐싱 및 검색을 안전하게 수행하도록 하는 데 필요한 프로세스를 구현합니다.

또한 BranchCache는 실제 콘텐츠 자체를 처리 및 전송할 때 사용하는 것과 같은 수준의 보안으로 콘텐츠 정보를 처리합니다.

콘텐츠 흐름 및 프로세스

콘텐츠 정보 및 실제 콘텐츠의 흐름은 다음의 네 단계로 구분됩니다.

  1. BranchCache 프로세스: 콘텐츠 요청

  2. BranchCache 프로세스: 콘텐츠 찾기

  3. BranchCache 프로세스: 콘텐츠 검색

  4. BranchCache 프로세스: 콘텐츠 캐시

다음 섹션에서는 이러한 단계에 대해 설명합니다.

BranchCache 프로세스: 콘텐츠 요청

첫 번째 단계에서는 지점의 클라이언트 컴퓨터가 본사와 같이 원격 위치에 있는 콘텐츠 서버에서 파일 또는 웹 페이지 등의 콘텐츠를 요청합니다. 그러면 콘텐츠 서버에서 클라이언트 컴퓨터가 요청한 콘텐츠를 받을 권한이 있는지 확인합니다. 클라이언트 컴퓨터에 권한이 있고 콘텐츠 서버와 클라이언트가 모두 BranchCache를 사용하도록 설정되어 있으면 콘텐츠 서버가 콘텐츠 정보를 생성합니다.

그런 다음 콘텐츠 서버는 실제 콘텐츠에 사용되는 것과 같은 프로토콜을 사용하여 콘텐츠 정보를 클라이언트 컴퓨터로 보냅니다. 예를 들어 클라이언트 컴퓨터가 HTTP를 통해 웹 페이지를 요청한 경우 콘텐츠 서버는 HTTP를 사용하여 콘텐츠 정보를 보냅니다. 따라서 콘텐츠와 콘텐츠 정보의 유선 수준 보안은 동일하게 보장됩니다.

클라이언트 컴퓨터는 초기 콘텐츠 정보 부분(데이터 해시 + 세그먼트 암호)를 받으면 다음 작업을 수행합니다.

  • 세그먼트 암호(Kp)를 암호화 키(Ke)로 사용합니다.

  • Hod 및 Kp에서 세그먼트 ID(HoHoDk)를 생성합니다.

    HoHoDk = HMAC(Kp, HoD + C), where C is the ASCII string “MS_P2P_CACHING” with NUL terminator.

이 계정에서 가장 큰 위협은 세그먼트 암호 관련 위험이지만, BranchCache는 콘텐츠 데이터 블록을 암호화함으로써 세그먼트 암호를 보호합니다. 이를 위해 BranchCache는 콘텐츠 블록이 있는 콘텐츠 세그먼트의 세그먼트 암호에서 파생되는 암호화 키를 사용합니다. 이러한 방식이 사용되므로 서버 암호를 소유하고 있지 않은 엔터티는 데이터 블록의 실제 콘텐츠를 검색할 수 없습니다. 지정된 세그먼트의 세그먼트 암호를 알고 있으면 엔터티가 피어로부터 세그먼트를 가져와서 암호를 해독할 수 있으므로, 세그먼트 암호는 일반 텍스트 세그먼트와 동일한 수준의 보안으로 처리됩니다. 서버 암호를 확인한다고 해서 특정 일반 텍스트를 즉시 알아낼 수 있는 것은 아니지만, 서버 암호를 사용해 암호화 텍스트에서 특정 유형의 데이터를 파생시킨 다음 부분적으로 알려진 일부 데이터를 무차별 암호 대입 공격(brute force attack)에 노출시킬 수는 있습니다. 따라서 서버 암호는 기밀로 유지해야 합니다.

BranchCache 프로세스: 콘텐츠 찾기

클라이언트 컴퓨터에서 콘텐츠 정보를 받으면 클라이언트가 세그먼트 ID를 사용해 로컬 지점 캐시에서 요청한 콘텐츠를 찾습니다. 캐시는 클라이언트 컴퓨터 간에 분산되어 있을 수도 있고, 호스트 캐시 서버에 있을 수도 있습니다.

호스트된 캐시 모드로 구성된 클라이언트 컴퓨터는 호스트 캐시 서버의 컴퓨터 이름으로 구성되며 해당 서버에 연결하여 콘텐츠를 검색합니다.

그러나 클라이언트 컴퓨터가 분산 캐시 모드로 구성된 경우에는 콘텐츠가 지점의 여러 컴퓨터에 있는 여러 캐시에 저장되어 있을 수 있습니다. 따라서 클라이언트 컴퓨터는 콘텐츠를 검색하기 전에 콘텐츠의 위치를 파악해야 합니다.

분산 캐시 모드로 구성된 클라이언트 컴퓨터는 WS-Discovery(웹 서비스 동적 검색) 프로토콜을 기반으로 하는 검색 프로토콜을 사용하여 콘텐츠를 찾습니다. 클라이언트는 WS-Discovery 멀티캐스트 검색 메시지를 보내 네트워크에서 캐시된 콘텐츠를 검색합니다. 검색 메시지에는 세그먼트 ID가 포함되어 있으므로 클라이언트는 요청한 콘텐츠가 해당 캐시에 저장된 콘텐츠와 일치하는지 확인할 수 있습니다. 초기 검색 메시지를 받은 클라이언트는 세그먼트 ID가 로컬로 캐시된 콘텐츠와 일치하면 유니캐스트 검색 일치 메시지로 쿼리를 보낸 클라이언트에 회신합니다.

WS-Discovery 프로세스가 정상적으로 진행되는지는 검색을 수행하는 클라이언트가 요청 대신 콘텐츠에 대한 올바른 콘텐츠 정보(콘텐츠 서버에서 제공함)를 보유하고 있는지에 따라 달라집니다.

콘텐츠 요청 단계의 주요 데이터 위협은 정보 노출입니다. 콘텐츠 정보에 액세스할 수 있으면 콘텐츠 액세스 권한이 있을 수 있기 때문입니다. 이 위험을 완화하기 위해 검색 프로세스에서는 세그먼트 ID 이외의 콘텐츠 정보를 노출하지 않습니다. 즉, 콘텐츠를 포함하는 일반 텍스트 세그먼트에 대한 어떤 정보도 노출되지 않습니다.

또한 같은 네트워크 서브넷에서 악의적인 사용자가 실행하는 다른 클라이언트 컴퓨터가 라우터를 통해 원래 콘텐츠 원본으로 이동하는 BranchCache 검색 트래픽을 볼 수도 있습니다.

요청한 콘텐츠가 지점에 없으면 클라이언트는 WAN 연결을 통해 콘텐츠 서버에서 콘텐츠를 직접 요청합니다.

저장된 콘텐츠는 클라이언트 컴퓨터나 호스트 캐시 서버의 로컬 캐시에 추가됩니다. 이 경우 콘텐츠 정보는 클라이언트 또는 호스트 캐시 서버가 해시와 일치하지 않는 콘텐츠를 로컬 캐시에 추가하지 못하도록 합니다. 일치하는 해시로 콘텐츠를 확인하는 프로세스를 통해 유효한 콘텐츠만 캐시에 추가할 수 있으며 로컬 캐시의 무결성을 보호할 수 있습니다.

BranchCache 프로세스: 콘텐츠 검색

클라이언트 컴퓨터는 콘텐츠 호스트(호스트된 캐시 서버 또는 분산 캐시 모드 클라이언트 컴퓨터)에서 원하는 콘텐츠를 찾으면 콘텐츠 검색 프로세스를 시작합니다.

먼저 클라이언트 컴퓨터는 필요한 첫 번째 블록에 대한 요청을 콘텐츠 호스트로 보냅니다. 이 요청에는 원하는 콘텐츠를 식별하는 세그먼트 ID와 블록 범위가 포함됩니다. 블록은 하나만 반환되므로 블록 범위에도 블록이 하나만 포함됩니다. 여러 블록에 대한 요청은 현재 지원되지 않습니다. 또한 클라이언트는 로컬의 해결되지 않은 요청 목록에 요청을 저장합니다.

콘텐츠 호스트는 클라이언트에서 유효한 요청 메시지를 받으면 요청에 지정된 블록이 콘텐츠 호스트의 콘텐츠 캐시에 있는지 확인합니다.

콘텐츠 호스트는 콘텐츠 블록을 소유하고 있는 경우 세그먼트 ID, 블록 ID, 암호화된 데이터 블록 및 초기화 벡터(블록을 암호화하는 데 사용됨)가 포함된 응답을 보냅니다.

콘텐츠 호스트는 콘텐츠 블록을 소유하고 있지 않은 경우 빈 응답 메시지를 보냅니다. 그러면 콘텐츠 호스트가 요청된 블록을 소유하고 있지 않음을 클라이언트 컴퓨터에 알리게 됩니다. 빈 응답 메시지에는 요청된 블록의 세그먼트 ID와 블록 ID, 크기가 0인 데이터 블록이 포함됩니다.

클라이언트 컴퓨터는 콘텐츠 호스트에서 응답을 받으면 메시지가 해결되지 않은 요청 목록의 요청 메시지에 해당하는지 확인합니다. 세그먼트 ID 및 블록 인덱스가 해결되지 않은 요청의 세그먼트 ID 및 블록 인덱스와 일치해야 합니다.

이 확인 프로세스에 실패하는 경우 클라이언트 컴퓨터의 해결되지 않은 요청 목록에 해당하는 요청 메시지가 없으면 클라이언트 컴퓨터가 메시지를 삭제합니다.

이 확인 프로세스에 성공하는 경우 클라이언트 컴퓨터의 해결되지 않은 요청 목록에 해당하는 요청 메시지가 있으면 클라이언트 컴퓨터가 블록을 암호화합니다. 그런 다음 클라이언트는 원본 콘텐츠 서버에서 처음 가져온 콘텐츠 정보의 적절한 블록 해시에 대해 암호 해독한 블록의 유효성을 검사합니다.

블록 유효성 검사에 성공하면 암호가 해독된 블록이 캐시에 저장됩니다.

클라이언트가 필요한 모든 블록을 얻을 때까지 이 프로세스가 반복됩니다.

참고

한 컴퓨터에 콘텐츠 전체 세그먼트가 존재하지 않는 경우 검색 프로토콜은 일련의 분산 캐시 모드 클라이언트 컴퓨터, 호스트 캐시 서버, 본사의 원본 콘텐츠 서버(지점 캐시에 전체 콘텐츠가 포함되지 않은 경우) 등으로 구성된 원본 조합에서 콘텐츠를 검색하고 어셈블합니다.

BranchCache가 콘텐츠 정보 또는 콘텐츠를 보내기 전에 데이터가 암호화됩니다. BranchCache는 응답 메시지의 블록을 암호화합니다.Windows 7에서 BranchCache가 사용하는 기본 암호화 알고리즘은 AES-128입니다. 또한 암호화 알고리즘에 적용되는 암호화 키는 Ke이고 키 크기는 128비트입니다. BranchCache는 암호화 알고리즘에 적합한 초기화 벡터를 생성하고 암호화 키를 사용하여 블록을 암호화합니다. 그러면 BranchCache가 암호화 알고리즘 및 초기화 벡터를 메시지에 기록합니다. 서버와 클라이언트는 암호화 키를 교환 또는 공유하거나 보내지 않습니다. 클라이언트는 원본 콘텐츠를 호스팅하는 콘텐츠 서버에서 암호화 키를 받습니다. 즉, 서버에서 받은 초기화 벡터 및 암호화 알고리즘을 사용하여 블록 암호를 해독합니다. 다운로드 프로토콜에서 기본적으로 제공되는 기타 명시적 인증 또는 권한 부여 기능은 없습니다.

보안 위협

이 계층의 주요 보안 위협은 다음과 같습니다.

  • 데이터 변조:

    요청자에게 데이터를 제공하는 클라이언트가 데이터를 변조할 수 있습니다. BranchCache 보안 모델은 해시를 사용하여 클라이언트와 서버가 모두 데이터를 변경하지 않았는지 확인합니다.

  • 정보 노출:

    BranchCache는 적절한 세그먼트 ID를 지정하는 모든 클라이언트에 암호화된 콘텐츠를 보냅니다. 세그먼트 ID는 공용이므로 모든 클라이언트가 암호화된 콘텐츠를 받을 수 있습니다. 그러나 악의적인 사용자가 암호화된 콘텐츠를 입수하는 경우 암호화 키를 알아야 콘텐츠 암호를 해독할 수 있습니다. 상위 계층 프로토콜에서는 인증을 수행한 다음 권한이 부여되었고 인증된 클라이언트에 콘텐츠 정보를 제공합니다. 콘텐츠 정보의 보안은 콘텐츠 자체에 대해 제공되는 보안과 동일하며, BranchCache는 콘텐츠 정보를 노출하지 않습니다.

    공격자가 콘텐츠를 얻기 위해 전송 회선을 스니핑할 수 있습니다. BranchCache는 AES128(암호 키: Ke)을 사용하여 클라이언트 간의 모든 전송을 암호화함으로써 유선상에서 데이터 스니핑을 방지합니다. 콘텐츠 서버에서 다운로드되는 콘텐츠 정보는 데이터 자체가 보호되는 것과 정확히 같은 방식으로 보호되므로, BranchCache를 사용하지 않는 경우 정보 노출로부터 보호되는 수준과 동일하게 보호됩니다.

  • 서비스 거부:

    클라이언트의 데이터 요청이 비정상적으로 많은 경우에 해당합니다. BranchCache 프로토콜은 큐 관리 카운터와 타이머를 통합하여 클라이언트의 오버로드를 방지합니다.

BranchCache 프로세스: 콘텐츠 캐시

지점에 있는 분산 캐시 모드 클라이언트 컴퓨터와 호스트 캐시 서버에서는 WAN 연결을 통해 콘텐츠를 검색하면 시간이 지남에 따라 콘텐츠 캐시가 작성됩니다.

호스트된 캐시 모드로 구성된 클라이언트 컴퓨터는 자체 로컬 캐시에 콘텐츠를 추가할 뿐만 아니라 호스트 캐시 서버에도 데이터를 제공합니다. 호스트된 캐시 프로토콜은 클라이언트가 콘텐츠 및 세그먼트 사용 가능성을 호스트 캐시 서버에 알리도록 하는 메커니즘을 제공합니다. 호스트 콘텐츠 서버에 콘텐츠를 업로드하기 위해 클라이언트는 사용 가능한 세그먼트가 있음을 서버에 알립니다. 그러면 호스트 캐시 서버는 제공된 세그먼트와 연결되어 있는 모든 콘텐츠 정보를 검색하며 실제로 필요한 세그먼트 내의 블록을 다운로드합니다. 호스트 캐시 서버에 제공할 세그먼트가 더 이상 클라이언트에 남아 있지 않을 때까지 이 프로세스가 반복됩니다.

호스트된 캐시 프로토콜을 사용하여 호스트 캐시 서버를 업데이트하려면 다음 요구 사항을 충족해야 합니다.

  • 클라이언트 컴퓨터가 호스트 캐시 서버에 제공할 수 있는 세그먼트 내에 블록 집합이 포함되어 있어야 합니다. 클라이언트는 제공된 세그먼트에 대한 콘텐츠 정보를 제공해야 합니다. 이 세그먼트는 세그먼트 ID, 세그먼트 데이터 해시, 세그먼트 암호 및 세그먼트 내에 포함된 모든 블록 해시 목록으로 구성됩니다.

  • Windows Server 2008 R2를 실행하는 호스트 캐시 서버의 경우 호스트 캐시 서버 인증서와 연결된 개인 키가 필요하며, 지점의 클라이언트 컴퓨터가 인증서를 발급한 CA(인증 기관)를 신뢰해야 합니다. 그러면 클라이언트와 서버가 HTTPS 서버 인증에 정상적으로 참가할 수 있습니다.

    중요

    Windows Server 2012를 실행하는 호스트 캐시 서버의 경우에는 호스트 캐시 서버 인증서와 연결된 개인 키가 필요하지 않습니다.

  • 클라이언트 컴퓨터는 호스트 캐시 서버가 BranchCache 트래픽을 수신 대기하는 TCP(Transmission Control Protocol) 포트 번호와 호스트 캐시 서버의 컴퓨터 이름을 사용해 구성되어 있어야 합니다. 호스트 캐시 서버의 인증서는 이 포트에 바인딩됩니다. 호스트 캐시 서버의 컴퓨터 이름은 호스트 캐시 서버가 도메인 구성원 컴퓨터인 경우 FQDN(정규화된 도메인 이름)일 수 있으며, 호스트된 캐시 서버가 도메인 구성원이 아닌 경우에는 컴퓨터의 NetBIOS 이름일 수 있습니다.

  • 클라이언트 컴퓨터가 들어오는 블록 요청을 능동적으로 수신 대기해야 합니다. 클라이언트 컴퓨터가 수신 대기하는 포트는 클라이언트의 제공 메시지 중 일부로 호스트 캐시 서버에 전달됩니다. 따라서 호스트 캐시 서버가 BranchCache 프로토콜을 사용해 클라이언트 컴퓨터에 연결하여 세그먼트의 데이터 블록을 검색할 수 있습니다.

  • 호스트 캐시 서버는 초기화 시에 들어오는 HTTP 요청 수신 대기를 시작해야 합니다.

  • 호스트 캐시 서버가 클라이언트 컴퓨터 인증을 요구하도록 구성된 경우 클라이언트 및 호스트 캐시 컴퓨터가 모두 HTTPS 인증을 지원해야 합니다.

호스트 캐시 모드 캐시 채우기

지점에서 콘텐츠를 호스트 캐시 서버의 캐시에 추가하는 프로세스는 클라이언트가 세그먼트 ID를 포함하는 INITIAL_OFFER_MESSAGE를 보내면 시작됩니다. INITIAL_OFFER_MESSAGE 요청의 세그먼트 ID는 호스트 캐시 서버의 블록 캐시에서 해당하는 세그먼트 데이터 해시, 블록 해시 목록 및 세그먼트 암호를 검색하는 데 사용됩니다. 호스트 캐시 서버에 특정 세그먼트에 대한 모든 콘텐츠 정보가 이미 있으면 INITIAL_OFFER_MESSAGE에 대한 정보는 OK가 되며 블록 다운로드 요청이 수행되지 않습니다.

세그먼트의 블록 해시와 연결되어 있는 제공된 데이터 블록이 호스트 캐시 서버에 모두 포함되어 있지 않으면 INITIAL_OFFER_MESSAGE에 대한 응답은 INTERESTED가 됩니다. 그러면 클라이언트에서 제공되는 단일 세그먼트를 설명하는 SEGMENT_INFO_MESSAGE를 보냅니다. 호스트 캐시 서버는 OK 메시지로 응답하고 세그먼트를 제공하는 클라이언트 컴퓨터에서 누락된 블록 다운로드를 시작합니다.

세그먼트 데이터 해시, 블록 해시 목록 및 세그먼트 암호는 다운로드 중인 콘텐츠가 변조되거나 변경되지 않았음을 확인하는 데 사용됩니다. 다운로드된 블록은 호스트 캐시 서버의 블록 캐시에 추가됩니다.

캐시 보안

이 섹션에서는 BranchCache가 클라이언트 컴퓨터와 호스트 캐시 서버의 캐시된 데이터를 보호하는 방법에 대해 설명합니다.

클라이언트 컴퓨터 캐시 보안

BranchCache에 저장된 데이터에 대한 가장 큰 위협은 변조입니다. 공격자가 캐시에 저장된 콘텐츠 및 콘텐츠 정보를 변조할 수 있으면 이를 통해 BranchCache를 사용하는 컴퓨터에 대한 공격을 시작할 수 있습니다. 공격자는 다른 데이터 위치에 악성 소프트웨어를 삽입하는 방법으로 공격을 시작합니다. BranchCache는 콘텐츠 정보에 있는 블록 해시를 사용하여 모든 콘텐츠의 유효성을 검사함으로써 이 위협을 완화합니다. 공격자의 이 데이터 변조 시도는 무시되며 변조된 데이터는 원래 출처의 유효한 데이터로 바뀝니다.

BranchCache에 저장된 데이터에 대한 두 번째 위협은 정보 노출입니다. 분산 캐시 모드에서 클라이언트는 자체적으로 요청한 콘텐츠만 캐시합니다. 그러나 해당 데이터는 일반 텍스트로 저장되므로 위험할 수 있습니다. 캐시 액세스를 BranchCache 서비스로만 제한하기 위해 로컬 캐시는 ACL에 지정된 파일 시스템 권한으로 보호됩니다. ACL은 권한이 없는 사용자가 캐시에 액세스하지 못하도록 차단하는 데 유용하기는 하지만, 관리 권한이 있는 사용자가 ACL에 지정된 사용 권한을 수동으로 변경하여 캐시 액세스 권한을 얻을 수 있습니다. BranchCache는 관리 계정의 악의적인 사용으로부터 캐시를 보호하지는 않습니다.

콘텐츠 캐시에 저장되는 데이터는 암호화되지 않으므로 데이터 유출 위험이 있는 경우 BitLocker 또는 EFS(파일 시스템 암호화)와 같은 암호화 기술을 사용할 수 있습니다. BranchCache에서 사용하는 로컬 캐시로 인해 지점의 컴퓨터로 인한 정보 노출 위협이 증가하지는 않습니다. 캐시에는 디스크의 다른 위치에서 암호화되지 않은 상태로 유지되는 파일의 복사본만 포함됩니다. 클라이언트의 실제 보안을 유지하기 어려운 환경에서는 전체 디스크를 암호화하는 것이 특히 중요합니다. 예를 들어 전체 디스크를 암호화하면 지점 환경에서 제거될 수 있는 중요한 데이터를 모바일 컴퓨터에서 보호할 수 있습니다.

호스트 캐시 서버 캐시 보안

호스트 캐시 모드에서 호스트 캐시 서버의 보안에 대한 가장 큰 위협은 정보 노출입니다. 호스트 캐시 환경의 BranchCache는 분산 캐시 모드에서와 비슷하게 동작하며, 파일 시스템 권한을 통해 캐시된 데이터를 보호합니다. 두 모드의 차이는, 호스트 캐시 서버의 경우 단일 클라이언트가 요청하는 데이터뿐만이 아니라 지점의 BranchCache 사용 가능 컴퓨터가 요청하는 모든 콘텐츠를 저장한다는 점입니다. 이 캐시에 무단으로 침입하는 경우 훨씬 더 많은 데이터가 위험에 노출되므로, 그 결과가 매우 심각해질 수 있습니다

호스트 캐시 서버가 Windows Server 2008 R2를 실행하는 호스트 캐시 환경에서는 지점의 클라이언트가 WAN 연결을 통해 중요한 데이터에 액세스할 수 있는 경우 BitLocker 또는 EFS와 같은 암호화 기술을 사용하는 것이 좋습니다. 또한 디스크 암호화는 공격자가 실제 액세스 권한을 얻는 경우 컴퓨터가 꺼져 있어야 작동하므로 호스트 캐시에 대한 실제 액세스도 차단해야 합니다. 컴퓨터가 켜져 있거나 절전 모드 상태일 때는 디스크 암호화가 보호 기능을 거의 제공하지 못합니다.

참고

Windows Server 2012를 실행하는 호스트 캐시 서버는 캐시의 모든 데이터를 기본적으로 암호화하므로 추가 암호화 기술을 사용할 필요가 없습니다.

호스트된 캐시 모드로 구성된 클라이언트도 데이터를 계속 로컬로 캐시하므로, 호스트 캐시 서버의 캐시 외에 로컬 캐시를 보호하는 단계도 수행할 수 있습니다.