Учетные записи безопасности, токенов и администраторов BITS
Обратные вызовы сертификатов HTTP-сервера
Правильное проверка сертификатов сервера является ключевой частью поддержания безопасности HTTPS. BITS помогает всегда проверять сертификаты сервера в соответствии со списком требований, заданных SetSecurityFlags. По умолчанию BITS использует проверку сертификата стиля браузера.
Можно также указать пользовательскую функцию для вызова для дальнейшего проверки сертификата. Задайте обратный вызов сертификата сервера с помощью метода SetServerCertificateValidationInterface. Метод будет вызываться только после проверки сертификата на основе вызова SetSecurityFlag.
Сертификаты HTTP-клиента
Сертификат клиента можно задать в задании HTTP с двумя различными методами параметров сертификата. Вы можете задать сертификат по идентификатору или по имени субъектасертификата. Сертификат клиента будет использоваться во время согласования TLS (или повторного обсуждения), если серверу требуется проверка подлинности клиента.
Заголовки HTTP только для записи
BITS помогает защитить маркеры проверки подлинности HTTP от нежелательного доступа. Часто HTTP-серверу потребуется какой-либо маркер безопасности или строка при скачивании или отправке файла на HTTP-серверы.
BITS защищает эти маркеры проверки подлинности несколькими способами.
- BITS позволяет использовать HTTP-подключения с защитой TLS и SSL, указав URL-адрес HTTPS.
- Пользовательские заголовки всегда сохраняются в зашифрованном формате на диске.
- Вы можете запретить возврат заголовков клиентов другим программам с помощью метода IBackgroundCopyJobHttpOptions3::MakeCustomHeadersWriteOnly.
Пользователи уровня "Стандартный" и "Администратор"
Пользователь, который находится в группе администраторов, может выполнять процесс со стандартным доступом пользователей или в состоянии с повышенными привилегиями (с правами администратора). BITS будет запускать задание в любом состоянии, пока пользователь вошел в систему на компьютере. Однако если пользователь создал задание или взял на себя владение заданием с повышенными привилегиями, пользователь должен находиться в состоянии с повышенными привилегиями, чтобы получить или изменить задание (в противном случае вызов завершается ошибкой при отказе в доступе (0x80070005)). Чтобы определить повышенное состояние задания, вызовите метод IBackgroundCopyJob4::GetOwnerElevationState.
Стандартный пользователь не может перечислять или изменять задания, принадлежащие другим пользователям.
Уровень целостности
Помимо повышенного состояния, уровень целостности маркера может определить, может ли пользователь изменить задание. Клиент не может изменять задания, созданные маркером с более высоким уровнем целостности. В частности, многие маркеры локальной системы имеют уровень целостности выше, чем уровень целостности окна с повышенными привилегиями, и поэтому их невозможно изменить администратором из обычного командного окна с повышенными привилегиями. Например, задания Центра обновления Windows и SMS выполняются как LocalSystem, которые имеют более высокий уровень целостности, чем маркер с повышенными привилегиями, чтобы администратор не может изменять или удалять эти задания. Чтобы изменить это задание, создайте задачу планировщика задач, которая выполняется как локальная система. Задача может выполнять консольное приложение, использующее API BITS, или задачу может выполнить скрипт, вызывающий BitsAdmin.exe. Чтобы определить используемый уровень целостности, вызовите метод IBackgroundCopyJob4::GetOwnerIntegrityLevel.
Удостоверение службы
Начиная с обновления Windows 10 мая 2019 г. (10.0; Сборка 18362), задания BITS, запущенные из службы, будут поддерживать удостоверение службы. Это позволяет службам, которые хотят использовать BITS для скачивания файлов в каталог или отправки файлов из каталога, разрешения которых привязаны к идентификатору безопасности службы. Кроме того, сетевой трафик будет правильно приписываться службе, запрашивающей задание BITS вместо того, чтобы быть атрибутом BITS.