Производительность цифровой подписи XML: конвертер против конвертирования против отдельного

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

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


person rds    schedule 27.02.2013    source источник


Ответы (2)


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

person Eugene Mayevski 'Callback    schedule 27.02.2013
comment
Мне придется иметь дело с очень большим файлом (в моем случае файл размером 100 МБ маленький). У вас есть ссылки, чтобы подтвердить, что отсоединенный более эффективен? Я действительно не понимаю с теоретической точки зрения, что быстрее вычисляет сигнатуру дерева, когда оно находится рядом с деревом сигнатур, по сравнению с тем, когда оно находится под ним... - person rds; 03.03.2013
comment
@rds Разница в скорости вызвана не вычислением значения подписи, а применяемыми преобразованиями и рендерингом выходного документа. Если вы используете средство подписи на основе DOM, оно загрузит весь документ, а затем создаст его снова в случае переноса или встроенной подписи. В случае отдельной подписи будет записан только крошечный блок подписи, и здесь выигрывает отдельная подпись. Кроме того, если 100 МБ мало для ваших данных, у вас будут серьезные проблемы с их загрузкой в ​​DOM для обработки. - person Eugene Mayevski 'Callback; 03.03.2013

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

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

person Cigiller    schedule 02.03.2013
comment
Я еще не начал, но видел потоковую передачу подписи XML Профиль, который звучит как противоречащий потоковая передача невозможна. Кроме того, я не понимаю, что вы подразумеваете под сама по себе подпись не такая уж и большая. Разве подпись не может быть вычислена с помощью того же алгоритма, какова бы ни была ее позиция? - person rds; 03.03.2013
comment
@rds Документ, на который вы ссылаетесь, не связан с загрузкой XML-документов для подписи или применения преобразований - для этих двух по-прежнему требуется DOM. - person Eugene Mayevski 'Callback; 03.03.2013
comment
@EugeneMayevski'Callback неверен, это именно то, что касается потоковой XML-подписи - возможность вычислять ссылочные хэши (включая выбор узла и c14n) и, следовательно, создание / проверку XML-подписи, полностью избегая DOM. - person vond; 29.02.2020
comment
@vond Действительно, я немного неправильно сформулировал комментарий. Суть заключалась в том, чтобы сказать, что подчеркивает цитата из раздела 2.2 последней редакции документа: обратите внимание, что не всегда возможно применять или проверять подписи XML однопроходным потоковым способом. . Итак, первоначальный ответ Сигиллера по-прежнему применим. - person Eugene Mayevski 'Callback; 29.02.2020
comment
По-прежнему не согласен с первоначальным ответом, поскольку DOM можно полностью избежать для создания и проверки XMLDsig. САКСа достаточно. Я говорю о подписи в конверте, конечно. Enveloping и Detached более очевидны - person vond; 06.03.2020