C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Игнорировать/удалить цифровую подпись, ЭЦП
Fedryk
Отправлено: 09.11.2006, 19:26


Ученик-кочегар

Группа: Участник
Сообщений: 9



Доброе время суток.
У меня возникла немножко странная задача сравнить два файла. Один файл имеет цифровую подпись, у второго таковой нету. Нужно установить равно ли их вместимое не принимая к вниманию цифровую подпись. Сравнение побайтное.

т.е. вопрос: можно ли удалить подпись из файла? Или узнать её значение для подальшего удаления/игнорирования.

Спасибо всем кто ответит.
gvg
Отправлено: 10.11.2006, 09:36


Машинист паровоза

Группа: Участник
Сообщений: 222



Обычно криптосистемы имеют средства удаления ЭЦП
Fedryk
Отправлено: 10.11.2006, 13:02


Ученик-кочегар

Группа: Участник
Сообщений: 9



Да, обычно так и есть smile.gif
А как программно это решить?
Искать в инете программу, которая удаляет ЭЦП? Это не имеет смысла, т.к. вызывать из моей программы другую которая удаляет подпись? Это принцип .bat файла, а мне нужна программа с исходным кодом smile.gif.
Gedeon
Отправлено: 10.11.2006, 14:01


Ветеран

Группа: Модератор
Сообщений: 1742



ну как-то разобраться в структуре файла и бабахнуть эту подпись.
Fedryk
Отправлено: 10.11.2006, 14:31


Ученик-кочегар

Группа: Участник
Сообщений: 9



Это ответ-шутка smile.gif? Есть по меньшей мере 4 алгоритома подписи, т.е. международных стандартов, которые сунут свою подпись вместе или не вместе с сертификатами в совсем разные места в файле. И по структуре файла в бинарном представлении или дажэ открыв блокнотом, я очень сомневаюсь, что ктото сможэт сказать где начинаеться и заканчиваеться подпись и её размер, т.к. очень плохо, что он зависит от длины ключа (в моём случае плохо smile.gif), и в подписаных файлах размер подписи можэт быть разный, используя один и тотже алгоритм.
Например, есть очень распространенная программа которую обозвали Виндовс, и которая в свою очередь можэт определить алгоритм, которым подписали файл и прочесть его, т.е. эта задача вполне реальна.
AVC
Отправлено: 10.11.2006, 15:35


Ветеран

Группа: Модератор
Сообщений: 1583



Ну почему шутка? Вы действительно знаете что подпись хаотично разбросана по разным местам файла? А сам исходный текст кодирован?
Если нет, то берем тестовый файл, подписываем его и пытаемся отделить в результате "суп от мух". А так как нас интересует не алгоритм подписывания а место нахождения этой самой подписи, то задача представляется вполне разрешимой. Мне так кажется.
Fedryk
Отправлено: 10.11.2006, 16:17


Ученик-кочегар

Группа: Участник
Сообщений: 9



QUOTE (AVC @ 10.11.2006, 15:35)
Ну почему шутка? Вы действительно знаете что подпись хаотично разбросана по разным местам файла? А сам исходный текст кодирован?
Если нет, то берем тестовый файл, подписываем его и пытаемся отделить в результате "суп от мух". А так как нас интересует не алгоритм подписывания а место нахождения этой самой подписи, то задача представляется вполне разрешимой. Мне так кажется.

1. Есть в наличии разные файлы и разные подписи (длина ключа может быть разной) — т.е. узнать чем именно подписан конкретный фал.

2. Из первого — т.е. возможно разное размещение подписи в структуре файла.

3. Зачем писать/искать программу чтобы подписать файл, если в наличии может и не быть секретного ключа.
vvkot
Отправлено: 11.11.2006, 21:12


Ученик-кочегар

Группа: Участник
Сообщений: 20



Что вы тут бред советуете: типа отделить мух от котлет. Весь смысл цифровой подписи состоит в том что она удостоверяет содержимое, чтобы нельзя было изменить содержимое, т.е. цифровой подьписью содержимое закодироовано все, поэтому отделить ее от содержимого никак нельзя. Если бы подпись представляла собой некую длинну символов в конце или начале файла, то можно было без каких либо проблем изменить содержимое и приклеить подпись и какой в ней тогда смысл??? Зашифрован файл при лубом из способов с использованием криптостойких алгоритмов. Соответственно только перебором можно вычислить подпись
AVC
Отправлено: 13.11.2006, 10:29


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (vvkot @ 11.11.2006, 20:12)
Что вы тут бред советуете: типа отделить мух от котлет. Весь смысл цифровой подписи состоит в том что она удостоверяет содержимое, чтобы нельзя было изменить содержимое, т.е. цифровой подьписью содержимое закодироовано все, поэтому отделить ее от содержимого никак нельзя. Если бы подпись представляла собой некую длинну символов в конце или начале файла, то можно было без каких либо проблем изменить содержимое и приклеить подпись и какой в ней тогда смысл??? Зашифрован файл при лубом из способов с использованием криптостойких алгоритмов. Соответственно только перебором можно вычислить подпись

Может и бред, скажу сразу с подписями не разбирался, но
1. Я ведь уточнил " ... исходный текст кодирован? Если нет, то ..."
2. То что мне было известно
QUOTE

Электронная цифровая подпись (ЭЦП)— реквизит электронного документа, предназначенный для удостоверения источника данных и защиты данного электронного документа от подделки.

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

Т.е. подпись призвана удостоверять документ а не скрывать содержимое, что позволило мне сделать первое предположение.
Fedryk
Отправлено: 13.11.2006, 16:12


Ученик-кочегар

Группа: Участник
Сообщений: 9



Ребята, давайте жить дружно yahoo.gif
Есть ли у кого какие навыки работы с ЭЦП или чем-то схожим?
gvg
Отправлено: 13.11.2006, 20:06


Машинист паровоза

Группа: Участник
Сообщений: 222



QUOTE (vvkot @ 11.11.2006, 21:12)
Весь смысл цифровой подписи состоит в том что она удостоверяет содержимое, чтобы нельзя было изменить содержимое, т.е. цифровой подьписью содержимое закодироовано все, поэтому отделить ее от содержимого никак нельзя.

Вот здесь не согласен. Подпись и шифрование — разные вещи. Скажем, у того же PGP есть Encrypt и Sign. И еще раз повторю — лучше пользоваться средствами криптосистемы. Пусть даже и запуская батник...

Отредактировано gvg — 13.11.2006, 20:08
Fedryk
Отправлено: 13.11.2006, 20:47


Ученик-кочегар

Группа: Участник
Сообщений: 9



Содержимое кодируеться в специализованых файлах, как пример, может шифроваться сообщение по электронной почте и т.п.


Но если взять простую .dll или .exe, то где тут кодирование?
Туда попросту долепливаеться ЭЦП, которую мне и надо smile.gif, значение которой делаеться из усёго содержание файла, патаму что никакой экстрактор ресурсов не смог бы открыть в таком случае кодированный файл.


Вывод: криптография — это криптография, аутентификация — это аутентификация, зачем путать различное?


Суть: у кого, если кому не жаль поделиться чуток опытом, собственно есть какие либо познания в этом вопросе.
Патаму что я не спрашивал что есть ЭЦП, ребята начали писать кто что знает. Это очень харашо, мне приятно что у вас нашелся кусочек времени пасматреть сюда в тему и ответить. Но суть вопроса не та.
Fedryk
Отправлено: 13.11.2006, 21:03


Ученик-кочегар

Группа: Участник
Сообщений: 9



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

Патаму если нужно зашифровать сообщение, то ему не обязательно давать удостоверение владельца, т.е. у меня локальный комп, прога шифрует мои письма, я знаю что они мои, зачем мне в этом удостовериваться что они мои?
Но если надо знать что письмо мне прислала падруга с пагаными славами, а не бывшая девушка, что бы мне подпортить всё, то падруга подписывает письмо, чтобы я понял чё ей надо smile.gif.
AVC
Отправлено: 14.11.2006, 09:22


Ветеран

Группа: Модератор
Сообщений: 1583



2Fedryk
Вы определились у вас сообщения кодированы или просто подписаны и что вас интересует. Потому как
QUOTE

Туда попросту долепливаеться ЭЦП, которую мне и надо

и
QUOTE

задача сравнить два файла. Один файл имеет цифровую подпись, у второго таковой нету. Нужно установить равно ли их вместимое не принимая к вниманию цифровую подпись.

Это две разные задачи.

Если сообщения при подписывании шифруются, то, скорее всего, для извлечения первоначального сообщения придется повторять все предполагаемые алгоритмы подписывания. Я так думаю.
gvg
Отправлено: 14.11.2006, 09:57


Машинист паровоза

Группа: Участник
Сообщений: 222



Может конкретно — чем ЭЦП ставится?
Fedryk
Отправлено: 15.11.2006, 13:41


Ученик-кочегар

Группа: Участник
Сообщений: 9



Есть десять .dll файлов, которые не шифруются.
Один файл подписан, остальные возможно нет.


Задача: найти из оставшихся 9-ти файлов один (или несколько), которие равны по содержимому подписаному .dll файлу. При этом:

- при сравнении нужно не учитывать подпись если така имеется в файлах, т.е. из подписаного файла надо извлечь усё содержимое, кроме подписи, посмотреть подписан ли второй, и такжэ извлечь усё содержимое. Два извлеченных содержимых сравнить.

- это усё надо делать программно.
Георгий
Отправлено: 19.11.2006, 03:09


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



помоему это проснулись нерадивые студенты, которые надеются решить свои проблемы за чужой счёт. если б человек дейстивтельно работал с ЭЦП, то но понимал бы, что любая криптосистема имеет API для обращения к ней из внешних систем. и этот API может сделать все вышеназванные операции
Fedryk
Отправлено: 21.11.2006, 20:13


Ученик-кочегар

Группа: Участник
Сообщений: 9



QUOTE (Георгий @ 19.11.2006, 03:09)
и этот API может сделать все вышеназванные операции

CryptoAPI & Crypto++ делают лишь часть того что нужно,
если у Вас есть такие глубокие познания в API, поделитесь со "студентом" функциями, которыми можно реализовать вышеупомянутую задачу smile.gif

Отредактировано Fedryk — 21.11.2006, 22:16

Вернуться в Вопросы программирования в C++Builder