Уровни доверия
Уровень доверия (level of assurance) определяет степень защищенности различных сценариев авторизации, выполняемых Центром Идентификации КриптоПро Ключ.
Сценарии авторизации и уровни доверия
КриптоПро Ключ поддерживает следующие сценарии (flow) авторизации:
- Интерактивные:
- Сценарий 1. C неявным типом разрешения.
- Сценарий 2. C кодом авторизации.
- Неинтерактивные:
- Сценарий 3. C учетными данными пользователя.
- Сценарий 4. C сертификатом и кодом авторизации.
- Сценарий 5. C механизмом обмена маркера.
Каждый сценарий авторизации обеспечивает различный уровень доверия. В КриптоПро Ключ выделяется три уровня доверия:
- низкий (
cprokey-low
), - средний (
cprokey-substantial
), - высокий (
cprokey-high
).
Высокий уровень доверия обеспечивает корректную аутентификацию пользователя.
Средний уровень доверия обеспечивает корректную идентификацию пользователя.
Низкий уровень доверия не обеспечивает ни корректную идентификацию, ни корректную аутентификацию пользователя.
Примечание
При необходимости включения ИС в число доверенных для снятия в СКЗИ ограничений доступа к функциям от имени пользователя данная ИС должна обеспечивать получение аутентификационных данных пользователя доверенным образом и поддержку необходимых мер защиты процесса своей авторизации. Подробнее см. Правила Пользования.
Соответствие уровней доверия и сценариев авторизации приведено в таблице ниже.
Низкий | Средний | Высокий | |
---|---|---|---|
Только идентификация | Сценарий 1 (только логин) | Сценарий 3 (только логин) | |
Сценарий 2 (только логин) | |||
Идентификация и аутентификация | Сценарий 1 (с любой аутентификацией) | Сценарий 3 (логин и пароль) | |
Сценарий 2 (с любой аутентификацией) | Сценарий 3 (с подтверждением входа через МП) | ||
Сценарий 4 (интерактивный [prompt* != none]) | Сценарий 4 (неинтерактивный [prompt* == none]) | ||
Сценарий 5 |
* Параметр prompt
используется в протоколе Oauth 2.0, позволяя вызывающей системе указать, как именно должно быть обработано взаимодействие с пользователем.
Например, значение none
позволяет вернуть токен авторизации без дополнительного взаимодействия с пользователем в случае,
если пользователь уже аутентифицирован.
В случае проведения исследований на корректность реализации в ИС требуемого сценария авторизации администратор может повысить низкий уровень доверия до более высокого, соблюдая правило, что сценарий авторизации только с идентификацией может быть повышен только до среднего уровня доверия, сценарий авторизации с аутентификацией может быть повышен только до высокого уровня доверия.
Вспомогательные методы аутентификации с помощью отправки одноразовых кодов по SMS и Email и с помощью генерации одноразовых паролей не является корректной аутентификацией, поэтому использование данных методов в совокупности с идентификацией по логину будет все еще считаться сценарием только с идентификацией.
Повышение уровня доверия осуществляется с помощью команды
Set-IdsClient
с указанием параметра -ElevateLoa $true
.
При регистрации Oauth-клиента для Веб-интерфейса КриптоПро Ключ указание данного параметра является обязательным.
Ограничение доступа к API на основе уровней доверия
Для доступа к функциям интерфейса внешних приложений (API) КриптоПро Ключ требуются различные уровни доверия, соответственно, в зависимости от используемого сценария авторизации некоторые действия для ИС будут недоступны.
Метод | Минимальный уровень доверия |
---|---|
Получение списка сертификатов | Низкий |
Получение сертификата по идентификатору | Низкий |
Получение содержимого сертификата | Низкий |
Получение списка запросов на отзыв | Низкий |
Проверка ПИН-кода (?) | Низкий |
Установка сертификата | Средний |
Удаление сертификата | Высокий |
Изменение статуса сертификата | Высокий |
Изменение ПИН-кода | Высокий |
Изменение сертификата по умолчанию | Высокий |
Изменение дружественного имени сертификата | Высокий |
Получение списка запросов на сертификат | Средний |
Получение запроса по идентификатору | Средний |
Получение содержимого запроса | Средний |
Создание запроса на сертификат | Средний |
Удаление запроса на сертификат | Средний |
Получение содержимого запроса на отзыв | Средний |
Функции управления УЗ пользователя (SelfUms ) |
Высокий |
Получение записей аудита | Высокий |
Получение политик сервисов | Низкий |
Проверка доступности сервисов | Низкий |
Конечная точка авторизации OAuth | Низкий |
Конечная точка получения маркера OAuth | Низкий |
Конечная точка подтверждения операций | Низкий |
Получение сведений об операциях (**) | Средний |
Получение сведений об операции (**) | Средний |
(**) - доступ к данному API разрешен только конфиденциальным OAuth-клиентам.
Ограничение доступа к API Сервиса Обработки Документов зависит от типа обрабатываемого документа. Неконфиденциальные документы можно обрабатывать без ограничений, уровни доверия для конфиденциальных документов приведены ниже.
Метод | Минимальный уровень доверия |
---|---|
Получение информации о поддерживаемых форматах | Низкий |
Запрос на конвертацию документа | Низкий |
Загрузка документа | Средний |
Получение информации о загруженном документе | Высокий |
Получение информации о загруженном документе по хэшу | Высокий |
Получение информации содержимого документа | Высокий |
Получение информации о сконвертированном документе | Высокий |
Удаление документа | Низкий |
Непосредственных ограничений на вызов методов подписи, шифрования, расшифрования усовершенствования и т.п. нет, но остаются ограничения на работу с документами соответствующих типов, т.е. сервис не позволит выполнить операцию с конфиденциальным документом, если уровень доверия к текущему сценарию авторизации не является высоким. Поэтому в Веб-интерфейсе КриптоПро Ключ операция расшифрования недоступна при входе пользователя по сценарию с уровнем доверия, отличным от высокого, так как в этом случае скачать расшифрованный документ нельзя.
Конфиденциальные документы
ИС при загрузке документа может отнести его к одному из двух классов: конфиденциальным или неконфиденциальным.
Признак конфиденциальности документа передается с помощью параметра Confidential
в запросе на загрузку документа.
Пример
{
"Filename" : "rndFileName" + ".pdf",
"FileType": "pdf",
"AdditionalInfo": {
"Confidential": "true"
}
Если параметр Confidential
равен "true"
, то документ считается конфиденциальным, если параметр равен "false"
или если параметр не задан, то документ будет отнесен к классу неконфиденциальных документов.
При запросе выполнения над документом криптографической функции результат сохраняется в Сервисе Обработки Документов отдельным файлом и по умолчанию наследует статус исходного файла. При этом при вызове функции шифрования в отношении документа статус результата зашифрования/расшифрования может меняться:
- после зашифрования результат всегда определяется как неконфиденциальный;
- после расшифрования результат всегда определяется как конфиденциальный.