machine key что это

Файл machine.config

Управление конфигурацией в ASP.NET осуществляется с помощью конфигурационных файлов XML. В них хранится вся информация, необходимая для настройки основных параметров приложения ASP.NET, а также параметров, специфичных для вашего приложения.

Конфигурирование начинается с файла machine.config, который находится в каталоге с:\Windows\Microsoft.NET\Framework\[версия]\Config. В этом файле определяются поддерживаемые разделы конфигурационных файлов, настраивается рабочий процесс ASP.NET и регистрируются поставщики, которые могут использоваться для работы расширенных средств, таких как профили, членство и безопасность на основе ролей.

По сравнению с ASP.NET 1.x, в последних версиях ASP.NET файл machine.config был значительно упрощен. Для оптимизации процесса инициализации многие используемые по умолчанию параметры, которые раньше отображались в файле machine.config, теперь инициализируются программно. Однако их все равно можно видеть, открыв новый файл machine.config.comments (который находится в том же каталоге, что и machine.config). В этом файле содержится полная текстовая версия всех стандартных параметров вместе с описательными комментариями (это похоже на файл machine.config в ASP.NET 1.x).

Файл machine.config.comments позволяет узнать, какие параметры используются по умолчанию, и затем добавить в machine.config параметры с переопределенными значениями.

Наряду с файлом machine.config ASP.NET использует корневой файл web.config, который находится в том же каталоге и содержит дополнительные параметры настройки. Эти параметры настройки регистрируют основные обработчики HTTP и модули ASP.NET, устанавливают правила поддержки браузеров и определяют политику безопасности.

Все веб-приложения на компьютере наследуют параметры, указанные в этих двух файлах. Однако большинство из этих параметров представляет собой, по сути, основополагающие детали, которые никогда не нужно трогать. Многие из них не применяются, когда приложение развертывается на веб-сервере IIS, потому что заменяются похожими параметрами в IIS (которые имеют собственный конфигурационный файл по имени ApplicationHost.config). В следующем разделе описано одно исключение из этого правила — важный фрагмент информации, который по-прежнему размещен в файле machine.config.

Раздел

В разделе можно устанавливать специфичный для каждого сервера ключ, который должен использоваться для шифрования данных и создания цифровых подписей. Шифрование может применяться вместе с несколькими средствами ASP.NET. В ASP.NET оно автоматически используется для защиты cookie-наборов аутентификации с помощью форм, но его также можно применять и для защиты данных состояния представления. Упомянутый ключ также используется и для аутентификации с помощью внепроцессных поставщиков состояния сеанса.

Как правило, раздел принимает следующую форму:

Значение AutoGenerate,IsolateApps показывает, что ASP.NET будет создавать и сохранять ключи, специфичные для машины и для приложения. Другими словами, каждое приложение использует отличающийся, автоматически генерируемый ключ. Это помогает защититься от потенциальных атак, направленных на множество сайтов.

Если вам не нужны ключи, специфичные для приложения, можете выбрать применение одного ключа для всех приложений на текущем компьютере, как показано ниже:

Если вы используете веб-фабрику и запускаете одно и то же приложение на множестве компьютеров, оба эти подхода приведут к возникновению проблемы. Если вы запросите страницу, и она будет обработана одним сервером, а затем отправите ее, и ее обработает другой сервер, то второй сервер не сможет расшифровать состояние представления и cookie-файлы форм из первого сервера. Эта проблема возникает вследствие того, что два веб-сервера используют различные ключи.

Чтобы решить эту проблему, понадобится определить ключ явным образом в файле machine.config. Ниже показан пример элемента с двумя определенными атрибутами ключа:

Можно также жестко закодировать ключи, специфичные для приложения, добавив элемент в файл web.config, который размещен в виртуальном каталоге приложения. Этот подход понадобится, если вы окажетесь в ситуации, в которой комбинируются оба описанных ранее сценария. (К примеру, так нужно будет поступить, если вы запускаете приложение на множестве серверов и эти серверы содержат множество приложений, которым необходимы отдельные ключи.)

Ниже показана общая подпрограмма CreateMachineKey(), которая создает случайную серию байтов с помощью криптографически устойчивого генератора случайных чисел. Метод CreateMachineKey() принимает один параметр, который определяет количество используемых символов. Результат возвращается в шестнадцатеричном формате, необходимом для файла machine.config:

Эту функцию можно использовать в веб-форме для создания необходимых ключей. Например, следующий фрагмент кода создает 48-символьный ключ шифрования и 128-символьный ключ проверки достоверности, и отображает эти значения в двух отдельных текстовых полях:

Далее эту информацию можно скопировать и вставить в файл machine.config на каждом компьютере веб-сайта. Такой подход гораздо удобнее и безопаснее, чем создание ключей вручную.

Наряду с атрибутами validationKey и decryptionKey, которые были описаны выше, можно также выбрать алгоритм, который должен использоваться для создания хеш-кода состояния представления. Для максимально устойчивого шифрования рекомендуется применять алгоритм SHA1, но кроме него также доступны следующие алгоритмы: MD5 (Message Digest 5), который имеет более высокие показатели по производительности, AES (Rijndael) и 3DES (Triple DES).

К названию алгоритма может быть добавлен атрибут проверки достоверности, показывающий, какой метод шифрования должен использоваться для регистрационного удостоверения (login ticket), которое применяется в случае аутентификации с помощью форм. Допустимыми значениями являются AES, DES, 3DES и Auto (используется по умолчанию и варьируется в зависимости от того, какие параметры применяются для аутентификации с помощью форм).

Инструмент IIS Manager (Диспетчер IIS) также позволяет изменять параметры ключей машины. Для этого выберите компьютер веб-сервера в дереве веб-сайта и дважды щелкните на значке Machine Key (Ключ машины). В этой точке можно даже создавать новые случайные ключи для проверки и расшифровки, щелкая на опции Generate Keys (Генерировать ключи) в столбце Actions (Действия) в крайней справа области окна IIS Manager.

Источник

замените ASP.NET machineKey в ASP.NET Core

реализация элемента в ASP.NET является заменяемой. это позволяет выполнять большинство вызовов ASP.NETных криптографических подпрограмм через механизм защиты данных с заменой, включая новую систему защиты данных.

Установка пакета

Конфигурация пакета

Создается экземпляр системы защиты данных с конфигурацией нулевой установки по умолчанию. Однако поскольку ключи по умолчанию сохраняются в локальной файловой системе, это не будет работать для приложений, развернутых в ферме. Чтобы устранить эту проблему, можно предоставить конфигурацию, создав тип, который подклассировать Датапротектионстартуп и переопределяющий его метод ConfigureServices.

Ниже приведен пример настраиваемого типа запуска защиты данных, который настроил, где хранятся ключи, и как они шифруются при хранении. Он также переопределяет политику изоляции приложений по умолчанию, предоставляя собственное имя приложения.

Можно также использовать вместо явного вызова SetApplicationName. Это удобный механизм, позволяющий не заставлять разработчику создавать Датапротектионстартуп-производный тип, если все, что нужно настроить, задает имя приложения.

Введите пустое значение с указанием имени сборки только что созданного типа Датапротектионстартуп. Если имя приложения — Датапротектиондемо, это будет выглядеть, как показано ниже.

Недавно настроенная система защиты данных теперь готова к использованию внутри приложения.

Источник

Разрешения по умолчанию для папок MachineKeys

В этой статье описываются разрешения по умолчанию для папок MachineKeys.

Применяется к: Windows Server 2003
Исходный номер КБ: 278381

Сводка

В папке MachineKeys хранится пара ключей сертификата как для компьютера, так и для пользователей. Эту папку используют как службы сертификата, так и Internet Explorer. Разрешения по умолчанию в папке могут вводить в заблуждение при попытке определить минимальные разрешения, необходимые для правильной установки и доступа к сертификатам.

Разрешения по умолчанию для папки MachineKeys

Папка MachineKeys расположена под All Users Profile\Application Data\Microsoft\Crypto\RSA папкой. Если администратор не установил папку до минимального уровня, пользователь может получить следующие ошибки при создании сертификата сервера с помощью сервера информации в Интернете (IIS).:

Следующие параметры — это разрешения по умолчанию для папки MachineKeys:

Разрешения для всех групп

Чтобы просмотреть специальные разрешения для группы Everyone, щелкните правой кнопкой мыши папку MachineKeys, выберите Расширенный на вкладке Безопасность, а затем выберите View/Edit. Разрешения состоят из следующих разрешений:

Выберите «Разрешения сброса» на всех объектах Child и в поле «Разрешить доступ к наследуемым разрешениям». Администратор не имеет полного контроля над детскими объектами, чтобы защитить частную часть пары ключей пользователя. Но администратор по-прежнему может удалять сертификаты для пользователя.

Дополнительные сведения см. в следующей статье:

Настройка необходимых разрешений и прав пользователей NTFS для веб-сервера IIS 5.0, IIS 5.1 или IIS 6.0.

Источник

Machine Key

Applies To: Windows Server 2012 R2, Windows Server 2012

Use the Machine Key feature page to configure hashing and encryption settings used for application services, such as view state, Forms authentication, membership and roles, and anonymous identification. Machine keys are also used to verify out-of-process session state identification.

If you deploy your application in a web farm, make sure that the configuration files on each server in the web farm have the same value for the validation key and decryption keys, which are used for hashing and decryption respectively. Otherwise, you cannot guarantee which server handles successive requests.

Related scenarios

UI Elements for Machine Key

The following tables describe the UI elements that are available on the feature page and in the Actions pane.

Feature Page Elements

Validation method

Select one of the following options to specify the validation method the machine key uses:

SHA1 – This method is the default setting. SHA1 is considered to be more secure than MD5 because it produces a 160-bit message digest. Use SHA1 encryption whenever possible.

Encryption method

Select one of the following options to specify the encryption method the machine key uses:

Auto – This method is the default setting. Auto works with whichever encryption method you specified.

Validation key

Computes a Message Authentication Code (MAC) to confirm the integrity of the data. This key is appended to either the Forms authentication cookie or the view state for a specific page.

Select one of the following options to specify how the validation key is generated:

Automatically generate at runtime: Instructs ASP.NET to generate a random key at runtime.

Generate a unique key for each application: Isolates applications from one another by generating a unique key for each application based on the application ID of each application. If your application is deployed in a web farm, duplicate your application’s key across all servers in the farm.

Decryption key

Used to encrypt and decrypt Forms authentication tickets and view state.

Select one of the following options to specify how the decryption key is generated:

Automatically generate at runtime: Instructs ASP.NET to generate a random key at runtime.

Generate a unique key for each application: Isolates applications from one another by generating a unique key for each application based on the application ID of each application. If your application is deployed in a web farm, duplicate your application’s key across all servers in the farm.

Actions Pane Elements

Apply

Saves the changes that you have made on the feature page.

Cancel

Cancels the changes that you have made on the feature page.

Generate Keys

Generates a validation key and a decryption key in the corresponding boxes on the feature page.

Источник

Добавление machineKey в web.настройка на сайтах веб-ферм

мы (наш ИТ-партнер действительно) недавно изменили некоторые DNS для веб-сайта фермы у нас есть, так что два производственных сервера имеют циклическое переключение DNS между ними. До этого переключателя у нас не было проблем с WebResource.axd файлы. Начиная с коммутатора, когда мы нажимаем живой общедоступный URL, мы получаем ошибку:

Padding недействителен и не может быть удален.

когда мы ударяем по определенным серверам сами они загружаются нормально. Я исследовал проблему, и, похоже, поскольку они разделяют активы между двумя серверами, нам нужно иметь согласованный machineKey на web.config для каждого сервера, чтобы они могли шифровать и дешифровать последовательно между ними. Мои вопросы:

3 ответов

это должно ответить:

Соображения По Развертыванию Веб-Фермы

при развертывании приложения в веб-ферме необходимо убедиться, что файлы конфигурации на каждом сервере имеют одинаковое значение для validationKey и decryptionKey, которые используются для хэширования и расшифровка соответственно. Это необходимо, потому что вы не можете гарантия какой сервер будет обрабатывать последующие запросы.

С вручную сгенерированными значениями ключей настройки должны быть похож на следующий пример.

если вы хотите изолировать приложения от других приложений на тот же сервер, поместите в Сеть.файл config для каждого приложение на каждом сервере фермы. Убедитесь, что вы используете отдельные значения ключей для каждого приложения, но дублировать ключи каждого приложения во всех серверы в ферме.

короче говоря, чтобы настроить ключ машины, обратитесь к следующей ссылке: настройка ключа машины-Orchard Documentation.

настройка ключа компьютера с помощью диспетчера IIS

если у вас есть доступ к консоли управления IIS на сервере, где Orchard установлен, это самый простой способ настроить машинный ключ.

запустите консоль управления и выберите веб-узел. Открыть этот конфигурация ключа машины: machine key что это

панель управления ключом машины имеет следующие настройки:

machine key что это

снимите галочку «автоматически генерировать во время выполнения» для проверки ключ и ключ расшифровки.

нажмите «Создать ключи» в разделе «Действия»в правой части панели.

Нажмите Кнопку «Применить».

и добавьте следующую строку в во всех webservers под system.web тег, если он не существует.

пожалуйста, убедитесь, что у вас есть постоянная резервная копия ключей машины и

Если вы используете IIS 7.5 или более поздней версии, вы можете создать ключ компьютера из IIS и сохранить его непосредственно в интернете.config, в веб-ферме вы просто копируете новый веб-сайт.config для каждого сервера.

альтернативный вариант-установить его в веб-уровне.config, поэтому его даже нет в папке веб-сайта.

чтобы создать его, сделайте это так же, как связанная статья в ответе Дэвида.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *