Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline two_oceans  
#11 Оставлено : 23 ноября 2020 г. 10:13:34(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Агафьин Сергей Перейти к цитате
вы можете установить настройку, которая позволит использовать на hdimage полноценные длинные имена
Это конечно интересный вариант. Уточню: 1) правильно ли я понимаю, что hdimage это считыватель "директория" на Windows? Тут действительно настройка не помешает, наверно. 2) для FAT12 будут просматриваться все папки на несистемных разделах жесткого диска? Тогда ой, быстродействие может сильно упасть.

Цитата:
Переопределить нельзя. Не очень понятно, как можно просто и безопасно зарегистрировать в реестре "функцию" преобразования имени.
Ну это было сказано просто как "мозговой штурм" - когда идеи выдвигаются, а потом совместно рассматривается годная идея или нет. Про безопасность конечно требует более детального анализа всех факторов. На первый взгляд, все достаточно просто и уже широко используется при регистрации провайдера в Microsoft CryptoApi, не нужно изобретать велосипед. Навскидку не вижу причины почему закрытие просмотра ограниченной лицензии, форматирование просмотра средств ЭП клиента/издателя безопасно так регистрировать, а функцию определяющую имя папки по дружественному имени вдруг небезопасно. Общий формат параметров функций описан Майкрософт, а что внутри блоба может и варьироваться в зависимости от оида.

Например, я вижу в реестре регистрацию некой функции криптопровайдера 4.0:
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\OID\EncodingType 1\CryptDllEncodeObject\#5001]
"FuncName"="RNetEncodeObject"
"Dll"="C:\\Program Files (x86)\\Common Files\\Crypto Pro\\Shared\\cpext.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\OID\EncodingType 1\CryptDllFormatObject\1.2.643.2.2.49.2]
"FuncName"="RNetDllFormatRestrictedCSPKeyLicense"
"Dll"="C:\\Program Files (x86)\\Common Files\\Crypto Pro\\Shared\\cpext.dll"
Допустим, присвоить новый оид для дружественного имени в определенной кодировке и абстрактно считать короткое имя "Formatted" формой для дружественного. Для перевода вызывать системную CryptFormatObject (Microsoft CryptoApi) с оидом в lpszStructType и дружественным именем в pbEncoded, длиной в cbEncoded; получать короткое в pbFormat/pcbFormat. Как вариант, CryptEncodeObjectEx тоже подходит, но склоняюсь больше к CryptFormatObject, так как там возвращаемое значение - строка. Вызов одной системной функции вставить не так сложно, а система уже найдет переопределенную функцию в реестре.

Учитывая, что функции: не передается информация о считывателе; момент создания контейнера мал по сравнению со сроком действия ключа; следовательно вероятность, что "плагин" представит информацию, интересующую потенциального нарушителя, достаточно мала.

Отредактировано пользователем 23 ноября 2020 г. 10:17:31(UTC)  | Причина: Не указана

Offline Агафьин Сергей  
#12 Оставлено : 23 ноября 2020 г. 12:32:14(UTC)
Grey

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 12.08.2013(UTC)
Сообщений: 834
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поблагодарили: 215 раз в 174 постах
Автор: two_oceans Перейти к цитате
Автор: Агафьин Сергей Перейти к цитате
вы можете установить настройку, которая позволит использовать на hdimage полноценные длинные имена
Это конечно интересный вариант. Уточню: 1) правильно ли я понимаю, что hdimage это считыватель "директория" на Windows? Тут действительно настройка не помешает, наверно. 2) для FAT12 будут просматриваться все папки на несистемных разделах жесткого диска? Тогда ой, быстродействие может сильно упасть.

1) Да.
2) Наоборот. При открытии контейнера по короткому имени провайдер просматривает все папки, читает в них name.key и сравнивает. Если включить long_names, то открытие происходит сходу одной командой. Перечисление контейнеров почти ничем не отличается.

Цитата:
Например, я вижу в реестре регистрацию некой функции криптопровайдера 4.0:
....
Допустим, присвоить новый оид для дружественного имени в определенной кодировке и абстрактно считать короткое имя "Formatted" формой для дружественного. Для перевода вызывать системную CryptFormatObject (Microsoft CryptoApi) с оидом в lpszStructType и дружественным именем в pbEncoded, длиной в cbEncoded; получать короткое в pbFormat/pcbFormat. Как вариант, CryptEncodeObjectEx тоже подходит, но склоняюсь больше к CryptFormatObject, так как там возвращаемое значение - строка. Вызов одной системной функции вставить не так сложно, а система уже найдет переопределенную функцию в реестре.
Учитывая, что функции: не передается информация о считывателе; момент создания контейнера мал по сравнению со сроком действия ключа; следовательно вероятность, что "плагин" представит информацию, интересующую потенциального нарушителя, достаточно мала.

Подключение сторонних модулей к CSP - весьма опасная тема. Все такие модули должны быть дополнительно происследованы. Именно поэтому вариант с дополнительной библиотекой в принципе не может рассматриваться. Если бы была потребность заложиться на какие-то регулярные выражения или шаблоны, которые можно хранить в реестре, еще куда ни шло, но "логику" мы подключать даем только в крайних случаях.

С уважением,
Сергей
Техническую поддержку оказываем здесь.
Наша база знаний.
Offline two_oceans  
#13 Оставлено : 24 ноября 2020 г. 14:50:26(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Агафьин Сергей Перейти к цитате
2) Наоборот. При открытии контейнера по короткому имени провайдер просматривает все папки, читает в них name.key и сравнивает. Если включить long_names, то открытие происходит сходу одной командой. Перечисление контейнеров почти ничем не отличается.
2.1) Разве все? Ведь если к имени папки xxxxxxxx.000 добавить допустим прочерк в конце xxxxxxxx.000_ или xxxxxxxx.000_000, то контейнер исчезает из перечисления. Не уверен какие именно при этом возникают изменения в имени формата 8.3 в файловой системе NTFS, но впечатление, что либо есть некий фильтр, отбрасывающий неформатные имена папок из перечисления либо для таких длинных имен операционная система удаляет имя формата 8.3 вообще. Если же "предполагаемый фильтр" формата (не так уж важно, в криптопровайдере или в операционной системе) перестанет работать при длинных именах, то количество просматриваемых папок резко увеличится. Кроме того, нужно отметить, что папки с отсутствующим или поврежденным name.key все же появляются в перечислении, то есть перечисление немного другой случай чем открытие заданного контейнера.
2.2) Не до конца ясно какое имя имеется ввиду в фразе "При открытии контейнера по короткому имени"? Прошу пояснить: если перечисляются все папки и читается name.key, то за какой надобностью в реестре создается раздел с длинным дружественным именем контейнера, в котором находится параметр shortcut с FQCN именем. Криптопровайдер просто не принимает никакую другую папку с тем же дружественным именем, то есть наличие shortcut по всей видимости, отключает перечисление папок при открытии контейнера и заставляет обратится к конкретной папке. Вывод получается что реальный алгоритм явно сложнее чем описано в цитате выше.
Цитата:
Если бы была потребность заложиться на какие-то регулярные выражения или шаблоны, которые можно хранить в реестре, еще куда ни шло, но "логику" мы подключать даем только в крайних случаях.
Позиция понятна, хоть и возвращается только строчка Вы не хотите потенциально давать информацию об адресном пространстве криптопровайдера сторонней библиотеке.

Насчет регулярных выражений и шаблонов тоже интересный вариант. Правильно ли я понял, что включить дату (по описанной в предыдущих сообщениях схеме в виде трех алфавитно-цифровых позиций) в имя папки реализуемо?

Тогда остается вопрос как реализовать получение кода пользователя, тут наверно реестр не очень подходит, пользователей может быть много. XML файл, значения которого подставляются в регулярное выражение? Что-то вроде простого: если в дружественном имени нашлась такая строка, вывести в короткое имя такую строку. LDAP запрос к ActiveDirectory полагаю вообще не вписывается в такое локальное формирование имени?

В целом, я так понял проще стереть shortcut из реестра или изменить name.key чем договориться о поддержке иного способа формирования короткого имени папки.

Offline basid  
#14 Оставлено : 26 ноября 2020 г. 8:50:29(UTC)
basid

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.11.2010(UTC)
Сообщений: 1,037

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 140 раз в 126 постах
Автор: two_oceans Перейти к цитате
если к имени папки xxxxxxxx.000 добавить допустим прочерк в конце xxxxxxxx.000_ или xxxxxxxx.000_000, то контейнер исчезает из перечисления. Не уверен какие именно при этом возникают изменения в имени формата 8.3
...
2.2) Не до конца ясно какое имя имеется ввиду в фразе "При открытии контейнера по короткому имени"?
Код:
dir /x имя
должно снять основные вопросы по коротким именам.
thanks 1 пользователь поблагодарил basid за этот пост.
two_oceans оставлено 29.11.2020(UTC)
Offline Агафьин Сергей  
#15 Оставлено : 26 ноября 2020 г. 9:50:36(UTC)
Grey

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 12.08.2013(UTC)
Сообщений: 834
Мужчина
Российская Федерация
Откуда: Москва

Сказал «Спасибо»: 5 раз
Поблагодарили: 215 раз в 174 постах
Автор: two_oceans Перейти к цитате
2.1) Разве все? Ведь если к имени папки xxxxxxxx.000 добавить допустим прочерк в конце xxxxxxxx.000_ или xxxxxxxx.000_000, то контейнер исчезает из перечисления. Не уверен какие именно при этом возникают изменения в имени формата 8.3 в файловой системе NTFS, но впечатление, что либо есть некий фильтр, отбрасывающий неформатные имена папок из перечисления либо для таких длинных имен операционная система удаляет имя формата 8.3 вообще. Если же "предполагаемый фильтр" формата (не так уж важно, в криптопровайдере или в операционной системе) перестанет работать при длинных именах, то количество просматриваемых папок резко увеличится. Кроме того, нужно отметить, что папки с отсутствующим или поврежденным name.key все же появляются в перечислении, то есть перечисление немного другой случай чем открытие заданного контейнера.

1) Действительно, если long_names=0, то перечисление не возвращает папки, которые не подходят под формат 8.3. Но это не значит, что провайдер их не перечисляет.
2) Формально небольшая разница, действительно, будет. В одном случае провайдер получает имя папки и отбраковывает по имени. В другом - получает имя папки, открывает её (пустая операция) и проверяет, есть ли там файлы name.key / header.key. Если это внезапно начнет сказываться на производительности, есть простое решение: отключить регистрацию "Все съемые диски" и явно зарегистрировать только конкретный раздел, где хранятся ключи.
Автор: two_oceans Перейти к цитате
2.2) Не до конца ясно какое имя имеется ввиду в фразе "При открытии контейнера по короткому имени"? Прошу пояснить: если перечисляются все папки и читается name.key, то за какой надобностью в реестре создается раздел с длинным дружественным именем контейнера, в котором находится параметр shortcut с FQCN именем. Криптопровайдер просто не принимает никакую другую папку с тем же дружественным именем, то есть наличие shortcut по всей видимости, отключает перечисление папок при открытии контейнера и заставляет обратится к конкретной папке. Вывод получается что реальный алгоритм явно сложнее чем описано в цитате выше.

Короткое имя - это уникальное имя контейнера в терминах CryptoAPI на конкретном считывателе. Например "Василий Эдуардович".
https://cpdn.cryptopro.r...LPSZ_CONTAINER_NAME.html
shortcut'ы в CSP 5.0 не поддерживаются. В 4.0, мне казалось, выключены по умолчанию.

Автор: two_oceans Перейти к цитате
В целом, я так понял проще стереть shortcut из реестра или изменить name.key чем договориться о поддержке иного способа формирования короткого имени папки.

Да)
Я бы посоветовал их вообще отключить, если они зачем-то включены: в [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Cryptography\CurrentVersion\Parameters] добавить DisableShortcuts=1.

С уважением,
Сергей
Техническую поддержку оказываем здесь.
Наша база знаний.
thanks 1 пользователь поблагодарил Grey за этот пост.
two_oceans оставлено 29.11.2020(UTC)
Offline two_oceans  
#16 Оставлено : 29 ноября 2020 г. 9:41:18(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Агафьин Сергей Перейти к цитате
Я бы посоветовал их вообще отключить, если они зачем-то включены: в [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Cryptography\CurrentVersion\Parameters] добавить DisableShortcuts=1.
Большое спасибо. Действительно, в этом параметре стоял 0. Если правильно понимаю, это чекбокс "сохранять информацию об использованных съемных носителях", снятый по умолчанию при установке криптопровайдера? И чекбокс в панели управления КриптоПро CSP на закладке Безопасность?
Странно, обычно я этот чекбокс не отмечаю при установке.

Есть вероятность, что на этом компьютере обновлял криптопровайдер поверх предыдущей версии (4.0.9944 - 4.0.9963), при этом часть интерфейса установки не отображается и параметры берутся не совсем ясно по какой логике (не совпадают ни со значениями прошлой версии, ни с параметрами по умолчанию).

Перепроверил на другом (новом) компьютере, где точно не было предыдущей версии до 4.0.9963, там чекбокс не отмечен. Придется перепроверить все компьютеры и протестировать ПО удостоверяющих центров, не ставит ли этот параметр в 0.
Автор: basid Перейти к цитате
Код:
dir /x имя
должно снять основные вопросы по коротким именам.
Спасибо что напомнили и сэкономили время. Обычно меня не интересовали короткие имена, так что этим параметром никогда не пользовался. Хотя dir регулярно использую при восстановлении компов, но только с маской без прочих параметров. Уже собирался писать программу на основе TWIN32_FIND_DATA.cAlternateName, но к нему какие-то мутные комментарии, когда оно заполнено.

Отредактировано пользователем 29 ноября 2020 г. 9:50:55(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.