Аудит задаётся для модулей, несколько dll могу использовать один модуль аудита, возможна и обратная ситуация.
Основные модули аудита:
- capi10 - CryptoAPI 1.0
- capi20 - CryptoAPI 2.0
- ssp - TLS
- cng - CNG
- cspr - клиентский RPC
- cpext - расширения СryptoAPI
- cloud - облачные ключи
- csp - ядро CSP
- pcsc - смарт-карты
Можно независимо управлять направлениями аудита и уровнем. 6 бит уровней:
- N_DB_ERROR = 1 (0x01), - критические ошибки
- N_DB_WARN = 2 (0x02), - некритические ошибки
- N_DB_CALL = 4 (0x04), - информация о вызове функции
- N_DB_LOG = 8 (0x08), - нейтральная информация
- N_DB_TRACE = 16 (0x10) - отладочная информация
- N_DB_DEBUG = 16 (0x10) и попадает в trace только в _DEBUG,
- N_DB_CRUCIAL = 32 (0x20) - информация о важных событий (создан ключ, удален контейнер, ...)
Разбиты на 5 групп направлений:
Route | Windows | Linux |
dprint_str |
DbgView |
syslog |
eprint_str |
|
syslog |
cprint_str |
Console |
console |
tprint_str |
ETW - не реализован |
|
elprint_str |
EventLog |
syslog |
В EventLog ошибки будут ошибками, трассировка - информацией, предупреждения - предупреждениями.
Управление логированием конкретного модуля выглядит так. Берем шестнадцатеричное представление числа, разбиваем его на три части: 0x11222333. Старшая часть (11) отвечает за то, что будет писаться в EventLog, средняя (222) - консоль, младшая (333) - DbgView. Далее в каждую из частей ставим значение, которые является побитовой суммой N_DB*-флагов.
Примеры:
[HKEY_LOCAL_MACHINE\SOFTWARE\[WOW6432Node]\Crypto Pro\Cryptography\CurrentVersion\Debug]
csp = 0x01000000 - только ошибки в EventLog\syslog
cloud = 0x0100003f - только ошибки в EventLog и вся трассировочная информация в DbgView
ssp = 0x0003f000 - вся трассировчная информация в консоль
Чтобы настройки применились, нужен перезапуск приложения.
Примечание. Если провайдер работает в отдельном процессе (используется служба хранения ключей), то получить трассировочную информацию в консоль - нельзя.
Включение аудита КриптоПро CSP 5.0 R2 в ОС Unix
|