Механизм безопасности. Шифрование | Устранение рисков
Используйте только утвержденные симметричные блочные шифры и длину ключей
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Продукты должны использовать только симметричные блочные шифры и соответствующую длину ключей, которые явно утвердил специалист по шифрованию в организации. К утвержденным симметричным алгоритмам в корпорации Майкрософт относятся следующие блочные шифры.
Обратите внимание на то, что все алгоритмы симметричного блочного шифрования необходимо применять в утвержденном режиме шифрования, который требует использования соответствующего вектора инициализации. Соответствующий вектор инициализации обычно является случайным числом. Он не может быть представлен постоянным значением. Решение об использовании устаревших или неутвержденных по другой причине алгоритмов шифрования и ключей меньшей длины для чтения существующих данных (в отличие от записи новых данных) может принять комиссия по шифрованию организации. Однако необходимо подать запрос на игнорирование этого требования. Кроме того, в корпоративных средах программы должны инициировать оповещение, чтобы извещать администраторов об использовании ненадежных методов шифрования для чтения данных. Такие предупреждения должны быть понятными, чтобы на их основе можно было предпринимать действия. Иногда следует настроить групповую политику для управления использованием ненадежных методов шифрования. Разрешенные алгоритмы .NET для управляемого шифрования (в порядке предпочтения):
Обратите внимание, что ни один из этих алгоритмов нельзя указать с помощью методов |
Используйте утвержденные режимы блочного шифрования и векторы инициализации для симметричных шифров
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Все симметричные блочные шифры необходимо применять в утвержденном режиме симметричного шифрования. Единственные утвержденные режимы — CBC и CTS. В частности, следует избегать режима электронной кодовой книги (ECB). Его должна утвердить комиссия по шифрованию организации. Использование других режимов шифрования, например OFB, CFB, CTR, CCM и GCM, также должна утвердить комиссия. Повторное использование того же вектора инициализации с блочными шифрами в режимах потокового шифрования, например CTR, может привести к раскрытию зашифрованных данных. Все симметричные блочные шифры также должны использоваться с соответствующим вектором инициализации. Соответствующий вектор инициализации обычно является надежно зашифрованным случайным числом. Он не может быть представлен постоянным значением. |
Используйте утвержденные асимметричные алгоритмы, длину ключей и схему дополнения
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Использование запрещенных алгоритмов шифрования представляет серьезную угрозу для безопасности продуктов, поэтому их следует избегать. Продукты должны использовать только те алгоритмы шифрования, длину ключей и схему дополнения, которые явно утвердила комиссия по шифрованию организации.
|
Используйте утвержденные генераторы случайных чисел
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Продукт должны использовать утвержденные генераторы случайных чисел. Поэтому в таком коде нельзя использовать такие псевдослучайные функции, как функция среды выполнения C rand, класс .NET Framework System.Random или системные функции, например GetTickCount. Запрещено также использовать алгоритм генератора случайных чисел на основе двух эллиптических кривых (DUAL_EC_DRBG).
|
Не используйте симметричные потоковые шифры
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Не используйте симметричные потоковые шифры, такие как RC4. Вместо них продукты должны использовать блочные шифры, в частности алгоритм AES с длиной ключа не менее 128 бит. |
Используйте утвержденные алгоритмы хэширования MAC, HMAC и с применением ключей
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Продукты должны использовать только утвержденные алгоритмы MAC (код проверки подлинности сообщений) и HMAC (код проверки подлинности сообщений, использующий хэш). Код проверки подлинности сообщений (MAC) — это сведения, присоединенные к сообщению, которые позволяют его получателю проверить подлинность отправителя и целостность сообщения с помощью секретного ключа. Вы можете использовать MAC на основе хэша (HMAC) или MAC на основе блочных шифров, если базовые алгоритмы шифрования с использованием хэша или симметричные алгоритмы шифрования также утверждены. В настоящее время сюда относятся функции HMAC-SHA2 (HMAC-SHA256, HMAC-SHA384 и HMAC-SHA512) и алгоритмы MAC на основе блочных шифров CMAC/OMAC1 и OMAC2 (на основе AES). Для обеспечения совместимости с платформами можно использовать HMAC-SHA1, но вам потребуется подать соответствующий запрос и получить утверждение от комиссии по шифрованию организации. Запрещено использовать хэш-функцию HMAC длиной менее 128 бит. Разрешить хэширование ключа и данных с помощью пользовательских методов может только комиссия по шифрованию организации. |
Используйте только утвержденные функции криптографического хэширования
Title | Сведения |
---|---|
Компонент | Веб-приложение |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Продукты должны использовать семейство алгоритмов хэширования SHA-2 (SHA256, SHA384 и SHA512). Если требуется хэш меньшей длины, например выходные данные длиной 128 бит, чтобы вместить структуру данных, разработанную для MD5-хэша небольшой длины, группы разработки продуктов могут усечь один из хэшей SHA2 (обычно SHA256). Обратите внимание, что SHA384 — это усеченная версия SHA512. Усечение криптографических хэшей до менее 128 бит в целях безопасности не допускается. Новый код не должен использовать хэш-алгоритмы MD2, MD4, MD5, SHA-0, SHA-1 или RIPEMD. Конфликты хэшей подходят для этих алгоритмов с точки зрения вычислений, благодаря чему они эффективно устраняются. Разрешенные хэш-алгоритмы .NET для управляемого шифрования (в порядке предпочтения):
|
Используйте надежные алгоритмы шифрования для шифрования данных в базе данных
Title | Сведения |
---|---|
Компонент | База данных |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Выбор алгоритма шифрования |
Шаги | Алгоритмы шифрования определяют преобразования данных, которые не могут с легкостью отменить неавторизованные пользователи. SQL Server позволяет администраторам и разработчикам выбирать из нескольких алгоритмов, в том числе DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-разрядный RC4, DESX, AES-128, AES-192 и AES-256. |
Пакеты служб SSIS должны быть зашифрованы и содержать цифровую подпись
Title | Сведения |
---|---|
Компонент | База данных |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Определение источника пакетов с помощью цифровых подписей, Предотвращение угроз и уязвимости для безопасности (службы Integration Services) |
Шаги | Источник пакета — это человек или организация, создавшие пакет. Запуск пакета, источник которого неизвестен или не является надежным, может быть опасен. Для предотвращения несанкционированного доступа к пакетам служб SSIS следует использовать цифровые подписи. Кроме того, для обеспечения конфиденциальности пакетов служб SSIS они должны быть зашифрованы во время хранения и передачи. |
Добавьте цифровую подпись к критически важным защищаемым объектам базы данных
Title | Сведения |
---|---|
Компонент | База данных |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | ADD SIGNATURE (Transact-SQL) |
Шаги | Для проверки целостности критически важных защищаемых объектов базы данных следует использовать цифровые подписи. Защищаемые объекты базы данных, например хранимые процедуры, функции, сборки или триггеры, могут иметь цифровую подпись. Это может быть эффективно, к примеру, в таком случае: независимый поставщик программного обеспечения должен предоставить поддержку программного обеспечения одному из клиентов. Прежде чем предоставлять поддержку, поставщик программного обеспечения может проверить, не был ли защищаемый объект базы данных в составе программного обеспечения случайно или злонамеренно изменен. Если защищаемый объект имеет цифровую подпись, независимый поставщик может проверить целостность на основе этой подписи. |
Используйте расширенное управление ключами SQL Server для защиты ключей шифрования
Title | Сведения |
---|---|
Компонент | База данных |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Расширенное управление ключами (Extensible Key Management), Расширенное управление ключами с помощью хранилища ключей Azure (SQL Server) |
Шаги | Расширенное управление ключами SQL Server позволяет хранить ключи шифрования, защищающие файлы базы данных, на внешних устройствах, таких как смарт-карты, USB-устройства или модули расширенного управления ключами и аппаратные модули безопасности. Предусмотрена также защита данных от администраторов базы данных (за исключением членов группы sysadmin). Данные могут быть зашифрованы при помощи ключей шифрования, доступ к которым имеет только пользователь базы данных на внешнем модуле расширенного управления ключами или аппаратного модуля безопасности. |
Используйте функцию Always Encrypted, если ключи шифрования не следует раскрывать для ядра СУБД
Title | Сведения |
---|---|
Компонент | База данных |
Этап SDL | Сборка |
Применимые технологии | SQL Azure, локальные |
Атрибуты | SQL версии 12, MsSQL2016 |
Справочные материалы | Always Encrypted (ядро СУБД) |
Шаги | Always Encrypted — это функция, предназначенная для защиты конфиденциальных данных, таких как номера кредитных карта или национальные или региональные идентификационные номера (например, номера социального страхования США), хранящиеся в базе данных Azure SQL или SQL Server базах данных. Always Encrypted позволяет клиентам шифровать конфиденциальные данные в приложениях, не раскрывая ключи шифрования в ядре СУБД (база данных SQL или SQL Server). Таким образом, Always Encrypted разделяет пользователей на владельцев данных (которые могут просматривать их) и управляющих данными (но без доступа к ним). |
Безопасно храните ключи шифрования на устройстве Интернета вещей
Title | Сведения |
---|---|
Компонент | Устройства Интернета вещей |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | ОС устройства, Windows 10 IoT Core, подключение устройств, пакет SDK для устройств Azure IoT |
Справочные материалы | Доверенный платформенный модуль в Windows 10 IoT Core, настройка доверенного платформенного модуля в Windows 10 IoT Core, доверенный платформенный модуль пакета SDK для устройств Azure IoT |
Шаги | Храните симметричные ключи или закрытые ключи сертификатов в хранилище с аппаратной защитой, например в доверенном платформенном модуле (TPM) или на смарт-карте. Windows 10 IoT Базовая поддерживает использование доверенного платформенного модуля. Список совместимых доверенных платформенных модулей см. в статье Дискретный доверенный платформенный модуль (dTPM). Рекомендуется использовать дискретный доверенный платформенный модуль или доверенный платформенный модуль, интегрированный во встроенное ПО. Доверенный платформенный модуль в виде ПО следует использовать только для целей разработки и тестирования. Как только TPM будет доступен и в нем будут подготовлены ключи, необходимо написать код, который создает маркер, без жесткого кодирования важной информации. |
Пример
TpmDevice myDevice = new TpmDevice(0);
// Use logical device 0 on the TPM
string hubUri = myDevice.GetHostName();
string deviceId = myDevice.GetDeviceId();
string sasToken = myDevice.GetSASToken();
var deviceClient = DeviceClient.Create( hubUri, AuthenticationMethodFactory. CreateAuthenticationWithToken(deviceId, sasToken), TransportType.Amqp);
Как можно увидеть, что первичный ключ устройства отсутствует в коде. Вместо этого он хранится в слоте 0 в доверенном платформенном модуле. Устройство TPM создает кратковременный маркер SAS, который затем используется для подключения к Центру Интернета вещей.
Используйте случайный симметричный ключ достаточной длины для проверки подлинности в Центре Интернета вещей
Title | Сведения |
---|---|
Компонент | Облачный шлюз Интернета вещей |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Выбор шлюза: Центр Интернета вещей Azure |
Справочные материалы | Недоступно |
Шаги | Центр Интернета вещей содержит реестр удостоверений устройств и во время подготовки устройства автоматически создает случайный симметричный ключ. Рекомендуется использовать эту функцию реестра удостоверений Центра Интернета вещей для создания ключей для проверки подлинности. Центр Интернета вещей также позволяет задавать ключ при создании устройства. Если ключ создан вне Центра Интернета вещей во время подготовки устройства, рекомендуется создать случайный симметричный ключ длиной по крайней мере 256 бит. |
Убедитесь, что настроена политика управления устройствами, которая требует использования ПИН-кода и позволяет выполнять удаленную очистку
Title | Сведения |
---|---|
Компонент | Мобильный клиент Dynamics CRM |
Этап SDL | Развертывание |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Убедитесь, что настроена политика управления устройствами, которая требует использования ПИН-кода и позволяет выполнять удаленную очистку |
Убедитесь, что настроена политика управления устройствами, которая требует использования ПИН-кода, пароля или автоматической блокировки и шифрует все данные (например, с помощью BitLocker)
Title | Сведения |
---|---|
Компонент | Клиент Outlook для Dynamics CRM |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | Убедитесь, что настроена политика управления устройствами, которая требует использования ПИН-кода, пароля или автоматической блокировки и шифрует все данные (например, с помощью BitLocker) |
Настройте отзыв ключей подписи при использовании сервера удостоверений
Title | Сведения |
---|---|
Компонент | Сервер удостоверений |
Этап SDL | Развертывание |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Сервер удостоверений: ключи, подписи и шифрование |
Шаги | Настройте отзыв ключей подписи при использовании сервера удостоверений. Ссылка выше позволяет перейти в раздел, где объясняется, как это спланировать, избегая простоев для приложений, использующих сервер удостоверений. |
На сервере удостоверений необходимо использовать надежно зашифрованный идентификатор и секрет клиента
Title | Сведения |
---|---|
Компонент | Сервер удостоверений |
Этап SDL | Сборка |
Применимые технологии | Универсальный шаблон |
Атрибуты | Недоступно |
Справочные материалы | Недоступно |
Шаги | На сервере удостоверений необходимо использовать надежно зашифрованный идентификатор и секрет клиента. При создании идентификатора и секрета клиента учтите следующие рекомендации:
|