2

XML-DSig описывает 3 положения, в которых подпись документа XML могут быть размещены относительно документа XML: подпись может быть detached, enveloping, envelopedПроизводительность цифровой подписи XML: enveloper против обволакивающее против отдельных

Каковы последствия с точки зрения производительность этих трех вариантов?

ответ

1

Индивидуальный будет немного более эффективным, но разница минимальна (конечно, это зависит от размера документа - с документом размером 100 МБ разница будет больше, чем с небольшими блоками XML).

+0

Мне нужно иметь дело с очень большим файлом (файл размером 100 МБ * маленький * в моем случае). У вас есть ссылки для подтверждения того, что отсоединенный более эффективен? Я не понимаю с теоретической точки зрения, что быстрее при вычислении сигнатуры дерева, когда оно находится рядом с деревом подписи, по сравнению с тем, что находится под ним ... – rds

+1

@rds Разница в скорости вызвана не вычислением подписи но с использованием преобразований и путем вывода выходного документа. Если вы используете подписчик на основе DOM, он будет загружать весь документ, а затем снова компоновать его в случае упаковки или встроенной подписи. В случае отсоединенной подписи будет написан только крошечный блок подписи, и здесь победит отдельная подпись. Кроме того, если 100Mb для ваших данных мало, у вас возникнут серьезные проблемы с загрузкой DOM для обработки. –

0

Поскольку XMLdSig не записывается с учетом того, что производительность или размер файла могут быть проблемой; потоковая передача невозможна. С большими данными, которые нужно подписать, это действительно проблема, поскольку объекты DOM питаются большим количеством памяти, поверьте. Одевание или окутанность не имеет значения в этом отношении.

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

+0

Я еще не начинал, но я видел [XML Signature Streaming Profile] (http://www.w3.org/TR/2012/CR-xmldsig-xpath-20120124/), который звучит противоречить потоку «* это невозможно*". Кроме того, я не понимаю, что вы подразумеваете под «* самой подписью не так уж много». Невозможно ли вычислить подпись с помощью того же алгоритма, какова бы ни была его позиция? – rds

+0

@rds Документ, на который вы ссылаетесь, не связан с загрузкой документов XML для подписания или для применения преобразований - эти два по-прежнему требуют DOM. –