Авторитетный источник по XML-подписи
-
08-06-2019 - |
Вопрос
У нас есть вопрос относительно XML-подписи, и нам нужны подробности о необязательных элементах, а также о некоторых вещах, связанных с канонизацией и преобразованием.Мы пишем спецификацию для очень небольшой полезной нагрузки XML-синтаксиса, которая будет входить в метаданные медиафайлов и должна иметь криптографическую подпись.Вместо того, чтобы заново изобретать велосипед, мы подумали, что нам следует использовать спецификацию XML-sig, но я думаю, что большая часть ее является излишним для того, что нам нужно, и поэтому нам нравится иметь больше информации/диалога с людьми, которые знают детали.
В частности, нужно ли нам заботиться о преобразованиях или канонизации, если XML очень простой, без вкладок для форматирования и соответствует нашим потребностям?
Решение
Если существует возможность нет сделайте подпись XML и вместо этого просто обработайте XML как поток байтов и подпишите его, сделайте это.Его будет проще реализовать, легче понять, он будет более стабильным (без канонизации, трансформации, политики и т. д.) и быстрее.
Если вам абсолютно необходим XML DSIG (к сожалению, некоторым из нас он необходим), в наши дни это, безусловно, возможно, но есть много, много предостережений.Нужна хорошая поддержка библиотек, с Java это есть из коробки в JDK 1.6, с другими платформами я не знаком.Вы должны проверить совместимость с принимающей стороной подписанного вами XML, особенно если они потенциально находятся на другой платформе.
Обязательно прочитайте Почему безопасность XML нарушена, он в основном охватывает все аспекты ужаса канонизации XML и дает некоторые указания на некоторые альтернативы.
Другие советы
Можете ли вы сообщить нам, какую технологию вы используете, поскольку есть некоторые интересные моменты, связанные с этим материалом, и некоторые короткие пути...то естьWSE2 — сложная штука, и мне не нравится ошибаться!
Мне не нравится, что разработчики делают это, и существуют ускорители WSE2, такие как SSL Accelorates, поскольку обработка шифрования требует огромных затрат, и лучше всего вывести его из процесса из обычного кода и арены разработки.
Если для вас это вариант - Попробуйте посмотреть это - ForumSystems
Если вам нужно подписать XML в коде, отметьте XMLЧерный ящик который обеспечивает канонизацию и все другие преобразования за вас.XMLBlackbox также поддерживает XAdES.