Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Не спорю, идея хорошая в теории, но не все так просто, как хотелось бы. Автор: Анатолий Колкочев Да, я говорил именно про то значение, по которому определяется целостность контейнера. Просто мне казалось, что если с контейнером изначально провести все необходимые действия, а потом брать значение хеш-функции, то это может считаться за некий уникальный идентификатор ключа. К сожалению, у меня нет уверенности, что значение header.key не изменится в дальнейшем (даже если все действия провести сразу). Причина - криптопровайдер требует доступа на запись к контейнеру, это касается как реестра, так и флешек и жестких дисков. По факту, если сразу установить сертификат в контейнер, сделать копию папки Проводником, а через некоторое время посмотреть даты файлов на "рабочей" флешке у пользователя и на резервной флешке, то на рабочей флешке даты некоторых файлов будут позднее.
Содержимое не изучал, но по датам впечатление, что криптопровайдер что-то изменяет в контейнере. Размер вроде бы такой же, но тут есть нюанс, что если данные asn1 стали короче, размер файла не изменяется в меньшую сторону, просто остаются "мусорные данные" после asn1 структуры. Кажется, пробовал удалить дату или сертификаты УЦ утилитой и попутно наткнулся на такое поведение утилиты. Можно что-то записать в конец header.key и контейнер будет нормально работать, игнорируя "лишнее". Вышел бы неплохой шпионский ход, но если данные asn1 снова увеличатся, то "лишнее" будет перезаписано без жалости.
Автор: Анатолий Колкочев Или можно найти значение хеш-функции от четырех файлов (primary 1, primary 2, masks1, masks2) и его использовать в качестве идентификатора? Т.к., как Вы говорите, и Вы правы, значение хеш-функции в файле header.key меняется в соответствии с его "наполнением", и файл name.key так же может изменяться. Честно говоря, не вижу почему name.key может измениться, все же нет штатного способа переименовать контейнер, можно только скопировать с новым именем. Возможно только пользователь откроет его в редакторе и поменяет. В сравнении выше, обычно дата name.key не меняется, а вот primary-mask меняются. Предположу, что закрытый ключ время от времени перешифровывается с другим случайным числом. Ну и если посмотреть на вопрос в целом - а если получили контейнер другого криптопровайдера, способ уже не подходит. Поэтому использование идентификатора открытого ключа (хэша от открытого ключа) способ более универсальный. Зачем ломать голову над закрытым форматом контейнера, когда есть открытая спецификация сертификата и известно что любой контейнер с ключевой парой будет содержать открытый ключ. Отредактировано пользователем 26 ноября 2019 г. 10:03:28(UTC)
| Причина: Не указана
|