Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: two_oceans  Добрый день. Что-то тут не так в рассуждениях: ни хэша структуры ОК, ни отпечатка в сертификате нет. Вот так, по частям: отпечаток = хеш от структуры с ОКструктура с ОК = ASN.1 = сам сертификат... так понятнее будет? |
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
|
Спасибо за подтверждение. В программе с ГОСТ немного не с руки проверять от чего вычислено значение sha1. Цитата:так понятнее будет? Не могу сказать, что это неправильно (каждая из структур содержит ОК), но хэш (идентификатор ключа) от гораздо меньшего подмножества байтов чем отпечаток. То есть в Ваших рассуждения 2 структуры с ОК как матрешки. Или я не понял и ОК не равно "открытый ключ"? Отредактировано пользователем 10 февраля 2022 г. 11:41:44(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: two_oceans  Новый сертификат имеет другие даты и потому хэш тоже изменяется даже при том же ключе. Если ключ меняется - тоже отпечаток меняется. В частности для ГОСТа, если мы сделаем 2 сертификата от 1 УЦ с одинаковыми данными (и время и серийный номер!), то отпечаток будет другим - потому что в конце структуры -есть подпись УЦ, а она будет разной для одних и тех же входящих байтов... |
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
|
Автор: Андрей *  В частности для ГОСТа, если мы сделаем 2 сертификата от 1 УЦ с одинаковыми данными (и время и серийный номер!), то отпечаток будет другим - потому что в конце структуры -есть подпись УЦ, а она будет разной для одних и тех же входящих байтов... Для ГОСТА - да. Но меняется отпечаток и не для госта тоже, так что это все немного не от того. К слову, для госта это так только если брать псевдослучайное число как описано в алгоритме. Но... "псевдослучайное" не значит что оно должно быть разное, то есть хотя в нормальном случае мы получаем разные подписи, некая реализация может брать как псевдослучайное одно и то же число и тогда подписи совпадут. Хех. Отредактировано пользователем 10 февраля 2022 г. 11:45:53(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: two_oceans  Спасибо за подтверждение. В программе с ГОСТ немного не с руки проверять от чего вычислено значение sha1. просто встречал ИС, которая (по недоработке) не проверяла кодировку и хешировала как есть (от плагина сертификат).. от base64, в итоге отпечатки разные "внезапно", а сертификат один...  Snimok ehkrana ot 2022-02-10 12-46-17.png (45kb) загружен 2 раз(а). |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: two_oceans  Автор: Андрей *  В частности для ГОСТа, если мы сделаем 2 сертификата от 1 УЦ с одинаковыми данными (и время и серийный номер!), то отпечаток будет другим - потому что в конце структуры -есть подпись УЦ, а она будет разной для одних и тех же входящих байтов... Для ГОСТА - да. Но меняется отпечаток и не для госта тоже, так что это все немного не от того. К слову, для госта это так только если брать псевдослучайное число как описано в алгоритме. Но... "псевдослучайное" не значит что оно должно быть разное, то есть хотя в нормальном случае мы получаем разные подписи, некая реализация может брать как псевдослучайное одно и то же число и тогда подписи совпадут. Хех. Я и пишу, для ГОСТа, а если RSA и сделать как описано? будет тот же сертификат, тот же хеш. Разница - алгоритмы подписи же, при RSA - подписывая одни и те же байты - будет одинаковое значение подписи. Поэтому в УЦ проверяется.. уникальность серийного номера.. + переменные (время создания) - вносят изменения в структуру -> другая подпись -> другой хеш от сертификата. |
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
|
Автор: Андрей *  просто встречал ИС, которая (по недоработке) не проверяла кодировку и хешировала как есть В этом плане я подумал, что на все это (проверку кодировки, выбор подмножества байт, сознание зарубежного провайдера, хэша, хэширование, получение данных) у меня уйдет больше runtime времени чем вызов готовой CryptoApi функции делающей это где-то в фоне параллельно моей программе и не стал изобретать велосипед. Ну в смысле, при создании контекста сертификата кодировку все равно определяю, но не более того. Буквально на днях попробовал еще и с запросами на сертификат работать, сформированными для ФК. Там меня крашнуло на том, что запрос в кодировке BASE64, но без ограничителей. Пришлось cделать из функции декодирования функцию соответствия подмножеству BASE64 и если все попадает (с учетом переводов строк и невозможности встретить равно в середине) и первый символ буква M делать попытку декодирования. Отредактировано пользователем 10 февраля 2022 г. 12:11:17(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
|
Автор: Андрей *  Поэтому в УЦ проверяется.. уникальность серийного номера.. переменные (время создания) - вносят изменения в структуру -> другая подпись -> другой хеш от сертификата. Ну и я об этом - подписать те же байты не получится. Цитата:а если RSA и сделать как описано? будет тот же сертификат, тот же хеш. Собственно, если получим те же подписываемые байты, то почему это нужно считать другим сертификатом? Этот тот же сертификат, мало ли что мы его 2 раза создали. Выходит это как раз минус для госта. Отредактировано пользователем 10 февраля 2022 г. 12:01:16(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: two_oceans  Автор: Андрей *  Поэтому в УЦ проверяется.. уникальность серийного номера.. переменные (время создания) - вносят изменения в структуру -> другая подпись -> другой хеш от сертификата. Ну и я об этом - подписать те же байты не получится. Цитата:а если RSA и сделать как описано? будет тот же сертификат, тот же хеш. Собственно, если получим те же подписываемые байты, то почему это нужно считать другим сертификатом? Этот тот же сертификат, мало ли что мы его 2 раза создали. Выходит это как раз минус для госта. Да, но для УЦ с ГОСТ .. в РФ ..- запрещено же выдавать на одном открытом ключе в ПАК несколько сертификатов (юридически)... |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 10.02.2022(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 8 раз
|
Автор: Андрей *  Автор: vicmosin  Ну я скорее спрашивал с точки зрения уникальности отпечатка. Но если отпечаток уникальный и является хешем структуры ОК, то зачем на сервере хранить отпечаток + сертикат (вы ранее писали)?
Чтобы в ИС своей смотреть, не только на отпечаток, а на сертификат? Ясно, спасибо за пояснения. Судя по всему, в дальнешей дискуссии обсуждаются различные edge cases, которые позволят не однозначно идентифицировать владельца сертификата по его отпечатку.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close