다음을 통해 공유


BITS 보안, 토큰 및 관리자 계정

HTTP 서버 인증서 콜백

서버 인증서의 유효성을 올바르게 검사하는 것은 HTTPS 보안 유지 관리의 핵심 부분입니다. BITS는 SetSecurityFlags에서 지정한 요구 사항 목록에 대해 항상 서버 인증서의 유효성을 검사하는 데 도움이 됩니다. 기본적으로 BITS는 "브라우저" 스타일 인증서 유효성 검사를 사용합니다.

인증서의 유효성을 추가로 검사하기 위해 호출할 사용자 지정 함수를 지정할 수도 있습니다. SetServerCertificateValidationInterface 메서드를 사용하여 서버 인증서 콜백을 설정합니다. 메서드는 운영 체제가 SetSecurityFlag호출 을 기반으로 인증서의 유효성을 검사한 후에만 호출됩니다.

HTTP 클라이언트 인증서

두 가지 인증서 설정 방법을 사용하여 HTTP 작업에서 클라이언트 인증서를 설정할 수 있습니다. ID 또는 인증서 주체 이름으로 인증서를 설정할 수 있습니다. 클라이언트 인증서는 서버에 클라이언트 인증이 필요한 경우 TLS 협상(또는 재협상) 중에 사용됩니다.

쓰기 전용 HTTP 헤더

BITS를 사용하면 원치 않는 액세스로부터 HTTP 인증 토큰을 보호할 수 있습니다. HTTP 서버를 다운로드하거나 HTTP 서버에 업로드할 때 HTTP 서버에 일종의 보안 토큰 또는 문자열이 필요한 경우가 많습니다.

BITS는 여러 가지 방법으로 이러한 인증 토큰을 보호합니다.

  • BITS를 사용하면 HTTPS URL을 지정하여 TLS 및 SSL로 보호되는 HTTP 연결을 사용할 수 있습니다.
  • 사용자 지정 헤더는 항상 디스크에서 암호화된 형식으로 유지됩니다.
  • IBackgroundCopyJobHttpOptions3::MakeCustomHeadersWriteOnly 메서드를 사용하여 고객 헤더가 다른 프로그램으로 반환되지 않도록 방지할 수 있습니다.

표준 및 관리자 사용자

관리자 그룹에 있는 사용자는 표준 사용자 액세스 권한이 있거나 관리자 권한으로 관리자 상태인 프로세스를 실행할 수 있습니다. BITS는 사용자가 컴퓨터에 로그온하는 한 두 상태에서 작업을 실행합니다. 그러나 사용자가 작업을 만들거나 상승된 상태에서 작업의 소유권을 가져온 경우 사용자는 작업을 검색하거나 수정하기 위해 상승된 상태여야 합니다(그렇지 않으면 액세스 거부됨(0x80070005)으로 호출이 실패합니다. 작업의 상승된 상태를 확인하려면 IBackgroundCopyJob4::GetOwnerElevationState 메서드를 호출합니다.

표준 사용자는 다른 사용자가 소유한 작업을 열거하거나 수정할 수 없습니다.

무결성 수준

상승된 상태 외에도 토큰의 무결성 수준은 사용자가 작업을 수정할 수 있는지 여부를 결정할 수 있습니다. 클라이언트는 더 높은 무결성 수준의 토큰으로 만든 작업을 수정할 수 없습니다. 특히 많은 로컬 시스템 토큰은 관리자 권한 창의 무결성 수준보다 높은 무결성 수준을 가지므로 관리자가 일반 관리자 권한 명령 창에서 수정할 수 없습니다. 예를 들어 Windows 업데이트 및 SMS 작업은 관리자가 이러한 작업을 수정하거나 삭제할 수 없도록 관리자 권한 토큰보다 무결성 수준이 높은 LocalSystem으로 실행됩니다. 이러한 작업을 수정하려면 로컬 시스템으로 실행되는 작업 스케줄러 작업을 만듭니다. 태스크는 BITS API를 사용하는 콘솔 애플리케이션을 실행하거나 태스크가 BitsAdmin.exe 호출하는 스크립트를 실행할 수 있습니다. 사용된 무결성 수준을 확인하려면 IBackgroundCopyJob4::GetOwnerIntegrityLevel 메서드를 호출합니다.

서비스 ID

Windows 10 2019년 5월 업데이트(10.0; 빌드 18362), 서비스에서 시작된 BITS 작업은 서비스 ID를 유지 관리합니다. 이렇게 하면 BITS를 사용하여 권한이 서비스 SID에 연결된 디렉터리에서 파일을 다운로드하거나 파일을 업로드하려는 서비스가 허용됩니다. 또한 네트워크 트래픽은 BITS에 기인하는 대신 BITS 작업을 요청한 서비스에 올바르게 기인합니다.