Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объекты хранятся rest в xml-представлении. Каталог по умолчанию для хранилища ключей:
- Windows: *%LOCALAPPDATA%\ASP.NET\DataProtection-Keys*
- macOS / Linux: $HOME/.aspnet/DataProtection-Keys
Ключевой <> элемент
Ключи существуют в качестве объектов верхнего уровня в репозитории ключей. Ключи соглашения имеют имя key-{guid}.xml
файла, где {guid} является идентификатором ключа. Каждый такой файл содержит один ключ. Формат файла выглядит следующим образом.
<?xml version="1.0" encoding="utf-8"?>
<key id="aaaaaaaa-0b0b-1c1c-2d2d-333333333333" version="1">
<creationDate>2015-03-19T23:32:02.3949887Z</creationDate>
<activationDate>2015-03-19T23:32:02.3839429Z</activationDate>
<expirationDate>2015-06-17T23:32:02.3839429Z</expirationDate>
<descriptor deserializerType="{deserializerType}">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<enc:encryptedSecret decryptorType="{decryptorType}" xmlns:enc="...">
<encryptedKey>
<!-- This key is encrypted with Windows DPAPI. -->
<value>AQAAANCM...8/zeP8lcwAg==</value>
</encryptedKey>
</enc:encryptedSecret>
</descriptor>
</descriptor>
</key>
Ключевой <> элемент содержит следующие атрибуты и дочерние элементы:
Идентификатор ключа. Это значение рассматривается как авторитетное; Имя файла является просто хорошим для удобочитаемости человека.
Версия ключевого <> элемента, в настоящее время исправлена в 1.
Даты создания, активации и окончания срока действия ключа.
Элемент <дескриптора> , содержащий сведения о реализации шифрования, прошедшей проверку подлинности, содержащейся в этом ключе.
В приведенном выше примере идентификатор ключа — {aaaaaaaa-0b0b-1c1c-2d2d-33333333}, он был создан и активирован 19 марта 2015 года и имеет срок существования 90 дней. (Иногда дата активации может быть немного до даты создания, как в этом примере. Это связано с нити в том, как API работают и безвредны на практике.)
Элемент <дескриптора>
Внешний <дескриптор> содержит атрибут deserializerType, который является именем типа, реализующего IAuthenticatedEncryptorDescriptorDeserializer. Этот тип отвечает за чтение внутреннего <дескриптора> и синтаксического анализа информации, содержащейся в ней.
Определенный формат <элемента дескриптора> зависит от реализации аутентифицированного шифратора, инкапсулированной ключом, и каждый тип десериализатора ожидает немного другой формат для этого. В общем случае этот элемент будет содержать алгоритмические сведения (имена, типы, OID или аналогичные) и материалы секретного ключа. В приведенном выше примере дескриптор указывает, что этот ключ упаковывает шифрование AES-256-CBC + проверку HMACSHA256.
<Элемент EncryptedSecret>
Зашифрованный <элементSecret> , содержащий зашифрованную форму материала ключа секрета, может присутствовать, если шифрование секретов rest включено. Атрибут decryptorType
— это имя типа, реализующего сборку IXmlDecryptor. Этот тип отвечает за чтение внутреннего <элемента encryptedKey> и расшифровку его для восстановления исходного открытого текста.
Как и в <descriptor>
случае, определенный формат элемента зависит от используемого <encryptedSecret>
rest механизма шифрования. В приведенном выше примере главный ключ шифруется с помощью Windows DPAPI для комментария.
Элемент <отзыва>
Отмены существуют в качестве объектов верхнего уровня в репозитории ключей. По соглашениям имеют имя revocation-{timestamp}.xml
файла (для отзыва всех ключей до определенной даты) или revocation-{guid}.xml
(для отзыва определенного ключа). Каждый файл содержит один <элемент отзыва> .
Для отзыва отдельных ключей содержимое файла будет указано ниже.
<?xml version="1.0" encoding="utf-8"?>
<revocation version="1">
<revocationDate>2015-03-20T22:45:30.2616742Z</revocationDate>
<key id="bbbbbbbb-1c1c-2d2d-3e3e-444444444444" />
<reason>human-readable reason</reason>
</revocation>
В этом случае отменяется только указанный ключ. Если идентификатор ключа имеет значение "*", как показано в приведенном ниже примере, все ключи, дата создания которых до указанной даты отзыва отменяется.
<?xml version="1.0" encoding="utf-8"?>
<revocation version="1">
<revocationDate>2015-03-20T15:45:45.7366491-07:00</revocationDate>
<!-- All keys created before the revocation date are revoked. -->
<key id="*" />
<reason>human-readable reason</reason>
</revocation>
Элемент <reason> никогда не считывается системой. Это просто удобное место для хранения читаемой человеком причины отзыва.
ASP.NET Core