Экспорт (0) Печать
Развернуть все
Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст.
Перевод
Текст оригинала

Элемент machineKey (схема параметров ASP.NET)

[Этот раздел из предварительной документации может быть изменен в будущих выпусках. Пустые разделы включены как заполнители.]

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

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name]
  decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>

В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы.

Атрибуты

attribute

Описание

decryption

Необязательный атрибут элемента String.

Указывает алгоритм, кот. используется для шифрования и дешифрования данных проверки подлинности форм.

Этот атрибут может принимать одно из следующих значений.

  • Auto   Указывает, что ASP.NET автоматически определяет, какой алгоритм дешифрования использовать. Это значение данного атрибута по умолчанию.

  • AES   Указывает, что ASP.NET использует алгоритм AES (Rijndael) для шифрования и дешифрования данных. AES — это алгоритм по умолчанию; именно он используется, когда данный атрибут имеет значение Auto. Этот алгоритм соответствует федеральным стандартам обработки информации США (FIPS).

  • DES   Указывает, что ASP.NET использует алгоритм Data Encryption Standard (DES) для шифрования и дешифрования данных. Этот алгоритм включен только с целью поддержки предыдущих версий, его следует использовать только при необходимости обеспечить совместимость с более ранними версиями ASP.NET.

  • 3DES   Указывает, что ASP.NET использует алгоритм TripleDES (3DES) для шифрования и дешифрования данных. Этот алгоритм включен только с целью поддержки предыдущих версий, его следует использовать только при необходимости обеспечить совместимость с более ранними версиями ASP.NET.

  • alg: имя_алгоритма  Указывает, что ASP.NET использует пользовательский алгоритм для шифрования и дешифрования данных. Алгоритм шифрования должен быть определен в класс, производный от SymmetricAlgorithm. ASP.NET вызывает метод SymmetricAlgorithm.Create и выполняет передачу от имени указанного здесь алгоритма.

decryptionKey

Обязательный атрибут элемента String.

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

Этот атрибут может принимать одно из следующих значений.

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

  • значение_ключа  Указывает задаваемый вручную ключ. В качестве значения decryptionKey должна быть вручную задана строка шестнадцатеричных символов, чтобы обеспечить согласованную конфигурацию на всех серверах веб-фермы. Ключ должен быть 64 бита (16 шестнадцатеричных символов) для DES-шифрования, или 192 бит (48 шестнадцатеричных символов) длиной для 3DES. Для AES ключ может быть 128-разрядным (32 символа), 192-разрядным (48 символов) или 256-разрядным (64 символа). Длиннейший ключ обеспечивает наибольшую безопасность.Случайные ключи могут создаваться вручную с помощью класса RNGCryptoServiceProvider. Дополнительные сведения см. в разделе How To: Configure MachineKey in ASP.NET 2.0.

Дополнительные сведения см. в разделе DecryptionKey.

validation

Обязательный атрибут элемента MachineKeyValidation.

Задает хэш-алгоритм, используемый для проверки данных.

По умолчанию состояние просмотра передается в виде строки в кодировке base-64. Хотя на первый взгляд закодированные данные нечитаемы, кодировка Base 64 не обеспечивает никакой безопасности потому, что она легко декодируются. Если конфиденциальные данные хранятся в состоянии просмотра, можно указать, что ASP.NET не только проверяет, но и шифрует данные состояния просмотра. Можно задать шифрование состояния просмотра для всех страниц веб-приложения или для отдельных страниц. Сведения о этом параметре см. в описаниях свойства ViewStateEncryptionMode и метода RegisterRequiresViewStateEncryption().

Если требуется использовать шифрование состояния просмотра, задайте этому атрибуту значение AES. В этом случае значение decryptionKey будет использоваться для шифрования данных состояния просмотра и ASP.NET будет использовать хэш-алгоритм HMACSHA1 для проверки данных.

Этот атрибут может принимать одно из следующих значений.

  • AES   Указывает, что ASP.NET использует алгоритм шифрования AES (Rijndael) для шифрования и дешифрования данных, когда состояние просмотра шифруется. Если атрибуту validation задан этот параметр, для проверки используется алгоритм HMACSHA1.

  • MD5   Задает хэш-алгоритм Message Digest 5 (MD5) для проверки данных в ASP.NET. Этот алгоритм включен только с целью поддержки предыдущих версий, его следует использовать только при необходимости обеспечить совместимость с более ранними версиями ASP.NET.

  • SHA1   Указывает, что ASP.NET использует для проверки данных хэш-алгоритм HMACSHA1. Этот алгоритм должен использоваться, только если необходимо задать для этого атрибута значение AES для поддержки шифрования состояния представления. В противном случае используйте HMACSHA256, HMACSHA384 или HMACSHA512.

  • 3DES   Указывает, что ASP.NET использует алгоритм TripleDES (3DES) для шифрования и дешифрования данных, когда состояние просмотра шифруется. Если атрибуту validation задан этот параметр, для проверки используется алгоритм HMACSHA1. Этот алгоритм включен только с целью поддержки предыдущих версий, его следует использовать только при необходимости обеспечить совместимость с более ранними версиями ASP.NET.

  • HMACSHA256   Указывает, что ASP.NET использует для проверки данных хэш-алгоритм HMACSHA256. Это значение по умолчанию. Этот алгоритм соответствует федеральным стандартам обработки информации США (FIPS).

  • HMACSHA384   Указывает, что ASP.NET использует для проверки данных хэш-алгоритм HMACSHA384. Этот параметр доступен для приложений, требующих более высокой степени безопасности, чем обеспечивается алгоритмом HMACSHA256. Этот алгоритм соответствует федеральным стандартам обработки информации США (FIPS).

  • HMACSHA512   Указывает, что ASP.NET использует для проверки данных хэш-алгоритм HMACSHA512. Этот вариант предусмотрен для приложений, требующих более высокой степени безопасности, чем обеспечивается алгоритмом HMACSHA384. Этот алгоритм соответствует федеральным стандартам обработки информации США (FIPS).

  • alg: имя_алгоритма  Указывает, что ASP.NET использует пользовательский алгоритм. Префикс alg: предшествует имени класса, наследуемого от KeyedHashAlgorithm. ASP.NET вызывает метод Create() и выполняет передачу от имени указанного здесь алгоритма.

validationKey

Обязательный атрибут элемента String.

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

Этот атрибут может принимать одно из следующих значений.

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

  • значение_ключа  Указывает задаваемый вручную ключ. В качестве значения validationKey должна быть вручную задана строка шестнадцатеричных символов, чтобы обеспечить согласованную конфигурацию на всех серверах веб-фермы. Длина ключа зависит от хэш-алгоритма, который используется:

    • AES требует 256-разрядный ключ (64 шестнадцатеричных символа).

    • MD5 требует 128-разрядный ключ (32 шестнадцатеричных символа).

    • SHA1 требует 160-разрядный ключ (40 шестнадцатеричных символов).

    • 3DES требует 192-разрядный ключ (48 шестнадцатеричных символов).

    • HMACSHA256 требует 256-разрядный ключ (64 шестнадцатеричных символа).

    • HMACSHA384 требует 384-разрядный ключ (96 шестнадцатеричных символа).

    • HMACSHA512 требует 512-разрядный ключ (128 шестнадцатеричных символа).

    Случайные ключи могут создаваться вручную с помощью класса RNGCryptoServiceProvider. Дополнительные сведения см. в разделе How To: Configure MachineKey in ASP.NET 2.0. В этом разделе не перечислены алгоритмы HMACSHA256, HMACSHA384 и HMACSHA512. Однако процесс работает и для таких алгоритмов, если указывать правильную длину ключа.

Дополнительные сведения см. в разделе ValidationKey.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент

Описание

configuration

Задает обязательный корневой элемент любого файла конфигурации, используемого средой CLR и приложениями .NET Framework.

system.web

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

В следующем примере кода показано, как атрибуту validationKey и decryptionKey задать значение AutoGenerate. Для генерации ключей, уникальных для каждого приложения на сервере, задается значение isolateApps.

<machineKey 
    validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
/>

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

<machineKey 
    validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F" 
    decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" 
/>

Показ:
© 2014 Microsoft