Security Lab

Machine Keys

1630
Machine Keys

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

Как Machine Keys связаны с ViewState?

ViewState в ASP.NET может быть закодирован и подписан, чтобы предотвратить его подделку или модификацию злоумышленниками. Для этого используются Machine Keys, которые обеспечивают:

  • Подпись данных – предотвращает манипуляцию ViewState со стороны клиента (путем HMAC или другого метода хеширования).
  • Шифрование данных – предотвращает утечку чувствительной информации, если ViewState содержит конфиденциальные данные.

Где хранятся Machine Keys?

По умолчанию ASP.NET может автоматически генерировать ключи при каждом запуске приложения, но для обеспечения предсказуемости их можно задать в файле Web.config:

<system.web>
  <machineKey 
    validationKey="C3D8A91E2B59D67F3BFF9A80A5D6F83ABF8129E1BBF0C3E7" 
    decryptionKey="A1B2C3D4E5F678901234567890ABCDEF" 
    validation="SHA256" 
    decryption="AES" />
</system.web>
    

Основные параметры Machine Keys:

  • validationKey – ключ подписи данных (HMAC, SHA1, SHA256).
  • decryptionKey – ключ для шифрования ViewState (AES, DES).
  • validation – алгоритм проверки целостности.
  • decryption – алгоритм шифрования.

Безопасность Machine Keys

  • Используйте надежные ключи, а не AutoGenerate (особенно в серверных фермах).
  • Избегайте слабых алгоритмов (например, MD5, DES).
  • Ограничивайте длину ViewState, чтобы предотвратить атаки (например, ViewState MAC bypass).
13
Мая
// Дедлайн
Standoff Talks · CFP открыт
Не держи хороший кейс по ИБ в столе
Расскажи на Standoff Talks про атаку, защиту или багбаунти. 18–19 июня · Кибердом. CFP открыт до 13 мая.
Подать заявку →
Реклама, АО «Позитив Текнолоджиз», ИНН 7718668887, 18+

Код на автопилоте: ViewState стал новым вектором атак на веб-серверы

Беспечность разработчиков дает удаленный контроль через ViewState.