Сообщение
  • Пожалуйста, прежде пройдите авторизацию
  • Пожалуйста, прежде пройдите авторизацию

Подпись документов. Java Applet
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2

ТЕМА: Подпись документов. Java Applet

Подпись документов. Java Applet 5 года, 9 мес. назад #652

  • script
  • Новый участник
  • Постов: 6
  • Репутация: 0
Добрый день!

Хотелось бы уточнить некоторые моменты.

1. Адекватен ли такой вариант для подписи документа: вычисляю хэш-файла (file.doc), создаю рядом xml ( dl.dropboxusercontent.com/u/14958271/Java_applet/testIn.xml ), подписываю этот файл методом signXmlFile, получаю результирующий xml ( dl.dropboxusercontent.com/u/14958271/Java_applet/testOut.xml ). testOut.xml и file.doc отдаю второму лицу.
2. для проверки получатель методом verifyXmlFile проверяет testOut.xml. если верно - вычисляется хэш файла file.doc и сверяется с имеющимся в testOut.xml
3. Принципиален ли crc32? подойдет SHA-* например или md5?

Спасибо!
Изменено: 5 года, 9 мес. назад от script.

Re: Подпись документов. Java Applet 5 года, 9 мес. назад #653

  • ugotbug
  • Завсегдатай
  • Постов: 225
  • Репутация: 14
Добрый день.
В принципе, не запрещено.
Только вопрос, зачем вам вычислять первую контрольную сумму.
Ведь в спецификации XMLDsig уже определен тэг DigestValue?
Процесс формирования подписанного XML документа подразумевает, что автоматически вычисляется хэш
и формируется подпись (хэш шифруется закрытым ключом).
Могущественный обладатель кольца Знаний

Re: Подпись документов. Java Applet 5 года, 9 мес. назад #654

  • script
  • Новый участник
  • Постов: 6
  • Репутация: 0
По причине того, что совсем не знаком с принципами подписи, предположил следующее:
Мне нужно подписать файл *.doc, в апплете нет подобных методов - подумал, возможно верным решением будет вычисление контрольной суммы файла *.doc, создание xml, в теле которого тег с этой контрольной суммой. Подписываем уже этот xml файл, в котором ничего существенного нет кроме того, что там гарантированный хэш *.doc файла.

Не совсем представляю как можно подписать документ (не xml) другим образом. К тому же, изначально думал так: если мне нужно подписать сразу 3 документа - то можно создать xml который содержит контрольные суммы 3х документов, и его уже подписывать.. для проверки сопоставлять контрольные суммы переданных документов с записями в xml, который в свою очередь подписан.

В общем случае не ясны 3 вопроса:
1. как правильно с помощью JavaApplet подписать не xml файл (doc, xls, ..)?
2. как подписать сразу несколько подобных файлов?
3. в методы signXmlFile и verifyXml файл передаются физические пути файлов. А если файлы не на локальном и не на сетевом диске, а имеется доступ только по http?
Изменено: 5 года, 9 мес. назад от script.

Re: Подпись документов. Java Applet 5 года, 9 мес. назад #655

  • ugotbug
  • Завсегдатай
  • Постов: 225
  • Репутация: 14
XMLDsig предоставляет гибкие возможности подписания множества документов.
Мы понимаем, что у многих разработчиков ИС отсутствует опыт работы с форматом XMLDsig.
Частично мы попытались помочь им. Так, мы опубликовали методику, которая кратко описывает основные
принципы применения ЭЦП с различными форматами ( pki.gov.kz/index.php/ru/razrabotchikam).

Подписать не XML документ вы можете, например, переведя сам документ любого формата в формат Base64 и разместив его в теле XML файла. Тогда передаваться будет один XML документ. При этом, вам необходимо определить область внутри XML документа, по которой будет вычисляться хэш
<ds:Reference URI="idObject">
То есть, тэг
<DigectValue>
будет содержать хэш на данные в этой области.

Вы также можете указать путь до локального или удаленного файла, например
<ds:Reference URI="file:///C:/myfile.doc">
в этом случае будет передаваться документ + подписанный xml. Таким образом, при проверке подписи будет выполнена попытка найти файл по URL, с последующим вычислениям хэша по нему для сравнения с тем, что было в подписи.
Могущественный обладатель кольца Знаний
Изменено: 5 года, 9 мес. назад от ugotbug.

Re: Подпись документов. Java Applet 5 года, 9 мес. назад #656

  • script
  • Новый участник
  • Постов: 6
  • Репутация: 0
Спасибо, Вы меня спасли!) Думаю, эта информация вполне исчерпывающая.

Re: Подпись документов. Java Applet 5 года, 9 мес. назад #657

  • script
  • Новый участник
  • Постов: 6
  • Репутация: 0
В общем интересная история вышла. Еще вчера предполагалось подписывать документы по аналогии с тем примером, который находится в SDK_KNCA/examples/java/Java_applet.
Получилось разобраться с XMLDSig и принципами его создания, в итоге реализовал генерацию xml своими средствами. С java applet не получилось - не хватает в нем функционала, поэтому совсем не понял к чему пример с апплетом - видимо, для того чтобы был)

В итоге у меня получается документ и xml с подписями к этому документу. Существует ли какая-нибудь возможность встроить эту подпись в документ? Или так и должно быть и такая разрозненность считается правильной и верной с юридической стороны? Можно ли считать данный результат законченным?
Изменено: 5 года, 9 мес. назад от script.
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba